@ai-agent-context/mcp (中文(简体) )
MCP( 模式上下文协议) 适应器 ai-agent-context。 。 。 .
适配器将显示由 @ai-agent-context/core 给MCP的客户 通过stdio。 它没有包含分析逻辑:每个工具代表给核心API,所以同样的保证(决定性,局部性,证据支持性)适用不变.
安装
npm install @ai-agent-context/mcp
运行服务器
agent-context-mcp --root /path/to/repository
寄存器根默认为 AGENT_CONTEXT_ROOT,然后转到当前工作目录。 stdout只携带了JSON-RPC;所有的诊断都去Stderr.
客户端配置
为支持的客户端打印片段 :
agent-context-mcp config claude-code
agent-context-mcp config cursor
agent-context-mcp config cline
agent-context-mcp config continue
agent-context-mcp config --list # supported clients
agent-context-mcp config --all # every client at once
每个片段打印客户端的值 mcpServers 字段。 将其合并到现有的文件中去——配置文件也包含不相关的设置,因此替换文件会销毁它们.
| 客户端 | 文件 | 形状 |
|---|---|---|
| 克劳德代码 | .mcp.json | 由服务器名键入的对象 |
| 光标 | .cursor/mcp.json | 由服务器名键入的对象 |
| 线条( VS 代码) | cline_mcp_settings.json | 由服务器名键入的对象 |
| 继续 | ~/.continue/config.json | 数组 |
运行本地检出而不运行已发布的套件 :
agent-context-mcp config cursor --command node --command-arg /path/to/packages/mcp/dist/bin.js
礼宾支助
服务器是 双时代:它从客户端的打开方式中选择其行为.
| 大纪元 | 订正 | 如何打开客户端 |
|---|---|---|
| 遗产 | 2024-11-05, (中文(简体) ), 2025-03-26, (中文(简体) ), 2025-06-18, (中文(简体) ), 2025-11-25 | initialize 握个手 |
| 现代 | 2026-07-28 | 按请求数 _meta没有握手 |
遗产谈判. initialize 用客户端要求的版本来回答。 当客户端要求修改此服务器不执行时,它用它所做的最新遗产修改——按照规格要求——来回答,所以从未告诉客户端降级到它没有要求的修订.
现代谈判. 每个请求都携带 io.modelcontextprotocol/protocolVersion 内 _meta。没有握手和降级:对不支持的修订版进行命名的请求被拒绝 -32022 以及要重试的版本列表。 省略所需内容的现代请求 io.modelcontextprotocol/clientCapabilities 拒绝使用 -326024. 现代成果 resultType: "complete"。 。 。 .
server/discover 已执行并提出报告 supportedVersions、能力和服务器身份.
# what the server supports
{"jsonrpc":"2.0","id":"d1","method":"server/discover","params":{"_meta":{
"io.modelcontextprotocol/protocolVersion":"2026-07-28",
"io.modelcontextprotocol/clientCapabilities":{}}}}
兼容性矩阵
| 客户端时代 | 服务器 | 结果 |
|---|---|---|
遗产initialize(中文(简体) ) | 此服务器 | 作品;根据要求或最新遗产修订得到答复 |
现代( U)_meta, (中文(简体) ), server/discover(中文(简体) ) | 此服务器 | 工程为 2026-07-28; 获取其他修改 -32022 带有重试列表 |
| 遗产 | 仅限现代服务器 | 将失败; 在此不适用, 此服务器是双时代 |
对他人写的客户端进行验证
其它练习此服务器的东西——包装的烟雾测试和测试 套房——用手说出JSON-RPC,这意味着它检查服务器与 同样的理解 写它的程序.
npm run mcp:client
驱动服务器 @modelcontextprotocol/sdk,参考文献
执行,作为一个真正的客户 超过stdio。 SDK 解析并验证每个
信息, 谈判修改本身, 并抛出任何不符合规格的东西.
它在CI中运行为 mcp against a real client。 。 。 .
23张支票: 握手和谈判修订、工具清单
里面有六个工具呼叫 对抗一个真正的存储器 compact编号 :full
大小合同,以及服务器拒绝的论点是
协议出错而不是失败的工具结果 .
它通过不同意写在《宪法》中的假设 确定了两件事
检查:无效 detail 值为 被拒绝,不作为工具出错返回 -
这是正确的行为,因为返回 isError 会告诉探员
电话在不运行时运行和失败 compact 是一个规模预算而不是
一个不同的问题,在放弃证据的同时保持同样的形状.
未核实,在每次检查中均注明. SDK的最新参考文献
修订版为 2025-11-25,所以没有第三方客户端能够锻炼现代
_meta ; 谈判帮助者经过单位测试,时代本身是
没有 上面列出的运输桌面客户端是应用程序——启动
一个在命令线检查之外 这些预设编码为:
每个客户端的已记录配置格式; 对照您自己的
在依赖它们之前安装.
在这里验证其他的: 遗产和现代会议 通过一个真正的 studio 进程, 输入错误、取消和超时.
取消和超时
notifications/cancelled 停止请求:响应被压制,被取消的请求从未被回答——包括随后的超时.
每个请求都以 requestTimeoutMs (违约120000, 0 / 禁用). 已过期的请求得到回复 -32603 财务报告和审定财务报表 data.timeoutMs,则任何后期结果都会被丢弃.
处理错误
错误使用JSON-RPC代码和规格保留范围内的MCP特定代码:
| 代码 | 含义 |
|---|---|
-32600 | 无效的请求- 无信件 method |
-32601 | 未找到方法 |
-32602 | 无效的参数 - 未知资源或即时, 参数验证失败, 需要缺失 _meta 字段 |
-32603 | 内部错误, 包括超过超时请求 |
-32021 | MissingRequiredClientCapabilityError |
-32022 | UnsupportedProtocolVersionError,与 data.supported |
-32002 (未找到资源,由更旧的订正保留)从未排放;未知资源报告 -32602。 。 。 .
运行但失败的工具是 没有 协议错误: 响应带有 isError: true 与人可读出的有效载荷,因此代理可以读取并按消息行事.
在发送前,对已公布的JSON Schema进行论证。 缺少所需的字段、错误的原始类型、无效的字段和未知属性会被拒绝 -32602 没有开始仓库分析.
资源
只读, 作为 MCP 资源曝光 :
agent://repository/contextagent://repository/architectureagent://repository/dependenciesagent://repository/conventionsagent://repository/decisions
提示
onboard_to_repositoryreview_change_impactexplain_architecture
工具
| 工具 | 必要的参数 |
|---|---|
get_repository_context | —— 说 |
get_context_for_task | task |
get_change_impact | target |
explain_module | path |
get_dependencies | —— 说 |
get_dependents | module |
search_context | query |
get_architecture | —— 说 |
get_conventions | —— 说 |
get_decisions | —— 说 |
get_module_history | target |
get_revision_diff | revision |
get_revision_snapshot | revision |
detect_coverage_gaps | —— 说 |
每个工具都接受一个选项 root。所有工具都被捆绑,并带有对热能值的信心和证据;见存储器 README.md 各为所归.
程序使用
import { McpServer, createMemoryTransport, SUPPORTED_PROTOCOL_VERSIONS } from '@ai-agent-context/mcp';
const transport = createMemoryTransport();
const server = new McpServer({ root: process.cwd(), transport, requestTimeoutMs: 30_000 });
server.start();
transport.push({ jsonrpc: '2.0', id: 1, method: 'server/discover', params: { _meta: {
'io.modelcontextprotocol/protocolVersion': '2026-07-28',
'io.modelcontextprotocol/clientCapabilities': {},
} } });
console.log(transport.sent);
为嵌入器导出 : McpServer, (中文(简体) ), createStdioTransport, (中文(简体) ), createMemoryTransport,则 CLIENT_PRESETS 设置为 presetById编号 :renderPreset编号 :renderAllPresets编号 :serverArgv,协议助手(SUPPORTED_PROTOCOL_VERSIONS, (中文(简体) ), ErrorCode, (中文(简体) ), negotiateLegacyVersion, (中文(简体) ), isSupportedVersion,(......), TOOL_DEFINITIONS, (中文(简体) ), callTool 财务报告和审定财务报表 ContextPool。 。 。 .
MCP_PROTOCOL_VERSION 是遗留的握手默认, 并被贬值为有利于 SUPPORTED_PROTOCOL_VERSIONS。 。 。 .
警卫
适配器继承了核心包的属性:
- 仅限本地: 没有外部 API 呼叫, 没有遥测
- 仓库范围d: 工具接受一个
root,核心拒绝它以外的路径 - 只读: 工具、资源和提示绝不修改寄存器
- 干净的 stdio 通道(JSON-RPC关于Studout,关于Stderr的诊断)
- 秘密过滤:敏感文件被核心跳过,而不是适配器跳过
见寄存器 SECURITY.md。 。 。 .
许可证
麻省理工学院