Thoth MCP Server

使用说明(Markdown 格式)

  • 项目简介

    • Thoth 项目中集成了一个 MCP 服务器,用于对外以 MCP 标准暴露资源、工具和 Prompt 模板,并通过 JSON-RPC 与 LLM 客户端进行通信。服务器负责会话管理、能力声明,以及对多种传输协议的支持,提供安全、可扩展的上下文服务框架。
  • 主要功能点

    • 资源管理:提供对资源的托管、读写访问,便于 LLM 客户端获取上下文所需的数据。
    • 工具注册与执行:注册可调用的工具(Tools),LLM 通过 JSON-RPC 请求调用外部功能。
    • Prompt 模板定义与渲染:提供可定制的 Prompt 模板,支持按需渲染和替换变量。
    • MCP 客户端交互:遵循 MCP 规范的请求/响应格式,使用 JSON-RPC 与客户端通信。
    • 会话与能力声明:服务器端维护会话上下文,并对客户端能力进行声明与管理。
    • 多传输协议支持:支持标准传输(如 Stdio、Server-Sent Events、WebSocket 等),以适配不同客户端需求。
    • 安全性与扩展性:设计上强调出入口控制、工具动态装载和扩展性。
  • 安装步骤

    1. 克隆仓库并进入项目目录。
    2. 安装依赖(如 Python 包管理工具或 Node 依赖,视具体实现而定)。
    3. 按仓库的运行指引启动 MCP 服务器,确保后端数据库和缓存服务就绪。
    4. 启动后通过健康检查接口确认 MCP 服务是否正常运行(例如 MCP 的健康端点返回正常状态)。
    5. 启动 MCP 客户端并通过 JSON-RPC 发起请求,测试资源读取、工具调用与 Prompts 的渲染。
  • 服务器配置(面向 MCP 客户端,以下为描述性配置字段说明,不直接作为代码展示)

    • server_name: Thoth MCP Server
    • command: 指定启动服务器的执行命令,例如用于本地开发的入口命令,通常为一个可执行的服务器入口(如 uvicorn、gunicorn 或自定义启动脚本)。
    • args: 启动命令的参数数组,包含主模块/应用入口、监听地址、端口等信息,例如将服务器绑定到公开地址与端口以接受 MCP 客户端请求。
    • transport: MCP 服务器可用的传输方案列表,如 stdio、sse、websocket 等,客户端可根据需要选择。
    • resources_path: 服务读取/写入资源的根目录或数据库路径,用于资源管理。
    • tools_loader: 动态加载工具的机制描述(如从插件/ Vault 读取工具定义、动态绑定到 MCP 服务的流程)。
    • prompts_path: Prompt 模板的存放路径,支持模板渲染与变量替换。
    • security: 认证与权限配置描述(如 API Key、访问白名单、角色权限等)。
    • memory_config: 与 Letta 等内存系统的集成配置(若使用记忆模块)。
    • logging: 日志等级与输出路径等。
  • 基本使用方法

    • 连接与请求
      • 客户端通过 MCP 的 JSON-RPC 接口发送请求,例如读取资源、调用工具、获取 Prompt 等。
      • MCP 服务应返回符合 JSON-RPC 规范的响应,错误情况提供清晰的错误信息。
    • 会话与能力
      • 客户端在连接时可查询服务器能力,服务器返回其支持的资源、工具、Prompts 以及可用的传输方式。
      • 通过会话管理 API 维持跨请求的上下文信息。
    • 工具与资源访问
      • 客户端可通过注册的工具执行外部功能,返回执行结果给 LLM 使用。
      • 资源可被查询、读取或更新,供 LLM 在对话中引用。
    • Prompts 渲染
      • 客户端请求 Prompts 时,服务器返回可渲染的模板以及必要的变量占位符,LLM 将模板填充上下文后产出最终输入。

服务器信息