使用说明

项目简介

MCP网关是一个位于大型语言模型(LLM)客户端和多个模型上下文协议(MCP)服务器之间的中间层。它作为一个中央路由器和管理系统,集中管理和增强您的AI基础设施。网关包装并管理底层的MCP服务器,为所有连接的MCP提供统一的安全策略、监控和跟踪能力。

主要功能点

  • 统一安全防护 (Agnostic Guardrails)
    • 对客户端请求和服务器响应应用可配置的安全过滤器。
    • 在信息到达客户端之前,防止敏感数据泄露。
    • 跨所有连接的MCP服务器保持一致的安全策略。
  • 集中可视化管理 (Unified Visibility)
    • 提供仪表板,在一个界面中监控所有MCP服务器。
    • 包含智能风险评估和MCP风险评分。
    • 提供实时状态监控和性能指标。
  • 高级追踪与分析 (Advanced Tracking)
    • 记录所有请求和响应的详细日志,用于安全审计和问题排查。
    • 提供成本评估工具,用于管理需要付费token的MCP服务器。
    • 提供使用情况分析和模式识别,用于优化资源使用。
    • 在将请求转发到其他MCP服务器之前,清理敏感信息。
  • 工具支持:
    • 'get_metadata': 提供所有代理MCP服务器的元数据信息,帮助LLM选择合适的工具和资源。
    • 'run_tool': 执行任何代理MCP服务器的功能,并在请求和响应过程中应用安全策略。

安装步骤

  1. 确保您的Python环境中已安装pip。
  2. 打开终端或命令提示符,运行以下命令安装MCP网关:
    pip install mcp-gateway
  3. 如果您需要使用Presidio guardrail插件进行PII(个人身份信息)脱敏,请使用以下命令安装:
    pip install mcp-gateway[presidio]

服务器配置

MCP客户端需要配置MCP网关的启动命令和参数,以便连接到网关服务器。MCP网关本身会读取 'mcp.json' 配置文件来管理和代理底层的MCP服务器。以下是一个配置示例,展示了如何在MCP客户端(如Cursor编辑器)的 'mcp.json' 文件中配置MCP网关,并使其代理一个文件系统MCP服务器,同时启用 'basic' 和 'presidio' 两个安全策略:

{
  "mcpServers": {
      "mcp-gateway": {
          "command": "mcp-gateway",
          "args": [
              "--mcp-json-path",
              "~/.cursor/mcp.json",
              "--enable-guardrails",
              "basic",
              "--enable-guardrails",
              "presidio"
          ],
          "servers": {
              "filesystem": {
                  "command": "npx",
                  "args": [
                      "-y",
                      "@modelcontextprotocol/server-filesystem",
                      "."
                  ]
              }
          }
      }
  }
}

配置参数说明:

  • '"mcpServers"': 顶层配置,包含所有MCP服务器的配置信息。
  • '"mcp-gateway"': 为MCP网关服务器自定义的名称,在客户端中用于标识和连接到该网关。
    • '"command": "mcp-gateway"': 指定启动MCP网关服务器的命令,通常为 'mcp-gateway' (假设 'mcp-gateway' 命令已添加到系统路径)。
    • '"args"': 传递给 'mcp-gateway' 命令的参数列表。
      • '"--mcp-json-path", "~/.cursor/mcp.json"': 指定 'mcp-gateway' 读取配置文件的路径。这里设置为客户端的 'mcp.json' 文件路径,使得网关可以读取相同的配置文件来管理代理的服务器。
      • '"--enable-guardrails", "basic"': 启用 'basic' 基础安全策略插件,用于基础的token和密钥脱敏。
      • '"--enable-guardrails", "presidio"': 启用 'presidio' 安全策略插件,用于个人身份信息 (PII) 脱敏。
    • '"servers"': 定义了MCP网关代理的后端MCP服务器。
      • '"filesystem"': 为被代理的文件系统MCP服务器自定义的名称。
        • '"command": "npx"': 指定启动文件系统MCP服务器的命令,这里使用 'npx' 来运行Node.js包。
        • '"args"': 传递给 'npx' 命令的参数列表。
          • '"-y", "@modelcontextprotocol/server-filesystem", "."': 使用 'npx' 运行 '@modelcontextprotocol/server-filesystem' 包,'"."' 表示文件系统服务器的工作目录为当前目录。

注意: 'mcp-gateway' 的 '"servers"' 字段中可以配置多个被代理的MCP服务器,每个服务器都需要指定其 'command' 和 'args',以便 'mcp-gateway' 能够启动和管理这些服务器。客户端只需要配置连接 'mcp-gateway' 的信息,无需直接配置后端服务器。

基本使用方法

  1. 启动MCP网关服务器:在终端或命令提示符中,使用以下命令启动MCP网关,并启用 'basic' 和 'presidio' 安全策略:

    mcp-gateway --enable-guardrails basic --enable-guardrails presidio
  2. 调试模式:如果您需要调试服务器,可以使用以下命令,这将启用更详细的日志输出:

    LOGLEVEL=DEBUG mcp-gateway --mcp-json-path ~/.cursor/mcp.json --enable-guardrails basic --enable-guardrails presidio
  3. 配置Lasso安全策略:要使用Lasso Security提供的高级安全策略,您需要:

    • 注册并获取Lasso API密钥 (Lasso Security)。
    • 在 'mcp.json' 配置文件中,将 guardrail 更改为 '"lasso"',并添加 'LASSO_API_KEY' 环境变量:
      {
        "mcpServers": {
            "mcp-gateway": {
                "command": "mcp-gateway",
                "args": [
                    "--mcp-json-path",
                    "~/.cursor/mcp.json",
                    "--enable-guardrails",
                    "lasso"
                ],
                "env": {
                    "LASSO_API_KEY": "<lasso_token>"  // 将 <lasso_token> 替换为您的 Lasso API 密钥
                },
                "servers": {
                    "filesystem": {
                        "command": "npx",
                        "args": [
                            "-y",
                            "@modelcontextprotocol/server-filesystem",
                            "."
                        ]
                    }
                }
            }
        }
      }
    • 启动MCP网关时,确保 'LASSO_API_KEY' 环境变量已设置。
  4. 使用MCP客户端连接:配置您的MCP客户端(如Cursor编辑器)连接到 'mcp-gateway' 服务器。客户端将通过MCP网关与后端被代理的MCP服务器进行交互,所有请求和响应都会经过MCP网关的安全策略处理。

通过MCP网关,您可以集中管理和增强您的MCP服务器,提高AI应用的安全性、可观测性和可维护性。

信息

分类

AI与计算