Skip to content

[Feature Request] MCP Tool Search - Lazy Loading for 85% Token Reduction #9350

@dewu0224

Description

@dewu0224

Feature Request: MCP Tool Search - Lazy Loading for Token Optimization

Summary

Implement MCP Tool Search functionality to enable lazy loading of MCP server tools, dramatically reducing token consumption and improving context efficiency for multi-MCP server setups.

Problem Statement

Currently, OpenCode loads all tool definitions from all connected MCP servers at session startup. This causes severe context window bloat:

  • 7+ MCP servers: Consume 67,000+ tokens before any user interaction
  • Single Docker MCP server (135 tools): Consumes 125,000 tokens
  • Typical 4-server setup: Burns 51,000 tokens (46.9% of context window)
  • Result: Users lose 50-70% of their 200K context limit before writing a single prompt

This creates a brutal tradeoff: either limit MCP servers to 2-3 core tools, or accept that half your context budget disappears before work begins.

Proposed Solution: MCP Tool Search (Lazy Loading)

Implement a lazy loading system that:

  1. Loads only a lightweight search index (~5K tokens) at startup instead of all tool definitions
  2. Dynamically fetches tool definitions only when needed for a specific task
  3. Automatically activates when tool descriptions would exceed 10% of available context
  4. Maintains backward compatibility with all existing MCP servers

Expected Benefits

Metric Before After Improvement
MCP Tools Token Consumption 39.8K tokens (19.9%) ~5K tokens (2.5%) 85% reduction
Available Context 92K tokens (46%) 195K tokens (97.5%) 112% increase
4-Server Setup 51K tokens 8.5K tokens 46.9% reduction
Tool Selection Accuracy (Opus 4.5) 79.5% 88.1% 10.8% increase
Tool Selection Accuracy (Opus 4) 49% 74% 51% increase

Implementation Approach

1. Core Architecture

  • Create a lightweight tool registry/index at session startup
  • Implement on-demand tool definition loading via similarity search (Regex or BM25)
  • Use serverInstructions field metadata for intelligent tool discovery

2. Configuration Options

// Global settings
{
  "enable_tool_search": true  // Auto-enabled when beneficial
}

// Per-MCP server configuration
{
  "mcpServers": {
    "my-server": {
      "command": "node",
      "args": ["/path/to/server.js"],
      "serverInstructions": "Database operations for PostgreSQL including queries, schema management, and data migrations. Use for any database-related tasks."
    }
  }
}

3. Activation Logic

  • Automatic: Activates when tool descriptions > 10% of context window
  • Manual Override: Allow users to enable/disable via settings
  • Per-Server Control: Option to disable for specific high-frequency tools

4. User Experience

  • Transparent operation - no workflow changes required
  • Monitor usage via /context and /mcp commands
  • Clear indication of which tools are loaded on-demand

Technical Implementation Details

Search Index Creation

  • Index tool names, descriptions, and serverInstructions
  • Use BM25 or Regex-based similarity search for matching user queries to tools
  • Keep index under 5K tokens total

On-Demand Loading

  • Intercept tool invocation requests
  • Query index for relevant tools
  • Load only matched tool definitions into context
  • Cache loaded tools for session duration

Server Instructions Enhancement

{
  "serverInstructions": "Database operations for PostgreSQL including queries, schema management, and data migrations. Use for any database-related tasks. Supports SQL queries, table creation, schema migration, and backup operations."
}

References

Use Cases

  1. Multi-MCP Users: Run 7+ servers without context exhaustion
  2. Complex Workflows: Maintain conversation history across extended sessions
  3. Tool-Rich Environments: Access 100+ tools without performance penalty
  4. Enterprise Deployments: Scale tool integrations without token constraints

Priority

High - This is a critical feature for scalability and user experience. It removes the primary constraint limiting MCP adoption and enables more sophisticated agent workflows.

Additional Considerations

  • Backward Compatibility: Must work with all existing MCP servers
  • Performance: Search operations should be fast (<100ms)
  • Monitoring: Provide tools to track token savings
  • Migration Path: Smooth transition from current behavior

Related Features

  • Programmatic Tool Use
  • Advanced Tool Discovery
  • Context Optimization
  • MCP Server Management

This feature would significantly enhance OpenCode's ability to handle complex, multi-tool workflows while maintaining optimal context efficiency. The implementation approach follows established patterns from Anthropic's Claude Code and represents a significant leap forward in AI coding agent architecture.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions