AgentSpec MCP 服务器
使用说明
- 项目简介
- 本仓库实现了一个符合 MCP(Model Context Protocol)标准的后端服务器,负责向 LLM 客户端提供上下文信息和能力,包括对资源(Resources)的管理、工具(Tools)的注册与执行,以及 Prompt 模板(Prompts)的渲染。服务器通过 JSON-RPC 与客户端通信,支持多传输通道(stdio 和 HTTP),并提供会话管理、能力声明,以及健康检查、审计、资源读取等服务。
- 主要功能点
- JSON-RPC 核心请求处理与响应
- initialize、tools/list、tools/call、ping 等基础方法
- 资源、工具、Prompts 的托管与执行能力
- 与多种 MCP 相关工具与服务的对接入口:validate、health、audit、scan、diff、gap、listAgents、proof、generate 等后端工具
- 双传输模式支持
- stdio(命令行/脚本环境常用,默认传输)
- HTTP(持久服务,http://host:port/mcp,/health 等端点)
- 健康检查与操作员辅助
- 提供 health、gap、proof 等接口,用于运行时健康状态与一致性验证
- JSON-RPC 核心请求处理与响应
- 安装与运行步骤
- 安装依赖并构建
- 安装依赖并编译源码(项目通常使用 TypeScript + tsup 构建,生成 dist/index.js)
- 启动方式
- 以 stdio 传输启动:node dist/index.js
- 以 HTTP 传输启动:node dist/index.js --http
- 通过环境变量 MCP_PORT 可自定义端口(默认为 3666)
- 服务健康与可用性
- 通过 GET /health 可以快速确认 MCP 服务器实例处于就绪状态
- 通过 POST /mcp 进行 JSON-RPC 请求测试基本功能(例如 initialize、tools/list、ping)
- 安装依赖并构建
- 服务器配置(供 MCP 客户端使用的配置信息)
说明:MCP 客户端需要知道如何启动并连接到 MCP 服务器。本字段给出一个示例配置,以便在客户端侧集中管理连接信息(名称、启动命令与参数等)。注意:实际部署中,MCP 客户端不需要你在代码中包含服务器实现细节;这里的配置仅用于描述连接和启动参数。示例仅作参考,实际字段名称与实现可能因部署框架而异。
{
"serverName": "agentspec",
"transport": "http",
"command": "node",
"args": ["dist/index.js", "--http"],
"env": {
"MCP_PORT": "3666"
},
"notes": "HTTP 模式启动,端口通过 MCP_PORT 指定;如使用 stdio 模式,请删掉 --http,并将 transport 设为 stdio。"
}
使用要点:
- serverName: MCP 服务器在客户端侧的标识名称,便于区分多服务器场景。
- command / args: 启动 MCP 服务器的命令及参数,确保客户端能够以相同方式启动并连接。
- env: 如需自定义端口、地址等,请在 env 中设置相应变量。
- transport 注解:HTTP 模式为远程可访问的服务,stdio 模式为本地流式传输。
- 基本使用方法
- 启动前提
- 已安装依赖并构建成功
- Node.js 环境就绪(若以 HTTP 启动,需确保端口对外可访问)
- 启动命令
- stdio 模式:node dist/index.js
- HTTP 模式:node dist/index.js --http
- 健康与验证
- 访问 /health 获取 MCP 服务器状态
- 使用 JSON-RPC 测试初始化、工具列表、工具调用等能力,确保服务器能正确响应
- 与客户端集成的要点
- MCP 客户端需要了解服务器的启动命令与参数,以便在集群中统一化部署(例如 Operator/控制平面侧的容器编排)
- 客户端依赖 JSON-RPC 的标准请求格式,服务端返回标准 JSON-RPC 响应
- 启动前提