MCP治理系统

MCP-GOV是一个为Model Context Protocol (MCP)服务器提供权限控制和审计日志的安全层,适用于需要增强AI助手与MCP工具服务器之间安全性的场景。

  • by hamr0
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 amrhas82/mcp-gov

使用说明

███╗   ███╗  ██████╗ ██████╗     ██████╗  ██████╗ ██╗   ██╗
████╗ ████║ ██╔════╝ ██╔══██╗   ██╔════╝ ██╔═══██╗██║   ██║
██╔████╔██║ ██║      ██████╔╝   ██║  ███╗██║   ██║██║   ██║
██║╚██╔╝██║ ██║      ██╔═══╝    ██║   ██║██║   ██║╚██╗ ██╔╝
██║ ╚═╝ ██║ ╚██████╗ ██║        ╚██████╔╝╚██████╔╝ ╚████╔╝
╚═╝     ╚═╝  ╚═════╝ ╚═╝         ╚═════╝  ╚═════╝   ╚═══╝

MCP治理体系

模型上下文协议(MCP)服务器的权限控制和审计日志记录。

什么是MCP-GOV?

MCP-GOV在您的AI助手(Claude等)和MCP工具服务器之间添加了一个安全层。它

  • 控制权限 -阻止删除、执行、管理等危险操作
  • 记录所有内容 -所有带有时间戳的工具调用的审计跟踪
  • 工作透明 -无需对MCP服务器进行任何更改

安装

# Using npm
npm install -g mcp-gov

# Or run directly with npx
npx mcp-gov

用法

mcp-gov
███╗   ███╗  ██████╗ ██████╗     ██████╗  ██████╗ ██╗   ██╗
████╗ ████║ ██╔════╝ ██╔══██╗   ██╔════╝ ██╔═══██╗██║   ██║
██╔████╔██║ ██║      ██████╔╝   ██║  ███╗██║   ██║██║   ██║
██║╚██╔╝██║ ██║      ██╔═══╝    ██║   ██║██║   ██║╚██╗ ██╔╝
██║ ╚═╝ ██║ ╚██████╗ ██║        ╚██████╔╝╚██████╔╝ ╚████╔╝
╚═╝     ╚═╝  ╚═════╝ ╚═╝         ╚═════╝  ╚═════╝   ╚═══╝
                                                   v1.3.0

Select action:
  1) Wrap MCP servers
  2) Unwrap MCP servers
  3) View audit logs
  4) Edit rules
  5) Exit

Enter choice [1-5]:

运作原理

┌─────────────────────────────────────────────────────────────┐
│                     WITHOUT MCP-GOV                         │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│   Claude ──────────────────────────────► MCP Server         │
│           (all operations allowed)       (filesystem,       │
│                                           github, etc.)     │
│                                                             │
└─────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│                      WITH MCP-GOV                           │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│   Claude ────► mcp-gov-proxy ────► MCP Server               │
│                     │                                       │
│                     ├── Check rules.json                    │
│                     │   ├── read: ✅ allow                  │
│                     │   ├── write: ✅ allow                 │
│                     │   ├── delete: ❌ deny                 │
│                     │   └── admin: ❌ deny                  │
│                     │                                       │
│                     └── Log to audit.log                    │
│                                                             │
└─────────────────────────────────────────────────────────────┘

工作流程

1. Install         npm install -g mcp-gov
                            │
                            ▼
2. Run             mcp-gov
                            │
                            ▼
3. Select          1) Wrap MCP servers
                            │
                            ▼
4. Enter path      ~/.claude.json
                            │
                            ▼
5. Done!           ✓ Servers wrapped
                   ✓ Rules generated at ~/.mcp-gov/rules.json
                   ✓ Audit logs at ~/.mcp-gov/logs/

默认规则

规则在以下位置自动生成 ~/.mcp-gov/rules.json:

操作 默认值 示例
读 ✅ 允许 get、list、search、fetch
写 ✅ 允许 创建、更新、添加、保存
删除 ❌ 拒绝 删除、移除、丢弃、清除
执行 ❌ 拒绝 运行、执行、调用、触发
管理员 ❌ 拒绝 管理、配置、授予

文件

路径 描述
~/.mcp-gov/rules.json 治理规则
~/.mcp-gov/logs/*.log 按服务审核日志

规则格式

{
  "rules": [
    {
      "service": "github",
      "operations": ["delete"],
      "permission": "deny",
      "reason": "Block destructive operations"
    },
    {
      "service": "github",
      "operations": ["read", "write"],
      "permission": "allow"
    }
  ]
}

审核日志格式

[AUDIT] 2026-01-24T10:30:45.123Z | DENIED | tool=delete_repo | service=github | operation=delete | project=/home/user/myproject

CLI命令

建议使用交互式菜单,但您也可以直接使用命令:

# Wrap servers
mcp-gov-wrap --config ~/.claude.json

# Unwrap servers
mcp-gov-unwrap --config ~/.claude.json

# Low-level proxy (used internally)
mcp-gov-proxy --service github --target "npx server" --rules ~/.mcp-gov/rules.json

许可证

Apache-2.0--参见 许可证.