项目简介

'gs-mcp-proxy-pii-redactor' 是一个功能强大的MCP代理服务器,它将多个下游MCP服务器(例如GitHub Copilot MCP服务器)的服务聚合到一个统一的入口点。这意味着您的LLM客户端只需连接到这一个代理,即可访问所有配置的下游MCP服务器提供的工具、提示和资源。此外,它还内置了高级的个人敏感信息(PII)自动脱敏功能,确保数据安全。

主要功能点

  • 多服务器聚合: 通过单个HTTP/SSE/Stdio端点,统一访问和管理来自多个MCP服务器的工具、提示和资源。
  • PII自动脱敏: 自动识别并脱敏传输过程中的个人敏感信息(如邮箱、电话、自定义词汇),保障数据隐私。
  • 多种传输协议支持: 支持通过Server-Sent Events (SSE)、流式HTTP或标准输入输出 (Stdio) 与LLM客户端进行通信。
  • 工具调用过滤: 能够根据配置允许或阻止特定的工具调用,增强安全性和控制力。
  • 灵活的认证: 支持Bearer Token认证,可配置全局或针对特定下游服务器的认证策略。
  • 审计日志: 提供详细的脱敏操作审计日志,便于追踪和合规性审查。

安装步骤

  1. 前置条件: 确保您的系统已安装Node.js (版本 >= 22.14.0) 和 npm。

  2. 全局安装 (推荐用于本地开发和测试): 打开您的命令行工具,运行以下命令进行全局安装:

    npm install -g @growthspace-engineering/gs-mcp-proxy-pii-redactor
  3. 初始化配置文件: 安装后,您可以生成一个默认的配置文件。该文件通常创建在您的用户目录 ('~/gs-mcp-proxy/config.json'):

    gs-mcp-proxy --init

    您也可以不进行全局安装,通过 'npx -y @growthspace-engineering/gs-mcp-proxy-pii-redactor --init' 命令来初始化配置文件。

服务器配置

MCP代理服务器需要一个配置文件来定义其自身行为以及它将代理的下游MCP服务器。以下是一个示例配置,展示了如何设置代理服务器以及它所连接的下游MCP服务器:

{
  "mcpProxy": {
    "baseURL": "http://localhost:8084",                  // 代理服务器对外暴露的基础URL
    "addr": ":8084",                                     // 代理服务器监听的地址和端口
    "name": "MCP Proxy with PII Redaction",              // 代理服务器名称
    "version": "1.0.0",                                  // 代理服务器版本
    "type": "sse",                                       // 代理服务器与客户端通信的传输类型 (可选: "sse", "streamable-http", "stdio")
    "options": {
      "authTokens": ["global-secret-token"]              // 全局认证令牌,如果配置,所有连接到代理的客户端都需要提供
    }
  },
  "mcpServers": {
    "github": {                                          // 下游MCP服务器的名称,LLM客户端将通过此名称访问
      "transportType": "streamable-http",                // 代理服务器与下游GitHub MCP通信的传输类型
      "url": "https://api.githubcopilot.com/mcp/",       // 下游GitHub MCP服务器的URL
      "headers": {
        "Authorization": "Bearer ${GITHUB_TOKEN}"        // 用于认证下游服务器,支持环境变量替换
      },
      "options": {
        "redaction": {
          "enabled": true,                               // 对来自该服务器的响应启用PII脱敏
          "keys": ["description", "text"],               // 仅对这些字段进行脱敏,如果为空则脱敏所有字符串
          "verboseAudit": true                           // 启用详细的审计日志,记录脱敏前后的数据
        },
        "toolFilter": {
          "mode": "allow",                               // 工具过滤模式 (可选: "allow" - 仅允许列表中的工具, "block" - 阻止列表中的工具)
          "list": ["list_issues", "search_repositories"] // 允许或阻止的工具列表
        },
        "authTokens": ["my-github-token"]                // 允许连接到此特定代理服务器实例的客户端认证令牌,如果配置则客户端必须提供
      }
    },
    "my_internal_mcp": {                                 // 另一个下游MCP服务器的名称
      "command": "python",                               // 运行Stdio类型下游MCP服务器的命令
      "args": ["-m", "my_mcp_server"],                   // 命令的参数
      "env": {
        "SOME_ENV_VAR": "value"                          // 运行下游服务器所需的环境变量
      }
    }
  }
}

请根据您的实际需求修改此配置文件。例如,如果您要使用Stdio模式连接到MCP服务器,您的MCP客户端需要配置如下:

  • 针对MCP客户端的配置示例 (以JSON格式表示,非实际代码): 如果您将 'gs-mcp-proxy-pii-redactor' 运行为Stdio模式并代理 'github' 服务器,您的MCP客户端配置可能如下:
    {
      "name": "MyLLMClient",
      "version": "0.1.0",
      "transport": {
        "type": "stdio",
        "command": "gs-mcp-proxy",                                            // 启动MCP代理服务器的命令
        "args": ["--stdio-target", "github", "--config", "~/gs-mcp-proxy/config.json"] // 传递给命令的参数,指定代理的目标下游服务器和配置文件路径
        // 或者如果您没有全局安装 MCP 代理:
        // "command": "npx",
        // "args": ["@growthspace-engineering/gs-mcp-proxy-pii-redactor", "--stdio-target", "github", "--config", "~/gs-mcp-proxy/config.json"]
      }
    }
    如果您将 'gs-mcp-proxy-pii-redactor' 运行为HTTP/SSE模式,您的MCP客户端配置可能如下:
    {
      "name": "MyLLMClient",
      "version": "0.1.0",
      "transport": {
        "type": "sse",                                     // 或 "streamable-http",取决于代理服务器的 mcpProxy.type 配置
        "url": "http://localhost:8084/github/sse",         // 请根据您的 mcpProxy.baseURL 和 mcpProxy.addr 以及下游服务器名称替换
        "headers": {
          "Authorization": "Bearer my-github-token"        // 如果代理服务器配置了 authTokens,客户端需要提供对应的令牌
        }
      }
    }

基本使用方法

  1. 启动代理服务器: 配置完成后,您可以通过以下命令启动MCP代理服务器:

    gs-mcp-proxy --config <您的配置文件路径>

    例如,如果您使用默认路径:'gs-mcp-proxy --config ~/gs-mcp-proxy/config.json' 如果您的配置文件名为 'config.json' 且位于当前目录下,可以直接运行 'gs-mcp-proxy'。

  2. 连接MCP客户端: 一旦代理服务器启动,您的LLM客户端(如Cursor、Claude Desktop或其他支持MCP协议的客户端)就可以按照其自身的配置方式连接到此代理服务器,并通过它访问和使用后端功能。例如,对于SSE连接,客户端将连接到 'http://localhost:8084/<下游服务器名称>/sse'。

信息

分类

AI与计算