
mcp-server-proxy
3 years
Works with Finder
1
Github Watches
0
Github Forks
0
Github Stars
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 thefilesystem
server becomesfilesystem_read_file
- A tool named
get_pods
from thekubernetes
server becomeskubernetes_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 (requiressessionId
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
相关推荐
I find academic articles and books for research and literature reviews.
Confidential guide on numerology and astrology, based of GG33 Public information
Embark on a thrilling diplomatic quest across a galaxy on the brink of war. Navigate complex politics and alien cultures to forge peace and avert catastrophe in this immersive interstellar adventure.
Converts Figma frames into front-end code for various mobile frameworks.
Advanced software engineer GPT that excels through nailing the basics.
💬 MaxKB is a ready-to-use AI chatbot that integrates Retrieval-Augmented Generation (RAG) pipelines, supports robust workflows, and provides advanced MCP tool-use capabilities.
Micropython I2C-based manipulation of the MCP series GPIO expander, derived from Adafruit_MCP230xx
MCP server to provide Figma layout information to AI coding agents like Cursor
Python code to use the MCP3008 analog to digital converter with a Raspberry Pi or BeagleBone black.
Reviews

user_Cqkt3Jv7
As a loyal user of mcp-server-proxy, I can confidently say this project by amirilovic is a game-changer for server management. The seamless integration and robust performance truly stand out. It's evident that a lot of thought and effort went into its development. Highly recommended for anyone looking to streamline their server operations. Check it out on GitHub!