ArcAgent MCP 服务器
- 项目简介
- ArcAgent MCP 服务器是一套完整的后端实现,遵循 MCP 协议,为大语言模型(LLM)提供可访问的上下文信息、资源、工具以及可渲染的提示模板。通过 JSON-RPC 风格的请求/响应,与客户端进行交互,支持多种传输模式(包括 STDIO、HTTP/WS),并具备会话管理、能力声明与安全审计能力。
- 主要功能点
- 资源与数据访问:提供 Resources 的读取、列举等能力,便于 LLM 在对话中获取上下文。
- 工具注册与执行:暴露大量可调用的 Tools,LLM 可以通过 MCP 调用外部功能实现任务自动化。
- 提示模板与渲染:定义和渲染 Prompt 模板,支持可定制的交互模式,便于 LLM 触发特定工作流。
- 会话与认证:支持基于 API Key 的鉴权、会话管理、TTL、状态化与无状态模式切换等。
- 安全与审计:在请求处理链中执行权限校验、请求追踪和审计日志(可 mirroring 到 Convex)。
- 多传输与目录扫描:除了自带的 stdio 传输,还支持 HTTP 传输和目录扫描模式,方便在不同环境下对接。
- 安装与运行步骤
- 克隆仓库并进入目录,安装依赖
- 按需配置环境变量(如 MCP_TRANSPORT、MCP_PORT、CONVEX_URL、ARCAGENT_API_KEY、WORKER_SHARED_SECRET 等)
- 启动 MCP 服务器(stdio 或 http 传输均可),以及相关组件(前端、Worker、Convex 等)
- 发布 MCP 包(用于代理/部署环境可以作为独立的 MCP 服务实例)
- 服务器配置(供 MCP 客户端参考)
- serverName: arcagent-mcp
- command: npx
- args: ["arcagent-mcp"] // 运行 MCP 服务器的入口包
- 说明: 这是用于本地自建或操作端托管 MCP 服务器的最简启动组合。生产环境通常通过部署脚本/容器运行,结合公开的服务端地址暴露给 MCP 客户端。
- 说明(注释性信息,非代码形式):
- MCP 客户端无需该部分代码,只需了解服务器名称与启动方式即可连接到服务器端点。
- 客户端连接时需提供服务器地址(如 https://mcp.arcagent.dev/mcp)以及必要的鉴权信息(Authorization: Bearer <API_KEY>)。
- 基本使用方法
- 启动与连接
- 启动:在支持的环境中以 http 或 stdio 传输模式启动 ArcAgent 的 MCP 服务端。
- 连接:MCP 客户端通过 JSON-RPC 风格的请求向 /mcp 端点发送请求,包含 jsonrpc、id、method 与 params 等字段。
- 资源与工具的普通用法
- 通过 /api/mcp/register 接口进行首次注册,获得 API Key,用于后续会话初始化与鉴权。
- 使用 /mcp 发送 initialize、tools/list、prompts/list、resources/list 等用于目录扫描与发现的调用(部分为未认证也可访问的公开接口,便于目录扫描器爬取元信息)。
- 对有身份的客户端,使用 session 机制在 /mcp 路径对同一会话进行多次请求的上下文维护。
- 安全与运维
- 服务端对 Host、HTTPS、API Key、账户权限等进行了多层次校验,包含注入防护、路径遍历等安全防护。
- 提供健康监听、日志与指标暴露,便于运维监控。
- 启动与连接