MCP Proxy Server

MCP Proxy Server

一个通过单一接口聚合和提供多个MCP资源服务器的MCP代理服务器。

概述

MCP 代理服务器作为中央枢纽,聚合多个 MCP 资源服务器并通过统一接口提供服务,可以管理连接、路由请求和聚合来自多个来源的响应。

安装与配置

  1. 创建配置文件

    复制示例配置并根据需要修改:

    cp config.example.json config.json
    

    配置文件结构:

    {
      "servers": [
        {
          "name": "Server 1",
          "transport": {
            "command": "/path/to/server1/build/index.js"
          }
        },
        {
          "name": "Server 2",
          "transport": {
            "command": "server2-command",
            "args": ["--option1", "value1"],
            "env": ["SECRET_API_KEY"]
          }
        }
      ]
    }
    
  2. 启动服务器

    MCP_CONFIG_PATH=./config.json mcp-proxy-server
    

Claude Desktop 集成

在相应配置文件中添加服务器信息:

  • MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "mcp-proxy": {
      "command": "/path/to/mcp-proxy-server/build/index.js",
      "env": {
        "MCP_CONFIG_PATH": "/absolute/path/to/your/config.json",
        "KEEP_SERVER_OPEN": "1"
      }
    }
  }
}

开发

# 安装依赖
npm install

# 构建服务器
npm run build

# 开发模式(自动重建)
npm run watch

# 连续运行开发模式
npm run dev       # Stdio
npm run dev:sse   # SSE

# 调试
npm run inspector

核心功能

  • 资源管理: 发现并连接多个MCP服务器,聚合资源,处理路由
  • 工具聚合: 暴露所有连接服务器的工具,路由调用至适当后端
  • 提示处理: 从所有连接服务器聚合提示,处理多服务器响应

提示: 使用 KEEP_SERVER_OPEN=1 环境变量保持服务器运行,适用于多客户端连接场景