关于 Fledge MCP Server
Fledge MCP Server 将 Fledge 实例的数据与服务管理能力接入 Cursor AI,供需要通过自然语言查询传感器并操作 Fledge 服务的用户使用。它还提供前端组件生成、实时数据订阅及 API 验证等工具。
主要功能
- 01读取和筛选传感器数据
- 02列出传感器与插件
- 03启动或停止服务并更新配置
- 04订阅传感器更新
- 05生成 React 可视化组件
- 06API 连接验证与模拟数据生成
适用场景
- 01用 Cursor AI 查询 Fledge 传感器读数
- 02检查 Fledge 服务状态并调整配置
- 03为传感器数据生成 React 图表
- 04测试 API 请求或生成模拟数据
MCP 相关
作为 MCP 服务向 Cursor AI 等客户端提供 Fledge 数据访问、服务控制、前端生成和调试工具。支持标准及 API 密钥认证的服务器模式,并实现通过 WebSocket 传输的 JSON-RPC 2.0。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Fledge MCP Server
这是一个 Model Context Protocol(MCP)服务,可将 Fledge 功能连接到 Cursor AI,让 AI 通过自然语言命令与 Fledge 实例交互。
前提条件
- 本地已安装 Fledge,或可通过 API 访问(默认地址:http://localhost:8081)
- 已安装 Cursor AI
- Python 3.8+
安装
- 克隆此仓库:
git clone https://github.com/Krupalp525/fledge-mcp.git
cd fledge-mcp
- 安装依赖:
pip install -r requirements.txt
运行服务
- 确保 Fledge 正在运行:
fledge start
- 启动 MCP 服务:
python mcp_server.py
如需通过 API 密钥认证来安全运行:
python secure_mcp_server.py
- 访问健康检查端点以确认服务正常运行:
curl http://localhost:8082/health
你应收到“Fledge MCP Server is running”作为响应。
连接到 Cursor
-
在 Cursor 中,前往 Settings > MCP Servers
-
添加新服务:
- URL: http://localhost:8082/tools
- Tools 文件:上传随附的 tools.json,或指定其本地路径
-
对于安全服务,请将“X-API-Key”请求头配置为启动安全服务时生成的 api_key.txt 文件中的值。
-
测试:打开 Cursor 的 Composer(Ctrl+I),输入“Check if Fledge API is reachable”,AI 应调用
validate_api_connection工具。
可用工具
数据访问与管理
- get_sensor_data:从 Fledge 获取传感器数据,可选择按时间范围和数量限制进行筛选
- list_sensors:列出 Fledge 中的所有可用传感器
- ingest_test_data:将测试数据导入 Fledge,可选择批次数量
服务控制
- get_service_status:获取所有 Fledge 服务的状态
- start_stop_service:按类型启动或停止 Fledge 服务
- update_config:更新 Fledge 配置参数
前端代码生成
- generate_ui_component:生成用于可视化 Fledge 数据的 React 组件
- fetch_sample_frontend:获取适用于不同框架的前端示例模板
- suggest_ui_improvements:获取由 AI 提供的 UI 代码改进建议
实时数据流
- subscribe_to_sensor:订阅传感器数据更新
- get_latest_reading:获取指定传感器的最新读数
调试与验证
- validate_api_connection:检查是否可以访问 Fledge API
- simulate_frontend_request:使用不同的方法和负载测试 API 请求
文档与架构
- get_api_schema:获取可用 Fledge API 端点的信息
- list_plugins:列出可用的 Fledge 插件
AI 辅助高级功能
- generate_mock_data:生成逼真的模拟传感器数据用于测试
测试 API
你可以使用随附的测试脚本测试服务:
# For standard server
python test_mcp.py
# For secure server with API key
python test_secure_mcp.py
安全选项
安全服务(secure_mcp_server.py)增加了 API 密钥认证:
- 首次运行时,会生成一个 API 密钥并存储在 api_key.txt 中
- 所有请求都必须在 X-API-Key 请求头中包含此密钥
- 健康检查端点仍可在未经身份验证的情况下访问
API 请求示例
# Validate API connection
curl -X POST -H "Content-Type: application/json" -d '{"name": "validate_api_connection"}' http://localhost:8082/tools
# Generate mock data
curl -X POST -H "Content-Type: application/json" -d '{"name": "generate_mock_data", "parameters": {"sensor_id": "temp1", "count": 5}}' http://localhost:8082/tools
# Generate React chart component
curl -X POST -H "Content-Type: application/json" -d '{"name": "generate_ui_component", "parameters": {"component_type": "chart", "sensor_id": "temp1"}}' http://localhost:8082/tools
# For secure server, add API key header
curl -X POST -H "Content-Type: application/json" -H "X-API-Key: YOUR_API_KEY" -d '{"name": "list_sensors"}' http://localhost:8082/tools
扩展服务
如需添加更多工具:
- 将工具定义添加到
tools.json - 在
mcp_server.py和secure_mcp_server.py中实现工具处理程序
生产环境注意事项
生产环境部署时:
- 使用 HTTPS
- 部署在 Nginx 等反向代理之后
- 实施更可靠的身份验证(JWT、OAuth)
- 添加速率限制
- 为订阅设置持久化数据存储
在 Smithery.ai 上部署
Fledge MCP Server 可以部署在 Smithery.ai 上,以提升可扩展性和可用性。按照以下步骤进行部署:
-
前提条件
- 在本地计算机上安装 Docker
- 拥有 Smithery.ai 账号
- 安装 Smithery CLI 工具
-
构建和部署
# Build the Docker image docker build -t fledge-mcp . # Deploy to Smithery.ai smithery deploy -
配置
smithery.json文件包含部署配置:- 在端口 8082 上使用 WebSocket 传输
- 可配置的 Fledge API URL
- 工具定义和参数
- 超时设置
-
环境变量 在 Smithery.ai 控制面板中设置以下环境变量:
FLEDGE_API_URL:你的 Fledge API 端点API_KEY:你的安全 API 密钥(如果使用安全模式)
-
验证 部署后,验证服务是否正在运行:
smithery status fledge-mcp -
监控 通过 Smithery.ai 控制面板监控部署:
- 实时日志
- 性能指标
- 错误跟踪
- 资源使用情况
-
更新 若要更新部署:
# Build new image docker build -t fledge-mcp . # Deploy updates smithery deploy --update
JSON-RPC 协议支持
该服务通过 WebSocket 使用 JSON-RPC 2.0 实现 Model Context Protocol(MCP)。支持以下方法:
-
initialize
{ "jsonrpc": "2.0", "method": "initialize", "params": {}, "id": "1" }响应:
{ "jsonrpc": "2.0", "result": { "serverInfo": { "name": "fledge-mcp", "version": "1.0.0", "description": "Fledge Model Context Protocol (MCP) Server", "vendor": "Fledge", "capabilities": { "tools": true, "streaming": true, "authentication": "api_key" } }, "configSchema": { "type": "object", "properties": { "fledge_api_url": { "type": "string", "description": "Fledge API URL", "default": "http://localhost:8081/fledge" } } } }, "id": "1" } -
tools/list
{ "jsonrpc": "2.0", "method": "tools/list", "params": {}, "id": "2" }响应:返回可用工具及其参数列表。
-
tools/call
{ "jsonrpc": "2.0", "method": "tools/call", "params": { "name": "get_sensor_data", "parameters": { "sensor_id": "temp1", "limit": 10 } }, "id": "3" }
错误代码
该服务遵循标准的 JSON-RPC 2.0 错误代码:
- -32700:解析错误
- -32600:无效请求
- -32601:未找到方法
- -32602:参数无效
- -32000:服务端错误
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。