{"slug": "smart-mcp-proxy-hot-swap-mcp-aggregation-ai-concierge", "title": "Smart MCP Proxy — Hot-Swap MCP Aggregation + AI Concierge", "summary": "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.", "body_md": "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.\n\nIt'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.\n\nYour 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:\n\nThe proxy fixes all three. There are two builds.\n\nOne 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.\n\nThe good part is the hot-swap. A file watcher watches `proxy-config.yaml`\n\n. 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.\n\nWhat you set up looks like this:\n\n```\nproxy:\n  host: \"127.0.0.1\"\n  port: 9876\n\nservers:\n  my-server:\n    type: stdio\n    command: \"~/.mcp_servers/xxx/cmd\"\n    args: [\"--flag\"]\n    timeout: 120\n```\n\nEach downstream tool keeps its real name and full parameter schema — no generic `arguments: object`\n\ngarbage. Images and binary content come through as JSON.\n\nThis is the part I actually run daily. Instead of the agent fumbling with raw tools, it gets a second way in: just talk.\n\n```\nmcp_proxy_ask(\"compare grok, claude, and gemini on this topic\")\n```\n\nThe 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.\n\nRouting 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.\n\nThe skill templates are just markdown files in `skills/<server-name>/`\n\n. Drop an `.md`\n\nin, it works. No code changes.\n\nAlso worth noticing: every response tells you which server was used and how confident the match was.\n\nThe README has a longer take on this, but the short version: point one proxy per machine and you get a cascade where an org-level agent can see every box while each team's agent only sees its own. Screenshots, commands, files — local hands, remote brain, talking over MCP. I'll leave that vision to the docs, but honestly that direction is the fun part of this thing.\n\n```\npip install mcp fastmcp pydantic pyyaml watchdog click uvicorn httpx\npython -m src --enable-smart\n```\n\nThen point any Hermes profile at it:\n\n```\nmcp_servers:\n  smart-mcp-proxy:\n    url: \"http://localhost:9876/mcp\"\n```\n\nThere are `bin/smart-mcp-proxy.cmd`\n\nand `.sh`\n\nwrappers for start/stop/restart/status if you'd rather not call it directly.\n\nIt's v1.0.0 and MIT licensed. Authentication and HTTPS are planned but not shipped yet, so don't put it on a public port. The multi-step chain is capped at four hops and strips image data from follow-up context so you don't blow up your context window. For single-user local setups it's been solid for me, but treat it as new software until you've watched it a while.\n\nThat's the whole pitch. The repo is at [github.com/MilkyWay008/Smart-MCP-Proxy](https://github.com/MilkyWay008/Smart-MCP-Proxy) if you want to poke at it or tell me what's awkward.", "url": "https://wpnews.pro/news/smart-mcp-proxy-hot-swap-mcp-aggregation-ai-concierge", "canonical_source": "https://dev.to/milkyway008/smart-mcp-proxy-hot-swap-mcp-aggregation-ai-concierge-59fj", "published_at": "2026-08-21 17:08:55+00:00", "updated_at": "2026-08-21 17:14:59.281347+00:00", "lang": "en", "topics": ["developer-tools", "ai-agents", "ai-infrastructure", "ai-tools"], "entities": ["Smart MCP Proxy", "MilkyWay008", "GitHub", "MCP", "Hermes"], "alternates": {"html": "https://wpnews.pro/news/smart-mcp-proxy-hot-swap-mcp-aggregation-ai-concierge", "markdown": "https://wpnews.pro/news/smart-mcp-proxy-hot-swap-mcp-aggregation-ai-concierge.md", "text": "https://wpnews.pro/news/smart-mcp-proxy-hot-swap-mcp-aggregation-ai-concierge.txt", "jsonld": "https://wpnews.pro/news/smart-mcp-proxy-hot-swap-mcp-aggregation-ai-concierge.jsonld"}}