MCP Server Runner
@yonaka15
A WebSocket server implementation for running Model Context Protocol (MCP) servers. This application enables MCP servers to be accessed via WebSocket connections, facilitating integration with web applications and other network-enabled clients.
Overview
What is MCP Server Runner?
A WebSocket server implementation that bridges WebSocket clients and Model Context Protocol (MCP) server executables. It launches an MCP server process, manages WebSocket connections, and handles bidirectional communication between clients and the MCP server. Ideal for integrating MCP servers with web applications and network-enabled clients.
How to use MCP Server Runner?
Configure via environment variables (PROGRAM, ARGS, HOST, PORT, CONFIG_FILE) or a JSON configuration file. Run the binary with cargo run (or the compiled executable), optionally providing a config file path as a command-line argument. Connect to the WebSocket server at ws://<host>:<port>.
Key features of MCP Server Runner
- WebSocket server with single-client support
- Launches and manages an MCP server process
- Bidirectional message passing between client and server
- Graceful shutdown and comprehensive error handling
- Cross-platform support (Unix and Windows)
- Configuration via environment variables or JSON file
Use cases of MCP Server Runner
- Connect a web application to a local MCP server via WebSocket
- Expose MCP server functionality to network-based tools and clients
- Bridge multiple MCP server configurations using a single JSON config file
- Develop and test MCP servers with a standardized WebSocket interface
FAQ from MCP Server Runner
What is MCP Server Runner and what does it do?
MCP Server Runner is a WebSocket server that launches and manages an MCP (Model Context Protocol) server process, acting as a bridge between WebSocket clients and the MCP server. It handles bidirectional communication, process startup, and graceful shutdown.
How do I configure MCP Server Runner?
You can configure it using environment variables (e.g., PROGRAM, ARGS, HOST, PORT) or a JSON configuration file. The JSON file allows defining multiple server configurations and selecting a default. Configuration priority: command-line config file > CONFIG_FILE env var > environment variables > defaults.
Does MCP Server Runner support multiple concurrent clients?
No. The current implementation supports only one client connection at a time.
Does MCP Server Runner support SSL/TLS or authentication?
No. It does not support WebSocket SSL/TLS (use a reverse proxy for secure connections) and has no built-in authentication mechanism.
What are the runtime requirements?
You need Rust 1.70 or higher to build the server, and an MCP server executable to run. The server can be containerized using the provided Dockerfile and docker-compose.yml.