Nucleus MCP 服务器
使用说明(Markdown 格式)
- 项目简介
- 这是一个 MCP 服务器实现,其核心职责是通过 JSON-RPC 与 MCP 客户端通信,提供对工具的注册/调用、资源访问、以及提示模板的管理等能力,并通过 nucleus-tool-proxy 实现对代理工具的安全访问。
- 主要功能点
- MCP 协议核心:实现 MCP 的初始化、工具列表、工具调用和心跳(ping)等请求的处理与响应。
- 工具代理与审批:向 nucleus-tool-proxy 发送工具调用请求,支持对需要审批的操作进行提示与审批流程。
- 会话与身份:通过 actor/sessionId 机制支持会话级请求追踪,便于审计与追踪。
- 模型上下文能力扩展:通过与工具代理的组合,提供资源读取/写入、命令执行、以及 Web 相关工具的调用能力(已实现的工具包括 read、write、run、web_fetch 等,其他策略性能力按需要扩展)。
- 多传输与可扩展性:设计上可通过 STDIN/STDOUT 作为传输,未来可扩展为 SSE/WebSocket 等传输,中间层保持清晰的 JSON-RPC 抽象。
- 安装与运行步骤
- 安装:将 MCP 服务器编译并安装到系统中,例如通过 cargo install nucleus-mcp。
- 运行:在命令行执行 nucleus-mcp,传入必要参数,例如:
- --proxy-url: 连接到 nucleus-tool-proxy 的地址(必填)
- --actor: 指定服务器端的执行主体标识(可选,默认 "nucleus-mcp")
- --auth-secret: 如需要对工具代理的请求进行签名鉴权,可提供共享密钥(可选) 注:Nucleus MCP 服务器的客户端需要配置 MCP 服务器的启动命令及参数,以便建立连接。
- 服务器配置示例(MCP 客户端使用的配置)JSON 格式 { "serverName": "nucleus-mcp", "command": "/path/to/nucleus-mcp", "args": [ "--proxy-url", "http://127.0.0.1:8000", "--actor", "nucleus-mcp" ], "notes": "MCP 客户端需要提供代理 URL(proxy_url)以连接到 nucleus-tool-proxy,actor 用于签名和审计" } 说明:
- serverName:MCP 服务器的标识名称,应与实际部署环境一致。
- command:启动 MCP 服务器的执行路径,通常是编译后的二进制路径。
- args:启动参数,至少包含 --proxy-url 指向 nucleus-tool-proxy 的地址,可选设置 actor、auth secret 等。
- notes:中文注释,帮助理解配置用途,MCP 客户端不需要此字段,仅用于帮助理解配置含义。
- 基本使用方法
- 启动前提
- 需要有 nucleus-tool-proxy 在目标地址可用,MCP 客户端将通过 MCP 服务器间接调用工具。
- 确保代理地址、鉴权密钥等在环境中可用。
- 日常使用
- 启动 MCP 服务器并确保与代理的连接可用。
- MCP 客户端通过 MCP JSON-RPC 与服务器进行初始化、获取工具列表、发起工具调用、以及处理审批。
- 通过日志与错误信息进行排错,必要时对审批流程进行调试。
- 与客户端的对等关系
- MCP 客户端需要配置服务器的启动命令与参数,以便在对话中建立连接并发送 MCP 请求。
- MCP 服务器返回的响应遵循 MCP 的 JSON-RPC 结构,含有 id、result 或 error 字段,便于客户端进行匹配和错误处理。
- 关注点与扩展
- 安全性:若需要更严格的认证与授权,可结合现有身份体系(如 SPIFFE/mTLS)进行扩展。
- 功能扩展:可逐步暴露更多工具类型、资源接口,以及 Prompts 的渲染与缓存策略。
- 传输协议扩展:当前通过标准输出输入进行 MCP 交互,后续可增强为 SSE、WebSocket 等传输通道。
- 备注
- MCP 客户端在使用时通常不需要了解服务器内部实现细节,只需按照服务器提供的接口进行配置与调用即可。