Per-session MCP server profiles to reduce token overhead
Problem
Every registered MCP server's tool names load into the system prompt on every message, regardless of whether they're relevant to the current task. For power users with 10+ MCP servers, this adds ~2,500+ tokens of overhead per message just for deferred tool name listings.
A vault-editing session doesn't need Linear, Apollo, Substack, or investor-relations tools. A sales session doesn't need graphify scripts or graph-query tools. But there's no way to scope which servers load per session.
Current workaround
Manually editing .mcp.json before each session type, which is impractical.
Proposed solution
Support named MCP profiles in .mcp.json that can be activated per session:
{
"mcpProfiles": {
"vault": ["graph-query", "google-workspace"],
"sales": ["apollo", "linear", "investor-relations"],
"writing": ["substack", "google-workspace"],
"full": ["*"]
},
"defaultProfile": "vault"
}
Activation: claude --mcp-profile sales or /mcp-profile sales mid-session.
Impact
For a user with 10 MCP servers (~250 deferred tool names), loading only 3 relevant servers per session would save ~1,500 tokens per message. Over a 30-exchange session, that's ~45,000 tokens saved, which directly impacts usage limits.
Prior art
Issues #39487, #39491, #45293, #24000, #15981 all requested this. All were closed as duplicate or stale without resolution. The demand is clearly there.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗