iTaK MCP Server

使用说明(Markdown 格式)

  • 项目简介

    • iTaK 是一个面向多模型和多层记忆系统的智能任务内核。此 MCP 服务器模块是仓库中实现 MCP 协议核心服务器端的组件之一,负责暴露可被 MCP 客户端调用的工具、查询内存与任务等资源,并通过标准的 JSON-RPC 请求/响应与客户端通信。
  • 主要功能点

    • MCP 服务器核心功能:实现基于 MCP 的请求处理,支持 initialize、tools/list、tools/call 等常用方法,暴露自定义工具集合供 LLM 客户端调用。
    • 服务器端路由与通信:通过 mount_routes 将 MCP 服务把路由接入 FastAPI 应用,提供 /mcp/messages JSON-RPC 接口和健康状态等端点。
    • Bearer Token 认证:通过 token 配置实现对外部请求的简单认证。
    • 工具注册与调用:在服务器端注册固定的默认工具集合(如 send_message、search_memory、list_tasks、get_task、create_task、get_status),并对外暴露接口供 MCP 客户端调用。
    • 与客户端协同工作:服务器端实现的工具能够被 MCP 客户端通过 tools/call 调用,返回 JSON-RPC 风格的结果。
  • 安装步骤

    • 准备运行环境:确保已安装 Python 3.x、以及所需的依赖(如 FastAPI、Uvicorn 等 Web 框架组件)。
    • 集成方式:将 MCP 服务器作为一个模块整合进一个 FastAPI 应用中,使用 ITaKMCPServer 的 mount_routes 将路由挂载到应用对象上。
    • 启动方式:使用 UVicorn 启动运行的 FastAPI 应用,例如 uvicorn your_app:app --host 0.0.0.0 --port 8000(具体应用入口和模块名请按你们的应用结构调整)。
    • MCP 客户端配置:MCP 客户端需要点对点的服务器信息来建立连接(后续给出示例配置)。MCP 客户端的连接通常通过一个外部进程调用实现,本服务器提供的接口/路由可供该客户端通过 JSON-RPC 调用。
  • 服务器配置(给 MCP 客户端的启动信息,JSON 格式) 说明:MCP 客户端要连接到 MCP 服务器,至少需要提供服务器的名称、启动命令和参数;以下为示例配置,具体命令需按实际运行环境调整。 { "mcp_servers": { "mcp_server_example": { "command": "python", "args": ["-m", "core.mcp_server"] // 启动 MCP 服务器的入口模块/命令 } // 如需更多服务器,可继续添加 } , "mcp_client_init_timeout": 10, // 初始化超时时间(秒) "mcp_client_tool_timeout": 120 // 调用工具的超时时间(秒) } 备注:

    • 上述配置示例中的 server 名称(如 mcp_server_example)为客户端识别的服务器标识。
    • command 与 args 组合应指向一个可执行的 MCP 服务器进程,此进程需要实现 MCP 的 JSON-RPC 交互(本实现提供 HTTP 路由作为 MCP 服务器能力展示,实际客户端对接请按实际部署方式配置)。
    • 客户端在建立连接时会通过 initialize 调用确认协议信息、通过 tools/list 获取可用工具等。
  • 基本使用方法

    • 将 MCP 服务器接入你的应用并启动:将 ITaKMCPServer 的实例挂载到你的 FastAPI 应用并运行应用。
    • 客户端使用:MCP 客户端进程启动后,读取上面的配置,通过启动命令与 MCP 服务器建立通信,随后可以调用工具(tools/call)来执行服务器暴露的功能,比如发送消息、查询内存、获取任务状态等,获取 JSON-RPC 风格的响应。
    • 安全性:如需对外暴露,请使用 Bearer Token 对请求进行认证,确保仅授权的客户端能够调用工具。
    • 日志与监控:MCP 服务器与整体系统的日志、错误和状态可结合现有的 iTaK 日志体系进行追踪与排错。
  • 重要注意

    • 该实现包含服务器端组件(ITaKMCPServer),并提供工具暴露与路由挂载能力,但实际以“独立 MCP 服务器进程”形式运行的完整示例可能需要将 mount_routes 与一个运行中的 FastAPI 应用结合起来使用。请在实现中确保路由和 JSON-RPC 接口符合 MCP 的协议语义与字段约束。

服务器信息