Skip to content

Context & MCP Tradeoffs

MCP servers are powerful, but they come with hidden costs. Understanding these tradeoffs will help you use them effectively.

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.

  • 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

MCPs add context in two ways:

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!)

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.

ComponentTokens
Your CLAUDE.md500-2,000
System prompt~3,000
Each MCP (definitions)500-1,500
Each MCP response2,000-20,000
Your conversationVariable

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
  • Leaves room for Claude’s reasoning
  • Maintains attention on recent/relevant information
  • Prevents “lost in the middle” effects (Claude forgetting middle context)
> /context

Or watch for warning signs:

  • Claude forgets earlier instructions
  • Responses become less coherent
  • Claude asks questions you already answered

Only enable MCPs you’re actively using:

Terminal window
# Morning: Working on frontend
claude mcp enable playwright
claude mcp disable postgres
# Afternoon: Database work
claude mcp enable postgres
claude mcp disable playwright

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 sessions

After heavy MCP usage:

Terminal window
# Clear and restart
> /clear
# Or start a new session
exit
claude
> /compact

This summarizes your conversation, including MCP responses, into a smaller context.

# Bad: Returns everything
> query the database for user statistics
# Good: Returns minimal data
> query: SELECT COUNT(*) as total, status FROM users GROUP BY status
  1. Forgetting: Claude asks about things you already discussed
  2. Inconsistency: Responses contradict earlier decisions
  3. Confusion: Claude conflates different parts of the conversation
  4. Degradation: Quality drops noticeably

When you notice these signs:

Terminal window
# 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 task
exit
claude