MQTT代理工具

mcp-mqtt-proxy是一个命令行工具,用于在标准I/O接口和MQTT消息协议之间桥接Model Context Protocol (MCP),支持MQTT v5特性。

  • by hugoferreira
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 hugoferreira/mcp-mqtt-proxy

使用说明

警告: 这个叉子坏了!回到原来!

mcp-mqtt代理

状态:Alpha -这个项目改编了原来的 mcp-proxy 在stdio和MQTT v5之间架起桥梁。

请参阅 视觉.md 了解项目目标和设计细节。

关于

mcp-mqtt-proxy 是一个命令行工具,充当 模型上下文协议(MCP),在标准I/O(stdio)接口和MQTT消息传递协议(专门针对MQTT v5功能)之间进行转换。

它允许您:

  1. 将基于本地stdio的MCP工具/服务器连接到MQTT代理。
  2. 通过MQTT接口公开基于本地stdio的MCP工具/服务器。

这使得可以将符合MCP的工具(如语言模型或具有stdio接口的开发工具)集成到基于MQTT的分布式系统、物联网环境或其他消息传递工作流中。

操作模式

  1. stdio客户端->MQTT代理: 运行本地命令(您的MCP stdio服务器)并代理其MCP通信 向 MQTT代理。来自stdio进程的请求被发布到请求主题,并通过订阅响应主题来接收响应。
  2. MQTT代理->stdio服务器: 监听MQTT主题上的MCP请求,并转发它们 向 本地命令(您的MCP stdio服务器),并将响应发布回相应的MQTT响应主题(利用MQTT v5的请求/响应功能)。

安装

(注:软件包尚未发布).

发布后,您可以通过pip或uv进行安装:

# Option 1: With uv (recommended)
uv tool install mcp-mqtt-proxy

# Option 2: With pipx
pipx install mcp-mqtt-proxy

# Option 3: Install from source (latest)
uv pip install git+https://github.com/bytter/mcp-mqtt-proxy

配置和使用

代理是通过命令行参数配置的。

常见论点:

  • --broker-urlMQTT代理的URL(例如。, mqtt://localhost:1883, mqtts://user:pass@host:port).
  • --request-topic:用于发布/订阅MCP请求的MQTT主题。
  • --response-topic:用于发布/订阅MCP响应的基本MQTT主题。
  • (其他MQTT选项,如 --client-id, --qos, --username, --password,将添加TLS设置)。

模式1:stdio客户端->MQTT代理

# Example (Conceptual - arguments subject to change)
mcp-mqtt-proxy \
    --broker-url mqtt://localhost:1883 \
    --request-topic mcp/server/requests \
    --response-topic mcp/client/my-client-id/responses \
    -- \
    your-mcp-stdio-command --arg1 --arg2 

模式2:MQTT代理->stdio服务器

# Example (Conceptual - arguments subject to change)
mcp-mqtt-proxy \
    --listen \
    --broker-url mqtts://secure.broker.com:8883 \
    --request-topic mcp/server/requests \
    -- \
    your-mcp-stdio-command --arg1 --arg2

(随着开发的进展,将添加详细的论据和示例)。

码头工人

该项目包括一个用于容器化部署的Docker镜像。

使用Docker运行

# Run the container with --help to see available options
docker run --rm ghcr.io/bytter/mcp-mqtt-proxy:latest

# Run in publisher mode (stdio client -> MQTT)
docker run --rm --network=host ghcr.io/bytter/mcp-mqtt-proxy:latest \
  --broker-url mqtt://localhost:1883 \
  --base-topic mcp/test \
  -- /path/to/mcp-process

# Run in listener mode (MQTT -> stdio server)
docker run --rm --network=host ghcr.io/bytter/mcp-mqtt-proxy:latest \
  --listen \
  --broker-url mqtt://localhost:1883 \
  --base-topic mcp/test \
  --stdio-process "/path/to/mcp/process"

在本地构建Docker镜像

# Build the image
docker build -t mcp-mqtt-proxy:latest .

# Build with a specific version tag
docker build -t mcp-mqtt-proxy:v1.0.0 .

持续集成

在以下情况下,该项目使用GitHub Actions自动构建Docker镜像并将其发布到GitHub容器注册表(ghcr.io):

  • 代码被推送到主分支
  • 推送版本标签(v*)

您可以在以下网址找到最新图片: ghcr.io/bytter/mcp-mqtt-proxy

致谢

该项目源于原始 mcp-proxy 由Sergey Parfenyuk编写,为stdio/MCP处理和整体代理结构提供了基础。

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。