Enkrypt Secure MCP Gateway

使用说明(简明版本,便于快速上手)

  • 项目简介 Enkrypt Secure MCP Gateway 是一个中间件后端,位于 MCP 客户端和 MCP 服务器之间。它作为 MCP 客户端对接真实 MCP 服务器,同时对 MCP 客户端暴露 MCP 服务。网关提供资源(Resources)管理、工具(Tools)注册与执行、以及 Prompt 模板的渲染与渲染模式定义等能力,并通过 JSON-RPC 与客户端通信。核心特性包括身份认证、自动工具发现、缓存、以及输入/输出 guardrails( safeguard 拦截与保护),以提升安全性和可扩展性。网关支持多种传输协议(如 StdIO、SSE、WebSocket),并可作为一个可扩展的后端服务来服务不同的 MCP 客户端。

  • 主要功能点

    • 资源与工具的托管、注册、访问与缓存
    • 动态工具发现与按服务器限制访问工具
    • Prompt 模板的定义、渲染与交互模式配置
    • 安全 Guardrails:对输入与输出进行检测、阻断或标记
    • 身份认证、API Key、项目/用户关联管理
    • 日志、指标与可观测性(追踪、缓存命中、请求保护等)
    • 支持多种传输协议,便于与 Claude Desktop、Cursor 等 MCP 客户端对接
  • 安装步骤

    • 环境要求:Python 3.11+、pip
    • 安装网关包(本仓库提供源码与打包方式,亦有 Docker/CLI 入口)
    • 安装后可通过 CLI 生成默认配置、将网关注册到客户端(如 Claude Desktop、Cursor),并按需调整网关配置
    • 如需运行本地 MCP 服务器的代理,请确保本地 MCP 服务器可用且网关可以访问
  • 服务器配置(给 MCP 客户端的配置示例说明) 说明:MCP 客户端需要的配置是一个 JSON 配置,描述要连接的 MCP 服务器及其启动方式。网关侧的配置示例来自仓库内的示例结构,关注点包括:服务器名称、启动命令、参数、环境变量、以及对该服务器暴露的工具、以及输入/输出 guardrails 的策略。以下为配置要点(文本描述,不作代码块展示):

    • 母配置结构包含两部分:common_mcp_gateway_config 与 mcp_configs。common_mcp_gateway_config 用于全局网关设置(日志级别、缓存、外部缓存、安全等),mcp_configs 列出多个 MCP 配置,每个配置包含:
      • mcp_config_name:本 MCP 配置名称
      • mcp_config:一个服务器数组,每个服务器具备:
        • server_name:服务器名称(如 echo_server)
        • description:服务器描述
        • config:启动 MCP 服务器的命令信息,通常包含 command(如 "python"、"npx"、"docker")和 args(启动参数列表,例如脚本路径、端口等),以及可选的 env(环境变量)
        • tools:暴露给 MCP 客户端的工具映射;可以为空让网关动态发现
        • input_guardrails_policy / output_guardrails_policy:对输入与输出的守护策略
    • 服务器配置示例(以文本描述形式呈现,非代码块): mcp_configs: { "default_config_id": { "mcp_config_name": "default_config", "mcp_config": [ { "server_name": "echo_server", "description": "Simple Echo Server", "config": { "command": "python", "args": [ "src/secure_mcp_gateway/bad_mcps/echo_mcp.py" ] }, "tools": {}, "input_guardrails_policy": { "enabled": false, "policy_name": "Sample Airline Guardrail", "additional_config": { "pii_redaction": false }, "block": ["policy_violation"] }, "output_guardrails_policy": { "enabled": false, "policy_name": "Sample Airline Guardrail", "additional_config": { "relevancy": false, "hallucination": false, "adherence": false }, "block": ["policy_violation"] } } ] } }, // 其它字段如 projects、users、apikeys 等按实际需要配置 }
  • 基本使用方法

    1. 读取与理解服务器配置:网关会读取 enkrypt_mcp_config.json 作为运行时配置,包含要接入的 MCP 服务器信息。
    2. 启动 MCP 客户端:MCP 客户端(如 Claude Desktop、Cursor)应按网关配置启动命令,以通过网关与实际 MCP 服务器进行通信。
    3. 发现与授权:网关在工具发现、请求转发、以及 guardrails 评估时会使用配置中的工具、资源和策略,确保安全性与权限控制。
    4. 调试与监控:通过网关的日志、监控与指标来排查问题,必要时开启调试日志。
  • 备注

    • MCP 客户端需要的只是网关配置中的服务器启动信息,客户端不需要直接暴露或理解网关的内部实现细节。
    • 本网关实现可作为 MCP 客户端对接真实 MCP 服务器的代理层,保障数据与请求在传输过程中的安全与合规。

服务器信息