proxy-mcp
Universal MCP proxy server that discovers, searches, and executes tools across all your configured MCP servers from a single entry point.
Features
- Proxy execution — Call any tool on any MCP server through
execute_mcp_tool - Semantic search — Find tools by describing what you want to do, not by exact name
- Connection pool — MCP subprocesses are spawned on-demand and reused across calls
- Weight learning — The search system learns from your selections to improve rankings over time
- Auto-indexing — All MCP tools are indexed on server startup (non-blocking)
Tools
| Tool | Description | |------|-------------| | execute_mcp_tool | Execute any tool on any configured MCP server | | search_tools | Semantic search across all indexed tools | | list_available_mcps | List configured MCP servers and their status | | refresh_tool_index | Re-index tools from MCP servers | | get_learned_weights | View learned search weights | | reset_learned_weights | Reset all learned weights | | close_mcp_connections | Close all active MCP connections |
Requirements
- Python >= 3.10
- uv (recommended) or pip
Installation
# Clone
git clone https://github.com/Rixmerz/proxy-mcp.git
cd proxy-mcp
# Install with uv
uv sync
Configuration
Add to ~/.claude.json under mcpServers:
{
"mcpServers": {
"proxy-mcp": {
"command": "uv",
"args": ["run", "--directory", "/path/to/proxy-mcp", "proxy-mcp"]
}
}
}
The proxy reads MCP server configs from:
~/.agentcockpit/mcps.json(priority)~/.claude.json(fallback)
Usage examples
# Search for a tool by what you want to do
search_tools(query="expose service to internet")
# Execute a tool on a specific MCP
execute_mcp_tool(
mcp_name="Context7",
tool_name="get-library-docs",
arguments={"context7CompatibleLibraryID": "/vercel/next.js", "topic": "routing"}
)
# List all available MCPs
list_available_mcps()
Data
Learned weights are stored at ~/.proxy-mcp/learned_weights.json.
License
MIT






