使用说明
安全MCP网关
一个安全第一的模型上下文协议(MCP)网关,用于人工智能驱动的自主操作、SRE和支持代理。
什么是MCP?
这 模型上下文协议(MCP) 是一个开放标准,使人工智能应用程序能够安全地与外部数据源和工具连接。它为AI代理与数据库、API和开发工具等服务交互提供了一种统一的方式。
为什么选择安全网关?
虽然MCP支持强大的集成,但让AI代理直接访问生产基础设施会带来重大风险:
- 不受控制的写入:代理可能会意外删除资源、关闭关键事件或损坏数据
- 权限提升:如果没有适当的控制,代理人可能会采取超出其预期范围的行动
- 审计差距:直接访问使得很难跟踪代理做了什么以及为什么这样做
- 合规风险:监管要求通常要求对某些操作进行人工监督
安全MCP网关 通过提供以下内容来解决这些问题:
- 基于策略的访问控制:定义允许、拒绝或需要批准的操作规则
- 人在环审批:高风险操作在执行前暂停进行人工审查
- 全面的审计日志记录:记录每个工具调用和策略决策,以进行合规性和调试
- 与现有MCP生态系统安全集成:适用于以下目录 PulseMCP 和 很棒的mcp服务器,添加安全性而不替换它们
这是一个 参考架构 适用于在生产环境中部署自主操作代理的企业。
架构概述
┌─────────────────────────────────────────────────────────────────┐
│ AI Agents / Claude Desktop / Custom Clients │
└────────────────────────┬────────────────────────────────────────┘
│
▼
┌───────────────────────────────┐
│ Secure-MCP-Gateway │
│ ┌─────────────────────────┐ │
│ │ Policy Engine │ │ ← Evaluate: allow/deny/review
│ │ - Config-driven rules │ │
│ │ - Severity matching │ │
│ └─────────────────────────┘ │
│ │
│ ┌─────────────────────────┐ │
│ │ Approval Manager │ │ ← Human-in-the-loop
│ │ - Pending approvals │ │
│ │ - Token management │ │
│ └─────────────────────────┘ │
│ │
│ ┌─────────────────────────┐ │
│ │ Audit Logger │ │ ← Log everything
│ │ - JSON structured logs │ │
│ │ - File + console │ │
│ └─────────────────────────┘ │
└────────────┬──────────────────┘
│
┌────────────┼────────────┐
▼ ▼ ▼
┌────────┐ ┌─────────┐ ┌──────────┐
│ Jira │ │ K8s │ │ Splunk │ ... (MCP Servers)
│ MCP │ │ MCP │ │ MCP │
└────────┘ └─────────┘ └──────────┘
│ │ │
▼ ▼ ▼
┌────────────────────────────────────┐
│ Production Infrastructure │
│ - Jira / PagerDuty │
│ - Kubernetes / Cloud APIs │
│ - Observability (Splunk, Datadog) │
└────────────────────────────────────┘
数据流:
- 代理呼叫工具 → 网关接收请求
- 政策评估 → 根据配置的规则进行匹配(允许/拒绝/审核)
- 审核日志 → 记录决定
- 如果允许 → 立即执行并记录结果
- 如果否认 → 拒绝并返回错误
- 如果审查 → 创建批准令牌,暂停执行,等待人工决策
- 人类认可 → 执行工具调用并记录结果
- 人类否认 → 拒绝并记录拒绝
快速入门
先决条件
- Node.js 18+
- pnpm 8+
安装
# Clone the repository
git clone https://github.com/nik-kale/Secure-MCP-Gateway.git
cd Secure-MCP-Gateway
# Install dependencies
pnpm install
# Build all packages
pnpm build
运行本地操作演示服务器
这 mcp-local-ops 服务器模拟事件管理操作,非常适合在没有外部依赖的情况下测试网关。
# Run the local ops server
node packages/mcp-local-ops/dist/server.js
此服务器提供以下工具:
list_services(SAFE)-列出所有服务及其状态get_service(SAFE)-获取特定服务的详细信息simulate_incident(中等)-模拟事件(需要批准)scale_service(中等)-扩展服务(需要批准)restart_service(高)-重新启动服务(需要批准)
与Claude Desktop一起使用
将此添加到您的Claude Desktop MCP设置中(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):
{
"mcpServers": {
"local-ops": {
"command": "node",
"args": ["/path/to/Secure-MCP-Gateway/packages/mcp-local-ops/dist/server.js"]
}
}
}
示例:政策在行动
当你尝试 安全读取操作:
Tool: list_services
Policy Decision: ALLOW (safe read-only operation)
Execution: Immediate
Audit: Logged to console/file
当你尝试 中等风险作业:
Tool: scale_service (replicas=10)
Policy Decision: REVIEW (medium-risk operation requires approval)
Execution: Paused
Response: { approvalToken: "abc-123-def", message: "Awaiting approval..." }
然后,人工操作员可以批准或拒绝:
gateway.grantApprovalAndExecute(approvalToken, approver, executor);
// OR
gateway.denyApproval(approvalToken, denier);
包裹
1. @secure-mcp-gateway/core
具有策略评估、审计日志和审批流的核心安全引擎。
主要出口:
SecureMCPGateway-主编排器PolicyEngine-基于规则的政策评估AuditLogger-结构化日志记录ApprovalManager-人在循环中流动
2. @secure-mcp-gateway/mcp-local-ops
用于事故模拟的MCP服务器演示。自给自足,可安全测试。
3. @secure-mcp-gateway/mcp-jira-ops
Jira集成了读取操作(搜索、获取问题)和需要批准的写入操作(添加注释、转换问题)。
配置:
export JIRA_URL=https://yourcompany.atlassian.net
export JIRA_EMAIL=your-email@company.com
export JIRA_TOKEN=your-api-token
4. @secure-mcp-gateway/mcp-pulsemcp-discovery
查询外部MCP目录(PulseMCP,很棒的MCP服务器)以查找与运维相关的MCP服务器的发现工具。
例子:
// Discover all ops-related servers
const servers = await discoveryClient.discoverOpsServers();
// Filter by tags
const k8sServers = await discoveryClient.discoverAll(['kubernetes', 'cloud']);
此包演示了 安全MCP网关与现有MCP目录集成并使用现有MCP目录 而不是与他们竞争。
与MCP目录集成
安全MCP网关设计用于工作 旁边 现有MCP生态系统:
我们提供 mcp-pulsemcp-discovery 作为从这些目录中发现和过滤服务器的参考。然后,网关在这些服务器上添加安全策略和审批工作流。
我们不会替换这些目录。我们使它们在生产中更安全地用于自主代理。
这如何融入自主操作堆栈
安全MCP网关是人工智能驱动的SRE和支持系统的基础组件:
┌─────────────────────────────────────────────────────────────┐
│ AutoRCA-Core (ADAPT-RCA) │
│ Graph-based root cause analysis engine │
└────────────────┬────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Ops-Agent-Desktop │
│ Visual mission control for autonomous ops agents │
└────────────────┬────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Secure-MCP-Gateway ◄── YOU ARE HERE │
│ Security-first access to production tools │
└────────────────┬────────────────────────────────────────────┘
│
┌──────────┼──────────┐
▼ ▼ ▼
Jira Kubernetes Splunk ... (via MCP servers)
- AutoRCA核心 执行根本原因分析并建议补救措施
- Ops代理桌面 协调任务并显示实时进度
- 安全MCP网关 确保代理只能在真实的基础设施上执行批准的操作
- MCP服务器 (Jira、K8s、Splunk等)提供实际的集成
这些元素共同构成了一个参考堆栈 自主可靠性工程.
安全和安保注意事项
- 最小特权:默认策略要求对安全读取之外的任何内容进行审查
- 纵深防御:多层:策略引擎、审批流、审计跟踪
- 故障保护:如果政策评估失败,默认情况是拒绝或要求审查
- 审计一切:记录所有决策、批准和执行
- 限时审批:批准令牌在可配置的TTL后过期
- 没有硬编码的秘密:凭据来自环境变量
看 安全模块.md 了解全部细节。
策略配置示例
{
"rules": [
{
"id": "deny-critical-delete",
"match": { "action": "delete_*", "minSeverity": "critical" },
"effect": "deny"
},
{
"id": "review-high-risk",
"match": { "minSeverity": "high" },
"effect": "review"
},
{
"id": "allow-safe-reads",
"match": { "minSeverity": "safe" },
"effect": "allow"
}
],
"defaultEffect": "review"
}
看 examples/policy-config.json 举一个完整的例子。
路线图
- []用于审批UI的HTTP API(与Slack、Teams、Ops-Agent-Desktop集成)
- []支持外部政策引擎(OPA、Cedar)
- []为Kubernetes、Prometheus、Datadog预构建的MCP服务器
- []与AutoRCA Core集成,实现自动RCA+修复
- []具有团队/用户权限的细粒度RBAC
- []审批请求的Webhook通知
贡献
欢迎投稿!该项目旨在成为安全自主操作的参考架构。
请打开问题以查找错误、功能请求或问题。
许可证
麻省理工学院
相关项目
- AutoRCA核心 -代理根本原因分析引擎
- Ops代理桌面 -作战人员的视觉任务控制
- 出色的自主行动 -自主运营工具精选列表
- 模型上下文协议 -MCP官方规范
- PulseMCP -生产MCP服务器目录
- 很棒的mcp服务器 -社区MCP服务器列表
建造于 尼克·卡莱 作为自主运营和人工智能驱动的可靠性生态系统的一部分。
