代理工具安全审计工具

AgentOx是一个开源CLI工具,用于审计代理工具服务器,检查MCP、A2A和OpenAI tool_use的兼容性、安全性和行为合约。

  • by CarlosLadd
  • Rust
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 CarlosLadd/AgentOx

使用说明

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 作为指导方针。

要添加新检查,请执行以下操作:

  1. 创建 crates/agentox-core/src/checks/conformance/my_check.rs
  2. 实施 Check 特质
  3. 在中注册 CheckRunner::register_conformance_checks()
  4. 在同一文件中添加单元测试

许可证

根据以下任一方式获得许可:

由您选择。