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 等),以适配不同客户端需求。
- 安全性与扩展性:设计上强调出入口控制、工具动态装载和扩展性。
-
安装步骤
- 克隆仓库并进入项目目录。
- 安装依赖(如 Python 包管理工具或 Node 依赖,视具体实现而定)。
- 按仓库的运行指引启动 MCP 服务器,确保后端数据库和缓存服务就绪。
- 启动后通过健康检查接口确认 MCP 服务是否正常运行(例如 MCP 的健康端点返回正常状态)。
- 启动 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 将模板填充上下文后产出最终输入。
- 连接与请求