AgentOx 的
代理工具安全平台(MCP+A2A+OpenAI Tool_use)——铁锈锻造
 
AgentOx是一个开源CLI工具,用于审计跨平台的代理工具服务器 MCP(模型上下文协议)A2A和OpenAI工具使用兼容性路径——在任何服务器投入生产之前检查一致性、安全表面和行为契约。
______________________________________________________________________
安装
cargo install agentox-cli或者从源代码构建:
git clone https://github.com/CarlosLadd/AgentOx.git
cd AgentOx
cargo install --path crates/agentox-cli______________________________________________________________________
快速开始
# Audit any MCP server via stdio
agentox audit --stdio "npx -y @modelcontextprotocol/server-filesystem /tmp"
# Output structured JSON for CI pipelines
agentox audit --stdio "npx -y @modelcontextprotocol/server-filesystem /tmp" --format json
# Run only security checks
agentox audit --stdio "npx -y @modelcontextprotocol/server-filesystem /tmp" --only security
# Audit an HTTP/SSE endpoint
agentox audit --target "http://localhost:8080"
# Select protocol adapter explicitly
agentox audit --target "http://localhost:8080" --protocol a2a
# Enforce policy-as-code and baseline regression guard
agentox audit --stdio "npx -y @modelcontextprotocol/server-filesystem /tmp" \
--policy agentox-policy.yaml --baseline previous-report.json______________________________________________________________________
输出示例
AgentOx Audit Report
Target: npx -y @modelcontextprotocol/server-filesystem /tmp
Server: filesystem v0.6.2
Protocol: 2025-11-25
[PASS] CONF-001 Initialize returns valid capabilities
[PASS] CONF-002 JSON-RPC 2.0 message structure
[PASS] CONF-003 tools/list returns valid tools
[PASS] CONF-004 Tool inputSchema is valid JSON Schema
[PASS] CONF-005 Malformed request handling
[PASS] CONF-006 Unknown method handling
[PASS] CONF-007 Error code correctness
[PASS] CONF-008 Capability negotiation
[PASS] CONF-009 Protocol version validation
[PASS] CONF-010 Initialized notification handling
[PASS] SEC-001 Prompt-injection echo safety
[PASS] SEC-002 Tool parameter boundary validation
[PASS] SEC-003 Error leakage detection
[PASS] SEC-004 Resource-exhaustion guardrail
Summary
Total: 17, Passed: 17, Failed: 0
Duration: 342ms______________________________________________________________________
一致性检查(v1.0.0)
| ID | 检查 | 失败严重性 |
|---|---|---|
| CONF-001 | initialize 返回有效 protocolVersion, capabilities, serverInfo | 关键 |
| CONF-002 | 所有响应都是有效的JSON-RPC 2.0 | 高 |
| CONF-003 | tools/list 返回有效的工具定义,没有重复项 | 高 |
| CONF-004 | 工具 inputSchema 是有效的JSON架构 type: "object" | 高 |
| CONF-005 | 格式错误的请求返回错误,服务器不会崩溃 | 严重 |
| CONF-006 | 返回未知方法 -32601 | 高 |
| CONF-007 | 错误代码使用标准JSON-RPC值 | 中等 |
| CONF-008 | 声明的功能与支持的方法匹配 | 中等 |
| CONF-009 | 协议版本协商处理正确 | 高 |
| CONF-010 | 初始化生命周期处理正确 | 低 |
安全检查(v1.0.0)
| ID | 检查 | 失败严重性 |
|---|---|---|
| SEC-001 | 安全处理快速注射式工具输入 | 高 |
| SEC-002 | tools/call 参数边界验证 | 高 |
| SEC-003 | 错误消息不会泄漏敏感内部 | 中等 |
| SEC-004 | 有界突发/大输入弹性 | 中等 |
行为检查(v1.0.0)
| ID | 检查 | 失败严重性 |
|---|---|---|
| BHV-001 | 工具/列表幂等性基线 | 中等 |
| BHV-002 | 声明输出模式与实际工具/调用输出 | 高 |
| BHV-003 | 确定性错误请求语义 | 中等 |
______________________________________________________________________
CI/CD集成
AgentOx以代码退出 1 当检测到发现时 0 当所有检查都通过时,使其非常适合CI管道。
稳定合约(v1.0.0)
从v1.0.0开始,以下接口是semver稳定的:
- CLI命令和标志行为(
agentox audit,--stdio|--target,--format,--only,--timeout,退出语义) - 由发出的JSON报告契约
--format json(包括schema_version: "1.0")
agentox-core 内部Rust API尚未完全冻结。 HTML报告生成有意超出v1.0.0的范围。
供应商中立方向
AgentOx被定位为代理工具系统的协议中立安全层:
- 跨协议适配器共享安全和行为检查
- CI/CD的策略即代码决策(
--policy) - JSON输出中的可移植证据签名,用于下游验证
GitHub 操作
- name: Audit tool server
run: |
cargo install agentox-cli
agentox audit --stdio "npx -y @modelcontextprotocol/server-filesystem /tmp" \
--format json --no-color | tee audit-report.json
- name: Upload audit report
uses: actions/upload-artifact@v4
with:
name: agentox-report
path: audit-report.json外壳脚本
agentox audit --stdio "npx my-mcp-server" || {
echo "Tool server failed audit — blocking deploy"
exit 1
}______________________________________________________________________
路线图
| 版本 | 焦点 | 状态 |
|---|---|---|
| v0.1 | 协议一致性(10次检查,stdio传输) | ✅ 完成 |
| v0.2 | 安全面分析(初始 SEC-* 套房、标准传输) | ✅ 完成 |
| v0.3 | HTTP/SSE传输+CI/CD强化 | ✅ 完成 |
| v0.4 | 行为合约+HTTP/SSE传输 | ✅ 完成 |
| v1.0 | 稳定的CLI/JSON API+HTTP/SSE传输GA(基本) | ✅ 完成 |
| v1.0.1 | 可靠性补丁(运输/检查硬化、诊断) | 📋 计划中 |
| v1.0.2 | DX补丁(--quiet, --output,性能/文档) | 📋 计划中 |
| v1.1 | 平台核心提取(协议适配器层+规范模型) | 📋 计划中 |
| v1.2 | 政策/证据护城河(--policy、基线回归、有符号的证据) | 📋 计划中 |
| v1.3 | A2A适配器GA+协议能力矩阵 | 📋 计划中 |
| v1.4 | OpenAI工具_使用适配器GA+跨协议奇偶校验 | 📋 计划中 |
| v2.0 | 仅保留用于合理的中断更改 | ⏳ 基于标准 |
详细发布列车计划: ROADMAP.md
______________________________________________________________________
建筑
AgentOx是一个Cargo工作区,具有干净的库/CLI分离:
crates/
├── agentox-core/ # Core audit engine (embeddable library)
│ ├── client/ # Transports + adapter-backed sessions
│ ├── checks/ # Audit checks (conformance, security, behavioral)
│ ├── platform/ # Protocol adapters + canonical tool model
│ ├── policy/ # Policy-as-code + baseline regression evaluation
│ ├── protocol/ # JSON-RPC 2.0 + MCP 2025-11-25 types
│ └── report/ # Text + JSON report renderers
└── agentox-cli/ # Thin CLI wrapper (main.rs + clap)关键设计原则: AgentOx使用自己的JSON-RPC类型(不是外部MCP SDK),因此它可以故意发送格式错误的消息来测试服务器的健壮性——行为良好的SDK会拒绝客户端。
______________________________________________________________________
为什么是Rust?
- 单个二进制 —
cargo install agentox-cli,零运行时,在任何CI管道中运行 - 内存安全 --用不安全语言构建的审计工具具有讽刺意味
- 速度 --模糊测试每秒数百个变量;Python工具太慢了
- “Ox”品牌 --试剂+氧化剂。名字和语言密不可分
______________________________________________________________________
贡献
欢迎投稿!看 贡献.md 作为指导方针。
要添加新检查,请执行以下操作:
- 创建
crates/agentox-core/src/checks/conformance/my_check.rs - 实施
Check特质 - 在中注册
CheckRunner::register_conformance_checks() - 在同一文件中添加单元测试
______________________________________________________________________
许可证
根据以下任一方式获得许可:
- MIT许可证(许可证-麻省理工学院)
- Apache许可证,版本2.0(特许通行证)
由您选择。
