Smart MCP Proxy — Hot-Swap MCP Aggregation + AI Concierge A developer released Smart MCP Proxy, an open-source tool that hot-swaps MCP servers live and shares subprocess pools across agents. The proxy, written as a single Python process, allows adding or removing servers at runtime without restarts and includes an AI concierge layer that routes plain-English requests to appropriate tools using MCP Sampling. The project is available on GitHub under an MIT license. I got tired of restarting my agent every time I added an MCP server. Edit a config, restart the gateway, hope the desktop app picks it up... away from your desk, that's a dealbreaker. So I built a proxy that hot-swaps MCP servers live and shares their subprocess pools across every agent you run. It's one endpoint for all your MCP servers. Add or remove them at runtime, no restart needed, no API keys embedded. The whole thing is a single Python process — no database, no web UI, no Docker. Clone, run, and it works offline. Your agent might be smart, but your MCP servers are dumb tools. And dumb tools burn context, waste memory, and demand restarts every time you touch a config. I kept running into the same three things: The proxy fixes all three. There are two builds. One subprocess pool per server, shared across every connected agent. So three agents plus seven servers is seven pools, not 21. If a pool gets busy, it spawns an extra subprocess on demand and kills it after it goes idle. Crash recovery tries three times with backoff. The good part is the hot-swap. A file watcher watches proxy-config.yaml . On a change, it diffs the old server list against the new one, closes pools for servers you removed, and spins up pools for ones you added. No restart, either side. What you set up looks like this: proxy: host: "127.0.0.1" port: 9876 servers: my-server: type: stdio command: "~/.mcp servers/xxx/cmd" args: "--flag" timeout: 120 Each downstream tool keeps its real name and full parameter schema — no generic arguments: object garbage. Images and binary content come through as JSON. This is the part I actually run daily. Instead of the agent fumbling with raw tools, it gets a second way in: just talk. mcp proxy ask "compare grok, claude, and gemini on this topic" The smart layer figures out which server to hit, loads the right skill template if one fits, pulls the parameters out of your plain English, runs the tool, and chains follow-ups if the skill asks for them. Then it hands back only the final answer. All the intermediate noise never touches the agent's context. Routing runs off MCP Sampling, so it borrows the connected agent's own LLM. No API key embedded anywhere. If the client doesn't support Sampling, it falls back to keyword matching. The skill templates are just markdown files in skills/