AM

adamwattis/mcp-proxy-server

Developer tools

이 페이지는 AI로 자동 번역되었습니다. 기술적인 세부 사항은 원문을 확인하세요. 원문 보기

202 stars 44 forks 품질 68 트렌드 17MIT

adamwattis/mcp-proxy-server는 https://github.com/adamwattis/mcp-proxy-server.에서 가져온 MCP 서버 후보입니다.

개요

adamwattis/mcp-proxy-server는 https://github.com/adamwattis/mcp-proxy-server.에서 가져온 MCP 서버 후보입니다.

개요(AI 번역)

단일 인터페이스를 통해 여러 MCP 리소스 서버를 집계하고 서비스를 제공하는 MCP 프록시 서버입니다. 이 서버는 다음과 같은 중앙 허브 역할을 합니다:

  • 여러 MCP 리소스 서버에 연결 및 관리
  • 통합 인터페이스를 통해 결합된 역량을 노출
  • 요청의 적절한 백엔드 서버로의 라우팅 처리
  • 여러 출처의 응답 집계

특징

자원 관리

  • 여러 MCP 리소스 서버를 발견하고 연결
  • 연결된 모든 서버의 자원 집계
  • 서버 간 일관된 URI 방식 유지
  • 자원 라우팅 및 해석 처리

도구 집계

  • 연결된 모든 서버의 도구 노출
  • 도구 호출을 적절한 백엔드 서버로 라우팅
  • 도구 상태 유지 및 응답 처리

알림 처리

  • 연결된 모든 서버에서 받은 통합 프롬프트
  • 프롬프트 요청을 적절한 백엔드로 라우팅
  • 다중 서버 프롬프트 응답 처리

구성

서버는 연결할 MCP 서버를 지정한 JSON 구성 파일이 필요합니다. 예제 설정을 복사하여 필요에 맞게 수정하세요:

예시 구성 구조:

서버를 실행할 때 config 파일을 제공해야 합니다:

개발

이 페이지는 AI로 자동 번역되었습니다. 기술적인 세부 사항은 원문을 확인하세요.

README

MCP Proxy Server

An MCP proxy server that aggregates and serves multiple MCP resource servers through a single interface. This server acts as a central hub that can:

  • Connect to and manage multiple MCP resource servers
  • Expose their combined capabilities through a unified interface
  • Handle routing of requests to appropriate backend servers
  • Aggregate responses from multiple sources

Features

Resource Management

  • Discover and connect to multiple MCP resource servers
  • Aggregate resources from all connected servers
  • Maintain consistent URI schemes across servers
  • Handle resource routing and resolution

Tool Aggregation

  • Expose tools from all connected servers
  • Route tool calls to appropriate backend servers
  • Maintain tool state and handle responses

Prompt Handling

  • Aggregate prompts from all connected servers
  • Route prompt requests to appropriate backends
  • Handle multi-server prompt responses

Configuration

The server requires a JSON configuration file that specifies the MCP servers to connect to. Copy the example config and modify it for your needs:

cp config.example.json config.json

Example config structure:

{
  "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"]
      }
    },
    {
      "name": "Example Server 3",
      "transport": {
        "type": "sse",
        "url": "http://localhost:8080/sse"
      }
    }
  ]
}

The config file must be provided when running the server:

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

Development

Install dependencies:

npm install

Build the server:

npm run build

For development with auto-rebuild:

npm run watch

For development with continuous run:

# Stdio
npm run dev
# SSE
npm run dev:sse

Installation

To use with Claude Desktop, add the server config:

On MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json On 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"
      }
    }
  }
}
  • KEEP_SERVER_OPEN will keep the SSE running even if a client disconnects. Useful when multiple clients connects to the MCP proxy.

Debugging

Since MCP servers communicate over stdio, debugging can be challenging. We recommend using the MCP Inspector, which is available as a package script:

npm run inspector

The Inspector will provide a URL to access debugging tools in your browser.

GitHub에서 전체 README 보기

설치

This server does not publish a one-line install command.

Open the repository installation guide MCP 초보자라면? mcpskill.org 가이드부터 시작하세요 →

설정

{ "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" } } } }