[FEATURE] Skills that depend on MCP servers should be disabled (not loaded) when their MCP is disconnected
Feature Request
When a skill depends on one or more MCP tools, it should not be loaded at all if its underlying MCP server is disconnected — and this should be reflected in /context.
Current behaviour
All skills are loaded unconditionally, regardless of whether their required MCP servers are connected. A skill like /contentful consumes context tokens whether or not mcp__contentful__* is reachable. The only way to discover the problem is to invoke the skill and have it fail.
Expected behaviour
Skills that declare MCP dependencies should be skipped at load time if their MCP is not connected:
- No context tokens wasted on a skill that cannot function
/contextshould indicate the skill was not loaded and why (e.g.contentful [skipped — MCP unavailable])
Why this matters
MCP servers can silently disconnect (network issue, config change, server restart). When that happens:
- The skill still occupies context on every turn — burning tokens for zero benefit
- The problem is not visible until the skill is invoked and fails
Skipping dependent skills entirely is the correct behaviour: it saves context, gives an immediate signal that something is wrong, and avoids misleading the model into thinking a tool is available when it is not.
Suggested approach
- Skills declare their MCP dependencies (e.g. a
requires_mcpfield in the skill definition) - At startup, Claude Code cross-references declared dependencies against connected MCP servers
- Skills with unmet dependencies are not loaded;
/contextsurfaces them as skipped with a reason
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗