MCP防护工具

MCP防护工具是一个独立的HTTP服务器,用于扫描和验证提示和响应,防止凭证泄露,执行工具级RBAC,并阻止危险内容模式。

  • by ExpertVagabond
  • Rust
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 ExpertVagabond/mcp-guardrails-gateway

使用说明

mcp护栏

MCP工具调用护栏webhook 代理网关.扫描提示和响应以查找凭据泄漏,执行工具级RBAC,并阻止危险的内容模式。

专为 MCP_HACK//26 轨道2:保护和管理MCP。

它做什么

mcp-guardrails 作为与agentgateway集成的独立HTTP服务器运行 webhook护栏策略。当配置为护栏后端时,agentgateway会通过此服务器转发每个提示和响应,以便在到达MCP服务器或客户端之前进行验证。

凭证扫描 -在提示和响应中检测到15种以上的秘密模式(AWS密钥、GitHub令牌、Stripe密钥、JWT、私钥、Anthropic/OpenAI API密钥、Solana私钥等)。

工具级RBAC --MCP工具名称的allowlist/denylist。阻挡危险工具(shell_exec, rm_rf)或限制为已知的安全设置。

否认模式 --阻止包含SQL注入模式、危险shell命令或自定义字符串的内容。

结构化审计日志记录 --JSON格式的日志,对每个决策(通过/拒绝)进行跟踪,以确保合规性和调试。

快速开始

cargo build --release

# Run with default policy
./target/release/mcp-guardrails --policy policy.yaml --bind 0.0.0.0:8090

代理网关集成

将webhook护栏策略添加到您的agentgateway配置中:

apiVersion: gateway.agentgateway.dev/v1
kind: LLMRoute
metadata:
  name: my-route
spec:
  rules:
    - backendRefs:
        - name: my-llm
      guardrails:
        - webhook:
            url: http://mcp-guardrails:8090

服务器公开了两个与agentgateway webhook协议匹配的端点:

  • POST /request --在提示到达LLM/MCP服务器之前对其进行验证
  • POST /response --在响应到达客户端之前对其进行验证
  • GET /health --健康检查

策略配置

编辑 policy.yaml:

# Only allow these tools (empty = allow all)
allowed_tools:
  - read_file
  - search
  - list_directory

# Always block these tools
denied_tools:
  - shell_exec
  - delete_all

# Block content matching these patterns
deny_patterns:
  - "DROP TABLE"
  - "sudo rm -rf /"

# Scan for credential patterns
credential_scanning: true

测试

cargo test
# 12 tests: policy RBAC (4) + credential scanner (8)

建筑

Client → agentgateway → mcp-guardrails (webhook) → agentgateway → MCP Server
              ↓                                          ↑
         forwards prompt                          forwards if passed
         to /request                              blocks if rejected

护栏服务器是无状态的,可横向扩展。在负载平衡器后部署多个副本,以实现高吞吐量MCP部署。

许可证

阿帕奇-2.0