Context & MCP Tradeoffs
MCP servers are powerful, but they come with hidden costs. Understanding these tradeoffs will help you use them effectively.
The Problem: Context Rot
Section titled “The Problem: Context Rot”Every piece of information in Claude’s context window competes for attention. Research shows that LLM performance degrades as context fills up—a phenomenon called context rot.
What the Research Shows
Section titled “What the Research Shows”- Performance degrades before you hit context limits
- Complex reasoning tasks suffer most
- More context ≠ better answers
- There’s an “optimal context window” much smaller than the maximum
How MCPs Affect Context
Section titled “How MCPs Affect Context”MCPs add context in two ways:
1. Tool Definitions
Section titled “1. Tool Definitions”Each active MCP adds its tool definitions to Claude’s context:
MCP: context7├── search_docs tool definition (~500 tokens)├── get_documentation tool definition (~400 tokens)└── list_libraries tool definition (~300 tokens)
Total: ~1,200 tokens per MCP (just for definitions!)2. Tool Responses
Section titled “2. Tool Responses”When Claude uses an MCP, the response goes into context:
> use context7 to get FastAPI docs
[MCP Response: 8,000 tokens of documentation]That documentation stays in context for the entire conversation.
The Math
Section titled “The Math”| Component | Tokens |
|---|---|
| Your CLAUDE.md | 500-2,000 |
| System prompt | ~3,000 |
| Each MCP (definitions) | 500-1,500 |
| Each MCP response | 2,000-20,000 |
| Your conversation | Variable |
With 5 MCPs active and a few queries:
- 5 MCPs × 1,000 tokens = 5,000 tokens
- 3 MCP responses × 8,000 = 24,000 tokens
- System + CLAUDE.md = 4,000 tokens
- Overhead: 33,000 tokens before you ask a coding question
The 40% Rule
Section titled “The 40% Rule”Why 40%?
Section titled “Why 40%?”- Leaves room for Claude’s reasoning
- Maintains attention on recent/relevant information
- Prevents “lost in the middle” effects (Claude forgetting middle context)
How to Check
Section titled “How to Check”> /contextOr watch for warning signs:
- Claude forgets earlier instructions
- Responses become less coherent
- Claude asks questions you already answered
Mitigation Strategies
Section titled “Mitigation Strategies”1. Minimize Active MCPs
Section titled “1. Minimize Active MCPs”Only enable MCPs you’re actively using:
# Morning: Working on frontendclaude mcp enable playwrightclaude mcp disable postgres
# Afternoon: Database workclaude mcp enable postgresclaude mcp disable playwright2. Use MCPs Strategically
Section titled “2. Use MCPs Strategically”Don’t fetch documentation you don’t need:
# Bad: Fetches entire FastAPI docs> use context7 to get FastAPI documentation
# Good: Fetches only what you need> use context7 to find FastAPI's dependency injection syntax for database sessions3. Start Fresh Sessions
Section titled “3. Start Fresh Sessions”After heavy MCP usage:
# Clear and restart> /clear
# Or start a new sessionexitclaude4. Use /compact Proactively
Section titled “4. Use /compact Proactively”> /compactThis summarizes your conversation, including MCP responses, into a smaller context.
5. Be Explicit About What You Need
Section titled “5. Be Explicit About What You Need”# Bad: Returns everything> query the database for user statistics
# Good: Returns minimal data> query: SELECT COUNT(*) as total, status FROM users GROUP BY statusMonitoring Context Health
Section titled “Monitoring Context Health”Signs of Context Rot
Section titled “Signs of Context Rot”- Forgetting: Claude asks about things you already discussed
- Inconsistency: Responses contradict earlier decisions
- Confusion: Claude conflates different parts of the conversation
- Degradation: Quality drops noticeably
Recovery
Section titled “Recovery”When you notice these signs:
# Option 1: Compact and continue> /compact
# Option 2: Start fresh with context> /clear> Here's what we were working on: [brief summary]
# Option 3: New session for new taskexitclaude