Token导航 LogoToken导航TokenDH.com
Secure MCP Code Gateway logo
运维云端未说明官方级别未说明来源级核验

Secure MCP Code Gateway

MCP Server

一个基于GitOps的验证模式,用于在Red Hat OpenShift上部署安全的企业级MCP基础设施,提供统一认证、基于角色的访问控制和全面审计日志。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
PythonClaude云端部署Claude DesktopClaudeCursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

gaurav-nelson

提供方

gaurav-nelson

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

安全MCP代码网关模式

![License](https://opensource.org/licenses/Apache-2.0)

基于GitOps的验证模式,用于在Red Hat OpenShift上部署安全的企业级MCP基础设施。此模式为多个MCP(模型上下文协议)服务器提供了一个集中式网关,具有统一的身份验证、基于角色的访问控制(RBAC)和全面的审计日志。

灵感

该模式实现了Anthropic的 使用MCP执行代码:构建更高效的代理 博客文章。

关键的见解是:AI代理可以通过AI的上下文窗口传递大型数据集(消耗数十万个令牌) 编写在安全沙箱中执行的代码.沙盒内工具之间的数据流,只有最终结果返回给AI——实现 90-99%的代币节省 数据密集型操作。

此模式通过添加以下内容将这一概念扩展到企业环境:

  • GitOps管理工具 -安全团队通过pull请求批准工具
  • OAuth 2.1身份验证 -通过Keycloak实现集中身份
  • 多租户沙盒 -OpenShift上的独立执行环境
  • 持续状态和技能 -AI代理可以保存检查点和可重用的代码模式
  • 渐进式工具发现 -作为可浏览文件公开的工具,用于按需加载

什么是MCP?

模型上下文协议(MCP)是一个开放标准,它使AI助手(如Cursor、Claude Desktop或自定义代理)能够连接到外部工具和数据源。MCP服务器公开了AI可以调用以执行操作的工具——查询数据库、分析日志、调用API或处理文件。

挑战:企业MCP部署

随着企业大规模部署MCP服务器,出现了三个关键挑战:

  1. 安全和合规差距 -传统的MCP实施缺乏企业安全控制:

- 无集中式身份验证 -每个MCP服务器都管理自己的身份验证,从而造成不一致的安全态势 - 无审计追踪 -没有统一的日志记录谁访问了哪些工具、何时以及处理了哪些数据 - 无RBAC -用户可以访问所有工具,也可以不访问任何工具;没有细粒度的基于角色的权限 - 数据暴露风险 -敏感数据通过外部人工智能服务流动,不受任何控制 - 合规失败 -SOC 2、HIPAA和PCI-DSS需要传统MCP无法提供的审计日志和访问控制

  1. 操作复杂性 -管理数十台独立的MCP服务器意味着:

- 多个端点用于保护和监控 - 日志记录格式不一致 - 操作时没有单块玻璃 - 在没有集中可见性的情况下难以应对事件

  1. 成本和性能 -没有优化:

- 预先加载数百个工具模式会消耗大量令牌(每个工具定义200-500个令牌) - 流经LLM的中间结果可能会为单个请求消耗200000多个令牌 - 大型数据集必须通过人工智能上下文窗口,从而增加成本

示例一家部署了20个MCP工具的金融服务公司面临着20个独立的身份验证系统,监管机构没有统一的审计日志,也无法同时撤销受损用户对所有工具的访问。

此模式的解决方案:安全MCP网关

此模式实现了 企业MCP网关 它位于AI客户端和MCP工具服务器之间:

  • 集中身份验证 -单个密钥斗篷实例为所有工具提供OAuth 2.1和API密钥验证
  • 完成审计日志记录 -每个MCP请求都记录了用户身份、调用的工具和时间戳
  • 基于角色的访问控制 -用户只能看到其角色允许的工具
  • 合规性就绪 -针对SOC 2、HIPAA和监管要求的内置审计跟踪
  • 隔离沙盒 -工具在OpenShift上的安全、隔离环境中运行
  • 渐进式工具发现 -Gateway仅公开基于用户角色的相关工具,从而减少令牌开销
  • 高效的数据处理 -沙盒内工具之间的结果流;只有最终结果返回给AI

结果:部署具有企业安全性、统一治理和数据密集型运营成本降低90%以上的MCP工具。

快速开始

# 1. Deploy the pattern
./pattern.sh make install

# 2. Create an API key (recommended)
./scripts/create-api-key.sh alice mcp-log-analyst never

# 3. Add to your AI (.your AI/mcp.json)
{
  "mcpServers": {
    "secure-mcp-gateway": {
      "url": "https://your-gateway-url",
      "transport": {
        "type": "http",
        "headers": {
          "Authorization": "Bearer "
        }
      }
    }
  }
}

# 4. Ask Your AI
"Use log_store to find all errors from the last hour"

部署指南 详细说明。

建筑

此模式使用 具有隔离沙盒的多租户网关 -一种为大规模上下文效率和安全性而设计的架构。

┌────────────────────────────────────────────────────────┐
│                    Shared Infrastructure               │
│  ┌─────────────┐              ┌──────────────────────┐ │
│  │  Keycloak   │              │ OpenShift Logging    │ │
│  │   (SSO)     │              │      (Loki)          │ │
│  └─────────────┘              └──────────────────────┘ │
└────────────────────────────────────────────────────────┘
           │
           ▼
┌─────────────────────────────────────────────────────────┐
│          Multi-Tenant MCP Gateway                       │
│  • Authenticates users (API keys, OAuth, demo token)    │
│  • Loads tool schemas on-demand (not all upfront)       │
│  • Routes requests to appropriate sandboxes             │
│  • Enforces RBAC (users see only authorized tools)      │
└─────────────────────────────────────────────────────────┘
           │
           ├─────────────────┬──────────────────┬
           ▼                 ▼                  ▼
   ┌──────────────┐  ┌──────────────┐  ┌──────────────┐
   │  Sandbox:    │  │  Sandbox:    │  │  Sandbox:    │
   │ Log Analysis │  │   Custom     │  │  YOUR-SERVER │
   │              │  │   Tools      │  │              │
   │  Tools:      │  │  Tools:      │  │  Tools:      │
   │ log_store.py │  │ your-api.py  │  │ ...          │
   │ privacy.py   │  │ ...          │  │              │
   │              │  │              │  │              │
   │ Data flows   │  │ Data flows   │  │ Data flows   │
   │ between      │  │ between      │  │ between      │
   │ tools here   │  │ tools here   │  │ tools here   │
   │ (not via AI) │  │ (not via AI) │  │ (not via AI) │
   └──────────────┘  └──────────────┘  └──────────────┘

为什么是这种架构?

问题:传统的MCP实现将所有工具定义预先加载到AI的上下文窗口中,所有数据在工具调用之间通过AI流动。使用1000个工具,这意味着在处理第一个请求之前消耗了200000多个令牌。

解决方案:这一模式将关切分开:

  1. 网关处理发现 -仅返回基于用户请求和角色的相关工具定义
  2. 沙盒处理执行 -工具直接相互调用;沙盒内的数据流
  3. AI协调,不运输 -AI决定做什么,沙盒做这项工作

示例:过滤10000行电子表格,然后上传到CRM:

  • 传统:将10000行加载到AI上下文中→ AI过滤器→ AI上传(40万代币)
  • 这种模式:沙盒在内部过滤行→ 返回“已更新247条记录”(50个令牌)

该架构提供 98%+代币节省 数据密集型工作流程。

此模式提供了什么

1.生产就绪MCP网关

  • 完整的JSON-RPC 2.0协议实现
  • 与您的AI IDE和其他MCP客户端开箱即用
  • 高可用性(多个副本)
  • 健康检查和监测

2.集中认证

  • OAuth 2.1的密钥斗篷(Red Hat SSO)
  • 用于自动化的API密钥(永不过期)
  • 用于开发的演示令牌
  • 跨所有工具集的单点登录

3.基于角色的访问控制(RBAC)

  • 用户只能看到他们有权使用的工具
  • 在Keycloak中定义角色(mcp-admin, mcp-log-analyst等等)
  • 将角色映射到工具集
  • 在运行时强制访问

4.完成审计跟踪

  • 每个请求都记录了用户身份
  • 结构化JSON日志
  • OpenShift日志集成(Loki+Grafana)
  • OpenShift控制台中的查询日志

5.安全与隔离

  • 工具在隔离的沙盒中运行
  • 非根容器,丢弃功能
  • 网络策略限制流量
  • 只读根文件系统
  • GitOps管理工具(通过PR进行安全审查)

6.示例工具集

  • 日志分析沙盒 使用工具:

- log_store -高效搜索和分析日志 - privacy -从文本中清除PII

7.可扩展架构

  • 克隆沙盒图表以添加自己的工具集
  • 所有工具集共享相同的网关和身份验证
  • 无需部署新的网关

设计哲学:效率源于设计

此模式实现了几个最大化效率的架构模式:

渐进式工具发现

网关不是预先加载所有工具定义,而是基于以下内容公开工具:

  • 用户角色 -用户只能看到他们有权访问的工具
  • 请求上下文 -仅提供相关工具集
  • 按需加载 -工具模式在需要时加载,而不是在启动时加载

影响:一个拥有50个工具集(总共500个工具)的组织只能向每个用户提供5-10个相关工具,从而将初始化开销减少90%。

数据本地化和处理

工具在沙盒中执行,数据可以直接在操作之间流动:

# All processing happens in sandbox - data never enters AI context
logs = log_store.query(service="api", level="ERROR", hours=24)
filtered = [log for log in logs if "timeout" in log.message]
summary = privacy.scrub_pii(filtered[:10])
return summary  # Only this small summary goes to AI

益处:

  • 无上下文限制地处理大型数据集
  • 无令牌开销的链操作
  • 在返回结果之前进行过滤和转换
  • 处理不应到达外部人工智能服务的敏感数据

隐私保护架构

默认情况下,敏感数据保留在沙盒中:

  • 沙盒到沙盒通信 -工具内部的数据流
  • 可配置的结果过滤 -返回摘要,而非原始数据
  • 无风险审计 -不记录数据的日志操作
  • 合规友好 -将PII/PHI保留在您的基础架构中

示例:处理50000名患者的医疗数据集以找到治疗模式。沙盒在本地进行分析,只返回聚合统计数据——单个记录永远不会进入人工智能上下文。

国家管理和组成

沙盒可以跨操作维护状态,实现复杂的工作流:

# First request: Start processing
dataset = large_data_source.fetch()  # 10GB dataset
progress = process_batch(dataset, batch_size=1000)
save_checkpoint(progress)
return "Processed 1,000 records, checkpoint saved"

# Follow-up request: Continue from checkpoint
progress = load_checkpoint()
result = process_remaining(progress)
return final_summary(result)

这允许代理处理超过单个请求限制的长时间运行的任务。

用例

  • IT运维:日志分析、基础设施自动化、事件响应
  • 数据科学:数据处理、模型训练、特征工程
  • 安全:威胁分析、合规性检查、漏洞扫描
  • 发展:代码审查、测试生成、文档编制

主要特点

特点优点
沙盒执行隔离环境中的数据处理-节省90-99%的令牌
渐进式工具加载只加载相关工具,而不是全部预先加载-更快的初始化
直接数据流沙盒中工具之间的结果流,而不是通过AI上下文
多租户网关一个网关服务于所有工具集-部署更简单
集中式身份验证所有MCP服务器的一个Keycloak实例
基于角色的工具访问用户只看到授权工具-减少上下文开销
GitOps治理所有工具均通过Git管理,并获得PR批准
隐私保护敏感数据留在沙箱中,永远不会进入人工智能环境
审计日志完整的线索:谁做了什么,什么时候做的
OpenShift本机使用运算符、路由、日志记录、安全上下文
API关键支持永不过期的长期代币(可选)

文档

入门指南

配置

验证与测试

运营

扩展模式

额外资源

先决条件

  • 红帽OpenShift容器平台4.10+
  • 群集管理员访问权限
  • oc CLI和 podman (4.3.0+)
  • 容器注册表(用于自定义映像)

添加自己的工具集

多租户架构使其变得简单:

# 1. Create your tools
mkdir -p tools/database
cat > tools/database/postgres.py 

# Rotate API key
./scripts/rotate-api-key.sh 

# Test API keys
./scripts/test-api-keys.sh

API密钥:

  • 永不过期(或可配置过期)
  • 无需刷新
  • 易于旋转
  • 每个用户的身份和角色

支持

许可证

Apache许可证2.0-请参阅 许可证 了解详情。

贡献

这是一个经过验证的模式 沙箱层。欢迎社区捐款!

  • 通过GitHub报告问题
  • 提交新功能的拉取请求
  • 分享您的工具集和用例
  • 改进文档

图案状态

等级:沙箱 状态:积极发展 OpenShift版本: 4.10+ 最后更新:2025年12月

目录标签

目录标签

PythonClaude云端部署企业级MCP网关本地部署GitOps部署安全沙箱多租户架构AI工具集成

支持客户端

Claude DesktopClaudeCursor

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

oauth

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明oauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP