KM

kfirtoledo/multi-mcp

Developer tools

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

111 stars 25 forks 품질 62 트렌드 15MIT

kfirtoledo/multi-mcp는 [[T0]에서 가져온 MCP 서버 후보입니다.

개요

kfirtoledo/multi-mcp는 [[T0]에서 가져온 MCP 서버 후보입니다.

개요(AI 번역)

유연하고 동적인 Multi-MCP 프록시 서버로, 연결과 라우팅 시 단일 MCP 서버로 작용합니다 STDIO 또는 SSE를 통해 여러 백엔드 MCP 서버가 있습니다.

🚀 특징

  • ✅ STDIO 및 SSE 전송 모두를 지원합니다
  • ✅ STDIO 또는 SSE 모드로 실행되는 MCP 서버에 연결할 수 있습니다
  • ✅ 여러 MCP 서버에 대한 프록시 요청
  • ✅ 연결된 서버에서 기능(도구, 프롬프트, 리소스)을 자동으로 초기화합니다.
  • ✅ 런타임에 동적으로 MCP 서버를 추가/제거* (HTTP API를 통해)
  • ✅ 같은 이름의 도구들을 서로 다른 서버에서 지원함(네임스페이스 사용)
  • ✅ 쿠버네티스에 배포 가능하며, 프록시를 통해 연결된 모든 MCP 서버에 단일 포트를 노출

📦 설치

이 프로젝트를 현지에서 시작하려면 다음을 소개합니다:

🖥️ 지역 경주

필요에 따라 STDIO 또는 SSE 모드로 프록시를 로컬로 실행할 수 있습니다:

1. STDIO 모드

CLI 스타일 작동(파이프 기반 통신)을 위한 것입니다. 로컬 실행된 도구나 에이전트를 연쇄로 연결하는 데 사용됩니다.

2. SSE 모드

/sse 엔드포인트를 노출하는 HTTP SSE 서버를 실행합니다. 원격 접속, 브라우저 에이전트, 네트워크 기반 도구에 유용합니다.

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

README

원문 README의 일부입니다. 원문 보기.

Multi MCP

A flexible and dynamic Multi-MCP Proxy Server that acts as a single MCP server while connecting to and routing between multiple backend MCP servers over STDIO or SSE.

🚀 Features

  • ✅ Supports both STDIO and SSE transports
  • ✅ Can connect to MCP servers running in either STDIO or SSE mode
  • ✅ Proxies requests to multiple MCP servers
  • ✅ Automatically initializes capabilities (tools, prompts, resources) from connected servers
  • ✅ Dynamically add/remove MCP servers at runtime (via HTTP API)
  • ✅ Supports tools with the same name on different servers (using namespacing)
  • ✅ Deployable on Kubernetes, exposing a single port to access all connected MCP servers through the proxy

📦 Installation

To get started with this project locally:

# Clone the repository
git clone https://github.com/kfirtoledo/multi-mcp.git
cd multi-mcp

# Install using uv (recommended)
uv venv
uv pip install -r requirements.txt

🖥️ Running Locally

You can run the proxy locally in either STDIO or SSE mode depending on your needs:

1. STDIO Mode

For CLI-style operation (pipe-based communication). Used for chaining locally executed tools or agents.

uv run main.py --transport stdio

2. SSE Mode

Runs an HTTP SSE server that exposes a /sse endpoint. Useful for remote access, browser agents, and network-based tools.

uv run main.py --transport sse

Note: You can also configure the host and port using --host / --port arguments.

⚙️ Configuration

The proxy is initialized using a JSON config (default: ./mcp.json):

{
  "mcpServers": {
    "weather": {
      "command": "python",
      "args": ["./tools/get_weather.py"]
    },
    "calculator": {
      "command": "python",
      "args": ["./tools/calculator.py"]
    }
  }
}

This config defines the initial list of MCP-compatible servers to spawn and connect at startup.

Note: Tool names are namespaced internally as server_name::tool_name to avoid conflicts and allow multiple servers to expose tools with the same base name. For example, if an MCP server named calculator provides an add tool, it will be referenced as calculator::add.

You can also connect to a remote MCP server using SSE:

{
  "mcpServers": {
    "weather": {
      "url": "http://127.0.0.1:9080/sse"
    }
  }
}

More examples can be found in the examples/config/ directory.

🔄 Dynamic Server Management (SSE only)

When running in SSE mode, you can add/remove/list MCP servers at runtime via HTTP endpoints:

Method Endpoint Description
GET /mcp_servers List active MCP servers
POST /mcp_servers Add a new MCP server
GitHub에서 전체 README 보기

설치

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

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

설정

{ "mcpServers": { "weather": { "command": "python", "args": ["./tools/get_weather.py"] }, "calculator": { "command": "python", "args": ["./tools/calculator.py"] } } }