mcpField
M
MCP Server Proxy

MCP Server Proxy

Local
github.com/amirilovicDeveloper Tools1Updated 82w ago

About MCP Server Proxy

MCP Server Proxy connects to multiple MCP servers and presents their tools through one interface. It supports named configuration profiles, server-prefixed tool names, and stdio or SSE operation.

Key features

  1. 01Connect to multiple MCP servers
  2. 02Manage configuration profiles
  3. 03Prefix tools with server names
  4. 04Run in stdio or SSE mode
  5. 05Configure SSE host and port

Use cases

  1. 01Combine tools from several MCP servers
  2. 02Switch between developer and personal configurations
  3. 03Expose aggregated tools over SSE
  4. 04Separate same-named tools by server

MCP support

The proxy connects to multiple MCP servers and exposes their tools through a unified MCP interface. It can run in stdio or SSE mode and selects server configurations by profile.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

MCP Server Proxy

A proxy server that connects to multiple MCP servers and provides a unified interface for tool access.

Features

  • Connect to multiple MCP servers simultaneously
  • Support for multiple configuration profiles
  • Tool name prefixing with server names
  • Run in either stdio or SSE mode
  • Profile-based configuration management

Configuration

Create configuration files for each profile in the format config.<profile>.json. For example:

// config.developer.json
{
  "mcpServers": {
    "kubernetes": {
      "command": "npx",
      "args": ["mcp-server-kubernetes"]
    }
  }
}
// config.personal.json
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/mirilale/Desktop"
      ]
    }
  }
}

Installation

npm install

Usage

Command Line Options

The server can be started with various command-line options:

# Start with default settings
node dist/server.js

# Start with a specific profile
node dist/server.js --profile developer
# or
node dist/server.js -p developer

# Start in SSE mode
node dist/server.js --mode sse
# or
node dist/server.js -m sse

# Start in SSE mode with custom port and host
node dist/server.js --mode sse --port 8080 --host 0.0.0.0

# Combine options
node dist/server.js --profile developer --mode sse --port 8080

Available options:

  • -p, --profile <name>: Specify which profile to use (defaults to "default")
  • -m, --mode <mode>: Choose between "stdio" or "sse" mode (defaults to "stdio")
  • --port <number>: Set the port for SSE mode (defaults to 3000)
  • --host <host>: Set the host for SSE mode (defaults to "localhost")

Get help:

node dist/server.js --help
Tool Naming Convention

Tools are prefixed with their server name. For example:

  • A tool named read_file from the filesystem server becomes filesystem_read_file
  • A tool named get_pods from the kubernetes server becomes kubernetes_get_pods
SSE Mode Endpoints

When running in SSE mode, the server exposes the following endpoints:

  • GET /sse: Establishes an SSE connection
  • POST /messages: Handles tool requests (requires sessionId query parameter)

Example SSE client usage:

const eventSource = new EventSource("http://localhost:3000/sse");
eventSource.onmessage = (event) => {
  console.log("Received:", event.data);
};

Error Handling

The server provides detailed error messages including:

  • Profile loading errors
  • Server connection failures
  • Tool not found errors
  • Server disconnection errors

All errors include the current profile name for better context.

Development

# Install dependencies
npm install

# Build the project
npm run build

# Run in development mode
npm run dev:stdio:developer
# or
npm run dev:sse:developer
# Run with mpc inspector
npm run inspect

License

MIT

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.