Keep MCP 服务端
使用说明(简要且直接,便于快速上手)
- 项目简介
- Keep 项下的 MCP 服务器模块实现了 MCP 的核心能力:管理资源(Resources)、注册并执行工具(Tools)、以及提供基础的交互模板(Prompts)等核心能力,并通过 JSON-RPC 风格的消息进行通信。服务器设计提供多传输方式的可扩展性,并具备会话管理等基础能力。
- 主要功能点
- 处理 MCP 请求与响应:按照 MCP 的 JSON-RPC 样式接收请求,构造响应或错误信息返回客户端。
- 资源和工具管理:提供读取资源、读取工具信息、工具执行等核心接口。
- 会话管理与权限:内置会话与权限框架,确保不同客户端的访问与操作受控。
- 模块化设计:提供 MCP Server 的核心结构,以及可与现有 Keep 生态集成的工具、资源等模块。
- 测试覆盖:包括对初始化和工具列表等 MCP 关键路径的单元测试。
- 安装步骤
- 该仓库包含 MCP 服务端库代码,可作为 Keep-Agent 组件的一部分进行编译。请在本地环境中使用 Cargo 构建与集成测试,确保具备 Rust 编译环境。
- 服务器配置(MCP 客户端需要的最小配置) 以下 JSON 配置示例描述了 MCP 服务器的启动信息、名称和执行命令等信息(请仅作为配置示意,实际客户端连接时不需要此配置代码块): { "servers": { "keep-signer": { "command": "keep", "args": ["mcp-server"], "env": { "KEEP_SESSION_TOKEN": "keep_sess_...", "KEEP_BUNKER_URL": "bunker://npub1.../wss://relay.example.com" } // 如需额外参数,可按需追加 } // 其他服务器配置可在此扩展 } } 说明:
- server name:keep-signer(示例名称,可自定义)
- command:keep(用于启动 MCP 服务器的主程序)
- args:["mcp-server"](指示 Keep 工具链中用于 MCP 服务端的子命令/模式)
- env:KEEP_SESSION_TOKEN、KEEP_BUNKER_URL 等用于身份与上下文绑定的环境变量
- 以上配置用于 MCP 客户端在配置阶段了解如何连接并启动服务器侧的 MCP 服务,实际 MCP 客户端并不需要编写该服务器的代码,只需要知道服务器的启动信息即可。
- 基本使用方法
- 启动服务器:在符合依赖与运行环境的前提下,使用上述启动命令启动 MCP 服务端(具体执行环境请参考 Keep 及 MCP 模块的工程文档)。
- 客户端交互:客户端通过 JSON-RPC 发送 MCP 请求(如读取资源、执行工具、获取 Prompts 等),服务器返回 JSON-RPC 格式的响应或通知。服务器端负责会话管理、能力声明以及向 LLM 客户端提供标准化的上下文服务。
- 运维与扩展:可将 MCP 服务接入现有的传输协议(如 STDIO、SSE、WebSocket),并在需要时扩展 Prompts/模板的渲染逻辑。
- 基本注意事项
- MCP 的核心通信协议为 JSON-RPC,客户端需要按照该协议发送请求并解析响应。
- 服务端应实现会话管理和能力声明,确保对资源和工具的访问受控。
- 如需扩展,请在工具、资源、以及提示模板等模块中实现新的功能点,并通过对应的 MCP 接口暴露。
关键词 资源管理, JSON-RPC, 工具执行, 会话管理, Nostr 集成
分类ID 5