MCP Server Copilot
by tshu-w
README.md
# MCP Server Copilot
[](https://modelcontextprotocol.io)
[](https://github.com/tshu-w/mcp-copilot)
[](https://pypi.org/project/mcp-server-copilot)
[](https://github.com/astral-sh/uv)
[](https://github.com/astral-sh/ruff)
A meta Model Context Protocol (MCP) server that seamlessly scales LLMs to 1000+ MCP servers through automatic routing without expose all servers and tools to LLMs directly.
<p align="center">
<img src="https://github.com/user-attachments/assets/7bb3ac79-6706-4fc5-8dab-2f0a3e5b981c" alt="mcp_copilot" style="max-width:100%; height:auto; width:500px;">
</p>
## Components
### Tools
- `router-servers`: Route user query to appropriate MCP servers.
- `query` (string, required): User's query to find relevant servers.
- `top_k` (integer, optional): Maximum number of servers to return (default: 5).
- `route-tools`: Route user query to appropriate MCP tools across all servers.
- `query` (string, required): User's query to find relevant tools.
- `top_k` (integer, optional): Maximum number of tools to return (default: 5).
- `execute-tool`: Execute a specific tool on a specific server based on previous routing results.
- `server_name` (string, required): Name of the server hosting the tool.
- `tool_name` (string, required): Name of the tool to execute.
- `params` (object, optional): Parameters to pass to the tool, as a key-value dictionary (default: null or empty object).
## Installation
### Using uv (recommended)
When using [`uv`](https://docs.astral.sh/uv/) no specific installation is needed. We will
use [`uvx`](https://docs.astral.sh/uv/guides/tools/) to directly run *mcp-server-copilot*.
### Using PIP
Alternatively you can install `mcp-server-copilot` via pip:
```
pip install mcp-server-copilot
```
After installation, you can run it as a script using:
```
python -m mcp_server_copilot
```
## Configuration
Copy `config/config.sample.json` to `~/.config/mcp-server-copilot`
Add to your MCP Client settings:
<details>
<summary>Using uvx</summary>
```json
{
"mcpServers": {
"copilot": {
"command": "uvx",
"args": ["mcp-server-copilot", "--config", "~/.config/mcp-server-copilot/config.json"]
}
}
}
```
</details>
<details>
<summary>Using pip installation</summary>
```json
{
"mcpServers": {
"copilot": {
"command": "python",
"args": ["-m", "mcp_server_copilot", "--config", "~/.config/mcp-server-copilot/config.json"]
}
}
}
```
</details>
## TODOs
- [ ] Add Dockerfile
- [ ] Tune prompt and add show cases
- [ ] Manage Servers more easily
- [ ] Add Semantic Routing
- [ ] Add Planning Capabilities
- [ ] Resources & Prompts
TDQS
A3.7/5.0
Scored across 3 tools
Disambiguation5/5
Each tool has a distinctly different purpose: one for finding servers, one for finding tools, and one for executing a tool. No overlap or ambiguity.
Naming Consistency4/5
All names use lowercase with hyphens, but 'router-servers' uses a noun (router) while 'route-tools' uses a verb (route), introducing minor inconsistency.
Tool Count5/5
Three tools is well-scoped for a routing/coordinating server, covering the essential functions without being too few or excessive.
Completeness4/5
Covers the core routing and execution workflow. A minor gap is the lack of a direct listing tool, but the routing tools subsume that functionality.
Maintenance
ActivityInactive
ResponsivenessNo issues