TodoFlow MCP 服务器实现

使用说明内容(Markdown格式)

TodoFlow MCP 服务器使用说明

项目简介

TodoFlow 的 MCP 服务器端实现基于 Model Context Protocol(MCP),核心职责是向 LLM 客户端提供上下文信息和功能支持。它托管资源(如任务、会话历史等)、注册可执行的工具(如 list_tasks、create_task、update_task、delete_task 等),并定义/渲染用于与 LLM 交互的提示模板。服务器通过 MCP 的 JSON-RPC 风格协议与客户端通信,支持会话管理、能力声明和多种传输方式(如流式输出)。

主要功能点

  • 资源与数据访问:提供对任务与聊天历史等资源的读取、创建、更新和删除等能力。
  • 工具注册与执行:通过 MCP 服务注册工具(如 list_tasks、create_task、update_task、delete_task、get_task_details、toggle_task 等),由 LLM 客户端调用并返回结果。
  • 提示与上下文:维护系统提示(如 SYSTEM_PROMPT)和历史上下文,供模型在交互中使用。
  • 会话与授权:内置用户模型、JWT 授权、会话管理,确保操作的用户唯一性与安全性。
  • 流式互动:对话可以以流式方式返回,支持分块传输、工具调用以及逐步构建结果。
  • 兼容多传输场景:设计初衷包含对不同传输协议的兼容性(如标准请求/响应、流式输出等)。

安装步骤

    1. 准备依赖
    • 确保环境具备 Python 3.x 及所需依赖库(读取项目中的依赖清单安装)。
    1. 设置环境变量
    • 必要环境变量包括数据库连接、LLM API Key、JWT 配置等(参考项目中使用的位置)。
    1. 启动 MCP 服务
    • 启动方式依赖实际部署环境和运行方式,通常为在服务器进程中加载 MCP 服务定义并监听端口,供 MCP 客户端连接。请确保服务端入口能够加载后续注册的工具并对外暴露。

服务器配置(MCP 客户端所需,不包含客户端代码)

以下为 MCP 客户端连接所需的配置示例描述(以 JSON 格式表达,便于阅读,实际应由客户端读取该结构用于连接配置): { "server_name": "TodoFlow MCP Server", "command": "python", "args": ["backend/app/mcp_server.py"], "notes": "请在部署环境中以正确工作目录运行上述命令。确保以下环境变量已正确设置:DATABASE_URL、OPENAI_API_KEY、JWT_SECRET、LLM_MODEL 等。服务器暴露的地址将用于 MCP 客户端连接,客户端通过该地址建立 JSON-RPC 风格的通信。" } 说明:

  • server_name 指示服务器实例名称,便于在客户端侧区分。
  • command/args 描述启动 MCP 服务器的命令及参数。具体执行路径以部署实际环境为准。
  • notes 备注额外信息,帮助运维理解依赖与配置要求。MCP 客户端本身不需要额外的客户端代码。

基本使用方法

  • 启动后,MCP 客户端通过服务器地址进行连接,发送标准的 MCP 请求(如读取资源、执行工具、获取 Prompt 等),并接收响应。
  • 客户端可以通过工具清单获知服务器暴露的工具(如 list_tasks、create_task 等),并按需调用。
  • 服务器负责会话上下文维护、权限检查,以及将工具执行结果返回给客户端,必要时继续对话并进行后续动作。

服务器信息