使用说明

项目简介

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 数据库存储所有数据,保证数据可靠性。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/DanEdens/fastmcp-todo-server.git
    cd fastmcp-todo-server
  2. 安装 uv (如果未安装):

    curl -LsSf https://astral.sh/uv/install.sh | sh
  3. 创建并激活虚拟环境:

    uv venv
    source .venv/bin/activate   # Unix/macOS
    .venv\Scripts\activate  # Windows
  4. 安装依赖:

    uv pip install -r requirements.txt
  5. (可选) 安装开发依赖:

    uv pip install -r requirements-dev.txt
  6. 配置环境变量: 创建 '.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 模块作为主程序
}

基本使用方法

  1. 启动服务器:

    python -m src.fastmcp_todo_server
  2. 使用 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 地址和端口。

    更多工具和使用方法请参考仓库中的代码和测试用例。

信息

分类

开发者工具