Skip to main content
mcp context optimization rfc open-source

MCP Context Efficiency: Full-Bundle to On-Demand

Deep dive into MCP's context consumption problem and two community-proposed solutions: Context Isolation and Progressive Disclosure

January 13, 2026 4 min read By Claude World

In early 2026, enabling 7 MCP servers consumed 33.7% of your context—before you even started working. Current Claude Code builds defer tool schemas and load them on demand via ToolSearch, largely eliminating this up-front cost.

This article shares Claude World Taiwan community’s deep analysis of MCP context efficiency and our proposed solutions.

The Problem: MCP Context Consumption

We measured token consumption for common MCP servers:

MCP ServerToken Cost
GitHub (27 tools)~18,000
AWS MCP servers~18,300
Cloudflare~15,000+
Sentry~14,000
Playwright (21 tools)~13,647
Supabase~12,000+
7 servers total67,300 (33.7%)

Average: 550-850 tokens per tool.

The Modern Knowledge Worker’s Dilemma

We use multiple platforms simultaneously: GitHub, Jira, Linear, Slack, Vercel, Sentry…

This creates a false choice:

  • Install all: 50%+ context consumed at session start
  • Separate by project: Defeats Claude Code’s value as a unified command center

Solution 1: Context Isolation (RFC Proposal)

We submitted RFC #17668 to Anthropic, proposing Context Isolation architecture.

Core Concept

Unlike traditional lazy loading, Context Isolation has a key difference:

AspectTraditional Lazy LoadingContext Isolation
Main ContextLoaded when needed, gets pollutedAlways stays clean
Load TimingRuntime dynamic loadingLoad at fork creation
ComplexityHigh (state management)Low (reuses context: fork)

Architecture Design

Main Session (Lean)

 ├── Base MCPs: filesystem, memory
 │   (minimal context footprint)

 ├── Task: database-specialist (forked)
 │   └── Loads: postgres, redis (isolated)

 └── Skill: /deploy (forked)
     └── Loads: vercel, github (isolated)

Implementation

MCP side: Add lazy flag in settings.json

{
  "mcpServers": {
    "memory": { "command": "...", "lazy": false },
    "github": { "command": "...", "lazy": true },
    "postgres": { "command": "...", "lazy": true }
  }
}

Agent/Skill side: Declare required MCPs in frontmatter

---
name: database-specialist
description: Database operations expert
tools: [Read, Bash, Grep]
mcp:
  required: [postgres]
  optional: [redis]
context: fork
---

Why MCP Over Pure Scripts?

MCP’s value isn’t just tools—it’s centralized credential management:

AspectMCPScripts + .env
Credential ManagementCentralized in settings.jsonScattered everywhere
SecurityEnvironment isolationRisk of log exposure
Token RefreshAutomaticManual implementation
Error HandlingStandardized responsesDifferent per API

Solution 2: Progressive AgentSkill (Community Open Source)

Community member CabLate developed mcp-progressive-agentskill, implementing three-layer progressive disclosure:

Three-Layer Architecture

  • Layer 1: List available MCP servers (~50-100 tokens)
  • Layer 2: Show tool names and descriptions for selected server (~200-400 tokens)
  • Layer 3: Load complete tool specs (~300-500 tokens/tool)

Efficiency Calculation

For an MCP with 20 tools where you need only 2:

MethodToken Cost
Traditional full-bundle~6,000 tokens
Progressive disclosure~850 tokens
Savings86%

Technical Architecture

AI Scripts (Python) → HTTP API → MCP Daemon → MCP Servers

The daemon maintains long-running connections and provides HTTP interface for on-demand tool access.

Quick Start

# Install
python scripts/setup.py

# Start daemon
python scripts/daemon_start.py --no-follow

# List tools
python scripts/mcp_list_tools.py --server playwright

# Call a tool
python scripts/mcp_call.py --server playwright --tool browser_navigate \
  --params '{"url":"https://example.com"}'

Current Recommendations

Update (mid-2026): Claude Code now defers tool schemas and loads them on demand via ToolSearch, so MCP servers no longer consume context up front. The workarounds below are kept for historical context.

Before official on-demand loading arrived, our recommendations were:

1. Categorize Your MCPs

Essential (lazy: false):
- filesystem
- memory
- sequential-thinking

Heavy (consider removing or wait for lazy):
- github (18k tokens)
- aws (18k tokens)
- sentry (14k tokens)

2. Use Project Scope

# Enable specific MCP only for projects that need it
claude mcp add --scope project postgres -- ...

3. Try Progressive AgentSkill

For heavy MCP users, CabLate’s solution is available now.

Join the Discussion


This article is compiled from technical discussions in the Claude World Taiwan community. We’re a group of developers focused on advanced Claude Code usage. Join our Discord to discuss more.