mcpField
O
OMNI-MQTT-MCP

OMNI-MQTT-MCP

本地服务
github.com/sub-arjun开发工具069 周前更新

关于 OMNI-MQTT-MCP

OMNI-MQTT-MCP 是使用 FastMCP 构建的 MQTT MCP 服务,可通过命令行选择 stdio、Streamable HTTP 或已弃用的 SSE 传输方式。它面向需要让 MCP 客户端发布 MQTT 消息或订阅主题的开发与部署场景。

主要功能

  1. 01发布 MQTT 主题消息
  2. 02订阅主题并接收消息
  3. 03支持 stdio 与 Streamable HTTP
  4. 04可配置 MQTT Broker 连接
  5. 05通过命令行配置传输参数

适用场景

  1. 01让本地 MCP 客户端发布 MQTT 消息
  2. 02通过 HTTP 为远程客户端提供 MQTT 访问
  3. 03在遗留部署中使用 SSE 传输

MCP 相关

它向 MCP 客户端提供 `mqtt_publish` 和 `mqtt_subscribe` 工具。客户端可通过 stdio、Streamable HTTP 或已弃用的 SSE 传输连接。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MseeP.ai Security Assessment Badge

OMNI-MQTT-MCP

MQTT MCP 服务,可通过 CLI 配置传输选项:STDIO(默认)、Streamable HTTP(推荐用于 Web)和 SSE(已弃用)。

🚀 快速开始

# Install dependencies
pip install -r requirements.txt

# Run with STDIO (default - for local development)
python mqtt_mcp_server.py

# Run with Streamable HTTP (recommended for web)
python mqtt_mcp_server.py --transport streamable-http

# Run with SSE (deprecated)
python mqtt_mcp_server.py --transport sse

📋 传输选项

使用 --transport CLI 参数选择传输方式:

1. STDIO 传输(默认)✅
python mqtt_mcp_server.py --transport stdio
# or simply:
python mqtt_mcp_server.py
  • 最适合:本地开发、集成 Claude Desktop
  • 优点:简单、安全,适用于 Claude Desktop 等 MCP 客户端
  • 缺点:仅限本地,无法远程访问
2. Streamable HTTP(推荐用于 Web)🌐
python mqtt_mcp_server.py --transport streamable-http
python mqtt_mcp_server.py --transport streamable-http --host 0.0.0.0 --http-port 9000
  • 最适合:Web 部署、远程访问、微服务
  • 默认 URL:http://127.0.0.1:8000/mcp
  • 优点:现代、高效、支持多个客户端、易于部署
  • 缺点:需要进行网络设置,并考虑安全问题
3. SSE(服务器发送事件)⚠️ 已弃用
python mqtt_mcp_server.py --transport sse
  • 最适合:旧版部署(不建议用于新项目)
  • 默认 URL:http://127.0.0.1:8000/sse
  • 状态:正逐步淘汰,改用 Streamable HTTP

🛠 可用工具

  • mqtt_publish:向 MQTT 主题发布消息
  • mqtt_subscribe:订阅 MQTT 主题并接收消息

⚙️ 配置选项

MQTT 配置
python mqtt_mcp_server.py \
  --broker localhost \
  --port 1883 \
  --client-id mcp-mqtt-client \
  --username your_username \
  --password your_password
传输配置
python mqtt_mcp_server.py \
  --transport streamable-http \
  --host 127.0.0.1 \
  --http-port 8000 \
  --path /mcp
所有选项
python mqtt_mcp_server.py --help
环境变量

你也可以使用环境变量配置 MQTT 设置:

export MQTT_BROKER_ADDRESS=localhost
export MQTT_PORT=1883
export MQTT_CLIENT_ID=mcp-mqtt-client
export MQTT_USERNAME=your_username
export MQTT_PASSWORD=your_password

python mqtt_mcp_server.py --transport streamable-http

🧪 测试

测试 HTTP 服务
# Terminal 1: Start server
python mqtt_mcp_server.py --transport streamable-http

# Terminal 2: Test it
python test_http_client.py
使用 Claude Desktop 测试

将以下内容添加到 Claude Desktop MCP 配置中:

{
  "mcpServers": {
    "mqtt": {
      "command": "python",
      "args": ["/path/to/mqtt_mcp_server.py"],
      "env": {
        "MQTT_BROKER_ADDRESS": "localhost",
        "MQTT_PORT": "1883"
      }
    }
  }
}

🔧 开发

使用 MCP CLI
# Run in development mode with MCP Inspector
mcp dev mqtt_mcp_server.py

# Run with specific transport via MCP CLI
mcp run mqtt_mcp_server.py -- --transport streamable-http --http-port 9000

📚 示例

本地开发
# Default STDIO for Claude Desktop
python mqtt_mcp_server.py
Web 部署
# HTTP server on port 8000
python mqtt_mcp_server.py --transport streamable-http

# HTTP server on custom port and host
python mqtt_mcp_server.py --transport streamable-http --host 0.0.0.0 --http-port 9000

# Custom path
python mqtt_mcp_server.py --transport streamable-http --path /api/mcp
使用自定义 MQTT 配置进行生产部署
python mqtt_mcp_server.py \
  --transport streamable-http \
  --broker mqtt.example.com \
  --port 8883 \
  --username prod_user \
  --password secret123 \
  --host 0.0.0.0 \
  --http-port 80

🤔 应该选择哪种传输方式?

使用场景命令原因?
本地开发python mqtt_mcp_server.py简单、安全,适用于 Claude Desktop
Web 部署python mqtt_mcp_server.py --transport streamable-http现代、高效、易于部署
远程 AI Agentpython mqtt_mcp_server.py --transport streamable-http --host 0.0.0.0支持身份验证,可扩展
旧版系统python mqtt_mcp_server.py --transport sse仅适用于已在使用 SSE 的情况

🐳 使用 Ngrok 的 Docker

在 Docker 中运行服务,并通过 ngrok 隧道自动将其公开。

构建
docker build -t mqtt-mcp-ngrok .
运行
docker run -d \
  -p 8000:8000 \
  -e NGROK_AUTHTOKEN=<YOUR_TOKEN> \
  -e TRANSPORT=sse \
  -e FASTMCP_PORT=8000 \
  -e MQTT_BROKER_ADDRESS=mqtt.example.com \
  -e MQTT_PORT=8883 \
  -e MQTT_CLIENT_ID=my-client \
  -e MQTT_USERNAME=prod_user \
  -e MQTT_PASSWORD=secret123 \
  mqtt-mcp-ngrok

容器通过 ngrok 暴露 MCP 服务。传入环境变量以配置 MQTT broker 和服务传输方式。查看容器日志以获取公开 URL。

📚 了解更多

🔒 安全说明

  • STDIO:在本地运行,本身安全
  • HTTP/SSE:生产部署时请考虑添加身份验证
  • MQTT:配置 MQTT broker 安全性(TLS、身份验证)

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。