Skip to content

About

Transparent stdio proxy for MCP servers — fail-closed agent runtime interception: denies, verifier errors and timeouts are never forwarded. Ed25519 receipts. Agent 运行时全栈拦截.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Agent Runtime Proxy · Agent 运行时拦截代理

npm version

在 MCP 服务器前面站一道独立的保安:不相信宿主里的任何插件,危险调用一律不放行。

宿主内的插件有加载顺序问题——一个恶意或先注册的插件,可能赶在安全检查之前动手。agent-runtime-proxy 是一条透明 stdio 代理,包住目标 MCP server,在进程外、网络边界独立拦截:

MCP Client  ←stdio→  agent-runtime-proxy  ←stdio→  目标 MCP Server
                         (只拦 tools/call)

对客户端而言,它就是一个普通 MCP server;initialize / tools/list / ping 及所有 notification 双向透传,只有 tools/call 被拦截并先做运行时验证。

  • ✅ fail-closed:判为危险、验证器出错/不可用、超时——都不转发,返回 MCP isError + 签名拒付收据
  • ✅ 放行才转发,结果在 result._meta.ccs 附带 Ed25519 双收据,不动 MCP content 协议
  • ✅ 两模式:enforce(默认真拦)/ shadow(全转发,仅标记观测到的拦截,用于灰度)
  • ✅ 零依赖,纯 Node.js 标准库(Node ≥ 18)

⚡ 使用

# 全局安装
npm install -g agent-runtime-proxy

把客户端的 MCP server 启动命令包在代理后面:

agent-runtime-proxy -- <原 MCP server 启动命令>

例如包住一个本地 server:

{
  "mcpServers": {
    "my-tool-guarded": {
      "command": "agent-runtime-proxy",
      "args": ["--", "node", "/path/to/original-server.js"]
    }
  }
}

验证器从哪来

代理在拦截时需要一个运行时验证器,按以下顺序自动发现:

  1. --verifier-module / CCS_VERIFIER_MODULE 指定的模块
  2. require("agent-runtime-guard")(推荐,与本代理配套)
  3. 旧包 ccs-mcp-server 兜底
  4. 相邻项目 ccs-mcp-server-m8ven-fix/src(开发环境)

自定义模块需导出 verifyCall(call, policy)。找不到验证器时默认 fail-closed,不转发。

选项

选项 / 环境变量 作用
--mode enforce|shadow / CCS_MODE 拦截模式,默认 enforce
--caller-id <id> / CCS_CALLER_ID 合成的调用方身份
--verifier-module <path> / CCS_VERIFIER_MODULE 显式指定验证器模块
--timeout <ms> / CCS_VERIFY_TIMEOUT_MS 验证预算,超时 fail-closed

边界(如实说明)

  • 仅 stdio 传输,SSE / streamable-HTTP 暂不支持
  • 调用方身份是合成的(MCP 协议本身无可认证身份),Identity 维度要硬需上游提供已核验身份
  • 签名密钥的固定/轮换/HSM 待部署方案落实;自动生成密钥仅限开发

Links

License

Elastic License 2.0 (ELv2). See LICENSE.

About

Transparent stdio proxy for MCP servers — fail-closed agent runtime interception: denies, verifier errors and timeouts are never forwarded. Ed25519 receipts. Agent 运行时全栈拦截.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages