使用说明
项目简介
FastMCP Todo Server 是一个基于 Model Context Protocol (MCP) 构建的后端服务器,旨在提供任务管理和知识记录功能。它使用 MongoDB 数据库存储数据,并通过 FastMCP 协议向客户端暴露一系列工具接口,例如添加、查询、更新和删除 Todo 任务,以及管理经验教训 (Lessons Learned)。此外,它还集成了 Node-RED 流程部署功能,并支持 MQTT 状态发布,方便集成到更广泛的自动化系统中。
主要功能点
- Todo 任务管理: 支持创建、查询、更新、删除 Todo 任务,以及标记任务完成和按状态列出任务。
- 经验教训 (Lessons Learned) 管理: 提供记录、检索、更新和删除经验教训的功能,用于知识管理和经验积累。
- 文本搜索: 支持对 Todo 任务和经验教训进行关键词文本搜索。
- Node-RED 流程部署: 允许通过 MCP 工具远程部署 Node-RED 流程,实现自动化流程管理。
- MQTT 状态发布: 服务器运行状态通过 MQTT 协议发布,方便监控和集成。
- 数据持久化: 使用 MongoDB 数据库存储所有数据,保证数据可靠性。
安装步骤
-
克隆仓库:
git clone https://github.com/DanEdens/fastmcp-todo-server.git cd fastmcp-todo-server -
安装 uv (如果未安装):
curl -LsSf https://astral.sh/uv/install.sh | sh -
创建并激活虚拟环境:
uv venv source .venv/bin/activate # Unix/macOS .venv\Scripts\activate # Windows -
安装依赖:
uv pip install -r requirements.txt -
(可选) 安装开发依赖:
uv pip install -r requirements-dev.txt -
配置环境变量: 创建 '.env' 文件,并根据需要配置 MongoDB 连接信息:
MONGODB_URI=mongodb://localhost:27017 MONGODB_DB=swarmonomicon MONGODB_COLLECTION=todos
服务器配置
MCP 客户端需要配置以下信息以连接到 FastMCP Todo Server。以下是启动服务器所需的配置信息,客户端通常需要将其配置为 MCP 服务器的启动参数。
{ "serverName": "fastmcp-todo-server", // MCP 服务器名称,客户端用于识别和连接 "command": "python", // 启动服务器的命令,这里使用 Python 解释器 "args": ["-m", "src.fastmcp_todo_server"] // 启动命令的参数,指定运行 src.fastmcp_todo_server 模块作为主程序 }
基本使用方法
-
启动服务器:
python -m src.fastmcp_todo_server -
使用 MCP 客户端调用工具: 可以使用任何兼容 MCP 协议的客户端与服务器交互。例如,可以使用 'fastmcp' Python 客户端或直接通过 MQTT 发送请求来调用服务器提供的工具,如 'add_todo'、'query_todos' 等。
示例 (使用 FastMCP Python 客户端):
from fastmcp import FastMCPClient import asyncio async def main(): client = FastMCPClient() response = await client.call_tool("add_todo_tool", { "description": "Example todo from MCP client", "priority": "medium" }) print(response) if __name__ == "__main__": asyncio.run(main())示例 (使用 MQTT 直接发布消息):
mosquitto_pub -h <MQTT_BROKER_HOST> -p <MQTT_BROKER_PORT> -t "mcp/todo-server/call" -m '{"tool": "add_todo_tool", "arguments": {"description": "Example todo via MQTT", "priority": "low"}}'请将 '<MQTT_BROKER_HOST>' 和 '<MQTT_BROKER_PORT>' 替换为您的 MQTT Broker 地址和端口。
更多工具和使用方法请参考仓库中的代码和测试用例。
信息
分类
开发者工具