MCP Rubber Duck 服务器端
使用说明(Markdown格式)
-
项目简介
- 这是一个基于模型上下文协议(MCP)的服务器端实现,负责托管和管理资源(Resources)、注册与执行工具(Tools)、定义与渲染提示模板(Prompts),并通过 JSON-RPC 与 MCP 客户端通信。服务器还提供会话管理、能力声明,以及对外部 MCP 服务器的桥接能力,方便集成多 Sprach 模型和外部编码代理,形成可扩展的上下文服务平台。
-
主要功能点
- MCP 核心能力:资源、工具、提示的托管与访问;对外提供数据访问、功能调用和模板渲染能力
- JSON-RPC 通信:客户端通过标准的 JSON-RPC 请求/响应模型与服务器交互
- 会话与上下文管理:维护对话历史、会话能力与模型上下文
- 多传输协议支持:可通过 STDIO、SSE、WebSocket 等传输方式与客户端通信
- MCP 桥接与桥工具:可将其它 MCP 服务器作为客户端接入,扩展能力
- 安全与守护:可插拔的 Guardrails(守护规则)、权限与会话级审核等
- CLI/本地工具支持:可以将本地 CLI 编码代理作为鸭子(工具/代理)接入
- 可自定义的 Prompt 模板:提供多种可复用的提示模板,用以构建多模型工作流
- UI 与应用集成:与 MCP Apps 等前端 UI 集成,呈现可视化的对比、投票、辩论、使用统计等
-
安装步骤
- 需要的前提
- Node.js 20 及以上
- 基本安装
- 克隆仓库并进入目录,安装依赖
- 构建项目
- 启动服务器
- 运行方式
- 直接通过 npm 脚本启动
- 也可通过从源码 dist/index.js 启动(Node.js 运行时)
- 配置方式
- 环境变量配置:通过 .env 或系统环境变量设定 OpenAI、Gemini、GROQ、OLLAMA、CLI 提供者等的密钥、模型默认值等,以及 MCP 桥接、服务器自设参数等
- 配置文件 config.json 的方式也可作为替代
- 连接 MCP 客户端的要点
- MCP 客户端在连接 MCP 服务器时,需要指定服务器启动命令和参数(command、args),以便客户端能够启动并连接到 MCP 服务器
- 服务器端提供的能力包括:读取资源、执行工具、获取 Prompts 等入口;客户端通过这些入口与服务器交互
- 基本使用方法
- 启动服务器后,MCP 客户端即可通过 JSON-RPC 调用诸如读取资源、调用工具、获取 Prompts 等功能
- 客户端可通过静态配置或动态桥接方式扩展能力,例如接入其它 MCP 服务器、共享工具/资源
- 使用 MCP Apps 等前端 UI 时,通过服务器暴露的入口进行可视化操作
- 需要的前提