Acts as a token-efficient gateway between Claude and multiple MCP servers by using semantic search to find relevant tools instead of loading everything upfront. You configure upstream servers in YAML, and it builds a vector index of their tool descriptions. When Claude needs something, it queries the index first, then proxies calls to the right server. Supports stdio transport out of the box, includes a watch mode for hot-reloading server configs from a directory, and lets you validate or inspect your setup via CLI commands. Reach for this when you're hitting context limits from too many tool definitions or want to aggregate tools from several MCP servers without overwhelming the model.
Token-efficient MCP server gateway with semantic tool search
mcp-name: io.github.daedalus/mcp-smart-proxy
pip install mcp-smart-proxy
from mcp_smart_proxy import ProxyConfig
config = ProxyConfig.from_file("proxy.yaml")
mcp-smart-proxy --help
mcp-smart-proxy serve --config proxy.yaml
mcp-smart-proxy serve --config proxy.yaml --watch ./servers/
mcp-smart-proxy serve --config proxy.yaml --transport streamable-http --host 0.0.0.0 --port 8000
mcp-smart-proxy index --config proxy.yaml
mcp-smart-proxy status --config proxy.yaml
mcp-smart-proxy validate --config proxy.yaml
The --watch option monitors a directory for .yaml, .yml, or .json files containing
upstream server configurations. Add, modify, or remove files to dynamically update the
available servers at runtime.
The --transport option supports:
stdio (default) - Standard input/output transport for local MCP clientsProxyConfig - Main configuration modelUpstreamConfig - Upstream server configurationEmbeddingConfig - Embedding backend configurationVectorStoreConfig - Vector store backend configurationListResult - Result from the list toolSearchResult - Result from the search toolToolResult - Result from tool callsgit clone https://github.com/daedalus/mcp-smart-proxy.git
cd mcp-smart-proxy
pip install -e ".[test]"
# run tests
pytest
# format
ruff format src/ tests/
# lint
ruff check src/ tests/
# type check
mypy src/