The two-stage loading of MCP
In Step 0, we saw /debug load MCP with ToolSearch. This chapter digs into the mechanism of that "load each time."
Why not just keep everything loaded
There are many kinds of MCP servers. Fetching official docs, structured reasoning, checking AWS specs, browser operations — the uses are varied. Keeping all of these definitions active at all times consumes a large amount of context just for the listing.
So in this environment, MCP is designed to be brought to the front only when needed. The control is split into two stages.
| Stage | What it controls | Operation |
|---|---|---|
| Schema level | Whether the tool definition is loaded into context | Loaded each time with ToolSearch (deferred tool) |
| Process level | Whether to connect to the MCP server | Registered with claude mcp add or a config file; check status and authenticate with /mcp |
Schema level — deferred tools and ToolSearch
The deferred tool and ToolSearch are built-in Claude Code mechanisms (📦). Normally, an MCP tool is in a state where only its name is visible and its definition is not loaded. This is called a deferred tool. Even if you know the name, there is no parameter shape (schema), so it cannot be called as is.
Just before use, you take out the schema with ToolSearch.
# 1. Load the schema
ToolSearch(query="select:mcp__sequential-thinking__sequentialthinking", max_results=1)
# 2. From here on, it can be called as an ordinary tool
Besides specifying a name with select:<name> to load it, you can also find it by keyword search. Rather than "load everything," you "take it out when you use it" — with this single move, the context cost of tool definitions is kept to only what is needed.
Loading via the usage table and autonomous judgment
You do not type ToolSearch by hand every time. CLAUDE.md (🔧) has a usage table that defines "which MCP to use for which kind of use," and the model judges autonomously from the topic and task content whether the table applies, then loads accordingly. The agreement is to declare at the outset when loading, like "I will check the library spec with context7."
| Use | MCP | What triggers loading |
|---|---|---|
| Complex judgment, structured reasoning | sequential-thinking | When entering a judgment that needs structuring, such as trade-off analysis or multi-hypothesis debugging |
| AWS behavior and constraints | aws-knowledge | When entering a topic that needs AWS specs verified |
| Screen and performance verification | chrome-devtools | When confirming the live screen after a UI fix, or measuring Core Web Vitals |
| Checking library/framework specs | context7 | When you judge that checking the latest spec is needed (the MCP-first principle) |
Previously, compound phrases in utterances like "architecture design" or "large-scale refactoring" were enumerated as triggers for automatic loading. But misses occurred where it was enumerated yet did not fire, and the maintenance cost of the trigger vocabulary kept piling up. So in June 2026 the enumeration was abolished, delegating instead to the usage table + the model's autonomous judgment + the opening declaration. The old trigger vocabulary is archived in a reference file, so it can be brought back if the delegation does not work well. Not just adding mechanisms, but folding up the ones that do not work while leaving a record — this too is part of how a harness is grown.
Note that the skill utterance triggers we saw in From utterance to skill launch and the compound-phrase detection in promote-ultracode.sh are still in the compound-phrase style. What was switched to delegation is only the MCP loading decision; skills and hooks maintain the policy of "responding only to compound phrases with clear intent."
The key points are as follows.
- MCP is controlled in two stages: "schema level (ToolSearch)" and "process level (connection)"
- Normally only the name is visible as a deferred tool, and you take out the schema with
ToolSearchbefore calling - The loading decision is the model's autonomous judgment based on the usage table, and the use is declared at the outset
- The former enumeration of compound-phrase triggers was abolished in favor of delegation. The compound-phrase triggers on the skill and hook side are maintained.
Next, in How memory works, we look at the three layers that retain lessons across sessions.