Spectrum MCP server with MQTT integration
Project description
Spectrum MCP Server — 使用与服务配置
本仓库包含一个将 ESP32 上 AS7341 光谱传感器数据通过 MQTT 收集并暴露为 MCP 资源的服务。该 README 重点说明如何在本地与平台上运行此服务,以及平台所需的启动配置说明。
核心文件
server.py— FastMCP 服务实现,订阅 MQTT 主题并暴露资源spectrum://latest与工具get_channel()。mcp-config.json— 平台启动配置(请务必包含在仓库根目录,平台据此知道如何安装并启动服务)。
快速开始(开发机器)
- 创建并激活虚拟环境(可选但推荐):
python -m venv .venv
.\.venv\Scripts\Activate.ps1
- 安装依赖:
python -m pip install --upgrade pip
pip install -e .
# 或: pip install -r requirements.txt
- 运行 MCP 服务器(开发):
python server.py
可选参数:--no-mqtt(不启动 MQTT 客户端,便于在无设备/无 Broker 场景测试)。
服务接口
- 资源
spectrum://latest— 返回最近一次接收到的光谱 JSON(字典,通常包含channel1..channel11)。 - 工具
get_channel(name)— 返回指定通道的整数值。
检查与调试
- HTTP 健康/数据检查:
/api/latest返回当前latest_spectrum的 JSON 副本。 - 我们在响应中加入了诊断头
X-Served-By: mcpserver,平台请求返回该头则表示请求命中了本服务。 - 使用 curl 验证(检查 Content-Type 与自定义头):
curl -I 'http://YOUR_HOST:8000/api/latest' -H 'Accept: application/json'
平台说明(重要)
平台不会自动猜测如何运行你的代码:请确保仓库根目录包含 mcp-config.json(或平台指定的等价文件),其中必须明确:
- 安装依赖命令(如
pip install -r requirements.txt或pip install -e .) - 启动命令与参数(例如
python server.py,以及可选--no-mqtt) - 运行时环境变量(如
HTTP_BIND/HTTP_PORT/MCP_TRANSPORT) - 服务监听端口与协议(例如 HTTP port 8000,health-check 路径
/api/latest)
仓库中已加入示例配置文件:mcp-config.json。平台应读取该文件并据此安装依赖、启动服务并进行健康检查。
部署建议
- 临时公开测试:使用
ngrok暴露本地端口:
ngrok http 8000
# 将 ngrok 返回的 https://xxxxx.ngrok.io 指定为平台的服务 URL(/api/latest)
- 生产/稳定:部署到 VPS、Render、Railway、Fly 或 Heroku,并将平台指向部署后的 HTTPS URL(确保 /api/latest 可访问)。
常见问题
- 我把仓库放到 GitHub,平台却拿到 HTML:如果平台的 URL 指向
https://github.com/...(仓库页面),它会返回 HTML 页面而非运行中的 API。平台需要指向正在运行的服务地址(或 raw.githubusercontent.net 的静态文件 URL)。 - 平台请求时显示 HTML 登录页(例如 GitHub):说明平台没有启动服务或 URL 指向了静态仓库页面。
后续可选操作
- 我可以帮你生成
requirements.txt(从pyproject.toml提取依赖)并提交到仓库; - 我也可以添加一个小的 systemd/Procfile 或 GitHub Actions 示例以便自动部署到云平台;
- 如果你想快速测试,我可以给出
ngrok的完整步骤并协助启动。
文件引用:启动配置位于仓库根目录的 mcp-config.json(请在平台上确认该文件被识别)。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_server_spectrum_stravision-0.1.1.tar.gz.
File metadata
- Download URL: mcp_server_spectrum_stravision-0.1.1.tar.gz
- Upload date:
- Size: 42.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2bdb1c74dd19f03273f46cf675b9adbcb95e82e6ebb9b3eafdf68fbae7d64ce7
|
|
| MD5 |
08f93b49a4988f6da10fff4e366bb267
|
|
| BLAKE2b-256 |
d6eed10213f9fcab5f5d9bec720a755753c01447323eed342c97d0c01c801e94
|
File details
Details for the file mcp_server_spectrum_stravision-0.1.1-py3-none-any.whl.
File metadata
- Download URL: mcp_server_spectrum_stravision-0.1.1-py3-none-any.whl
- Upload date:
- Size: 9.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
05c7179b70fd90986de84020f6da11c636fc0b2ecce9ba6bba8b9defcf28bb18
|
|
| MD5 |
50b50ce7f9b6596c340027210694a347
|
|
| BLAKE2b-256 |
13b9e3d4985f48b019312de146f7a678d9bb44b2a1e6c52649d905cc96678638
|