corvid-agent MCP 服务端实现
使用说明(Markdown)
- 项目简介
- 该仓库实现了一个基于模型上下文协议(MCP)的后端服务,核心职责是为大语言模型客户端提供标准化的上下文服务与能力。它支持资源管理、工具注册与执行、以及提示模板的渲染与应用,能够通过多种传输协议(HTTP/WS/标准输入输出等)与客户端通信。
- 主要功能点
- MCP 核心能力
- 资源与上下文管理:提供资源、内存、会话等能力的数据访问和管理。
- 工具注册与执行:通过 MCP 工具体系注册多种工具,LLM 客户端可调用外部功能并获取结果。
- 提示模板与对话上下文:支持灵活的 Prompt 渲染与历史上下文管理,便于多轮对话。
- JSON-RPC/OpenAPI API:提供统一的 REST API 与 MCP 兼容的工具接口描述,便于客户端发现与调用。
- 通信与对接
- HTTP/WS/StdIO 等传输渠道,支持多模态对接与流式输出。
- 外部 MCP 服务接入能力:可以通过 stdio 传输等方式接入外部 MCP 服务器,整合多源工具。
- 安全与治理
- 访问鉴权、受控工具权限、工具调度限制,以及审计、观测性和多租户隔离。
- 开箱即用的架构
- 提供 OpenAPI 自动化生成、丰富的工具集合、A2A/AIO 等集成,以及对外部服务的连接能力。
- 安装与运行步骤
- 先决条件
- Bun 运行时环境,以及对 Node/Bundler 的兼容性要求。
- 安装依赖
- 在仓库根目录执行 bun install(或等效的安装命令)。
- 启动服务器
- 运行 Bun 命令启动服务,默认监听端口 3000,HTTP/WS 服务对外暴露。
- 环境变量与配置
- 服务器对外暴露大量选项(如 API KEY、模型提供者、模型主机、数据库等),具体请参阅 .env.example 文件并按需配置。核心要点包括:API Key、数据库连接、模型提供者 APIKey、OpenAI/Anthropic 等接入键,以及对外桥接设置(Telegram/Discord/Slack 等)。
- 外部 MCP 服务器接入
- 该实现支持将外部 MCP 服务器作为“外部服务”接入,并在启动时通过 JSON 配置描述需要连接的服务器、命令、工作目录、环境变量等信息。通过该机制可以统一调度来自不同源的工具,扩展能力。
- 服务器配置(MCP 服务器配置描述) 说明:下面给出一个示例配置的描述性说明,实际使用时请用 JSON 格式按需填充。MCP 客户端无需该配置,只用于外部 MCP 服务对接。
- 服务器名称(name):对应外部 MCP 服务器的标识,如 "github-mcp-server"。
- 启动命令(command):启动该外部 MCP 服务器所使用的可执行命令,例如 bun。
- 启动参数(args):命令行参数列表,指向用于暴露 MCP 工具的脚本,如 server/mcp/stdio-server.ts。
- 工作目录(cwd):外部进程的工作目录(绝对路径)。
- 环境变量(envVars):需要传递给外部 MCP 服务器的环境变量集合,例如 CORVID_AGENT_ID、CORVID_API_URL 等。
- 是否启用(enabled):布尔值,指示该外部 MCP 服务器是否启用。
- 代理/身份(agentId)等可选字段:用于标识在外部服务器中与之关联的本地代理标识。
示例(文本描述,不含代码块): { "name": "github-mcp-server", "command": "bun", "args": ["server/mcp/stdio-server.ts"], "cwd": "/abs/path/to/corvid-agent", "envVars": { "CORVID_AGENT_ID": "corvid-agent-001", "CORVID_API_URL": "http://localhost:3000" }, "enabled": true } 说明:以上配置用于外部 MCP 服务器接入 corvid-agent 的 MCP 服务端,外部服务器通过标准输入输出协议与 Corvid 的 MCP 服务端通信并注册其工具。
- 基本使用方法
- 启动后端服务
- 启动 corvid-agent 的 MCP 服务端,服务端将对外暴露 MCP/REST/OpenAPI 等接口。
- 使用 MCP 客户端
- 通过 MCP 客户端(实现端)来查询、注册资源,注册工具并执行工具调用,以及读取或渲染 Prompt 模板。具体使用请参考 MCP 客户端的文档。
- 外部服务器对接
- 如需接入外部 MCP 服务器,请提供上述 JSON 配置描述,External MCP Client Manager 会拉起外部进程并发现其工具,暴露为本服务器可调用的直接工具。
- 安全与运维
- 启用 APIKey 鉴权,确保仅授权客户端可以访问 API;利用日志、审计与观测组件对执行过程进行追踪与告警。
- 常见场景
- 通过 MCP 工具调用实现跨代理协作、跨系统的数据流转、跨模型的上下文扩展等能力。
-
关键词 模型上下文协议, 工具注册与执行, 多代理协作, JSON-RPC API, OpenAPI 自动化
-
分类 5