MCP Server Proxy logo

MCP Server Proxy

by amirilovic

A proxy server that connects to multiple MCP servers and provides a unified interface for tool access. It supports multiple configuration profiles and can run in stdio or SSE mode.

View on GitHub

Last updated: N/A

What is MCP Server Proxy?

MCP Server Proxy is a proxy server designed to connect to multiple MCP (Model Context Protocol) servers, presenting a unified interface for accessing tools across these servers.

How to use MCP Server Proxy?

The server is configured using JSON profiles (e.g., config.developer.json). You can start the server with command-line options to specify the profile, mode (stdio or SSE), port, and host. Tools are accessed using a naming convention that prefixes the tool name with the server name. In SSE mode, use the /sse endpoint to establish a connection and /messages to send tool requests.

Key features of MCP Server Proxy

  • Connects to multiple MCP servers simultaneously

  • Supports multiple configuration profiles

  • Tool name prefixing with server names

  • Runs in stdio or SSE mode

  • Profile-based configuration management

Use cases of MCP Server Proxy

  • Centralized access to tools across different MCP server environments

  • Simplifying tool management and access for developers

  • Providing a consistent interface for interacting with MCP servers

  • Enabling secure and controlled access to MCP server resources

FAQ from MCP Server Proxy

How do I specify which configuration profile to use?

Use the -p or --profile command-line option followed by the profile name (e.g., node dist/server.js -p developer).

What are the available modes?

The server can run in either stdio or sse mode. Use the -m or --mode command-line option to specify the mode (e.g., node dist/server.js -m sse).

How does the tool naming convention work?

Tools are prefixed with their server name. For example, a tool named read_file from the filesystem server becomes filesystem_read_file.

What endpoints are available in SSE mode?

In SSE mode, the server exposes the /sse endpoint for establishing an SSE connection and the /messages endpoint for handling tool requests.

How do I handle errors?

The server provides detailed error messages, including profile loading errors, server connection failures, tool not found errors, and server disconnection errors. All errors include the current profile name for better context.