Fix MCP tool overload exceeding 100 tools #1

Closed
opened 2026-04-04 12:02:14 +02:00 by pplate · 0 comments
Owner

Problem

Total MCP tools registered across all servers exceeded practical limits (105+), causing prompt congestion and increased token usage in Roo Code.

Server breakdown:

Server Tools
gitea (forgejo-mcp) 48
playwright (@playwright/mcp) 25
git (mcp-server-git) ~10
filesystem ~15
webscraper 7
mcp-image-gen 4
bigmind ~25
Total ~134

⚠️ Important: alwaysAllow does NOT help

PR #2 is ineffective. alwaysAllow in .roo/mcp.json only controls which tools execute without a confirmation prompt — it does not remove tools from the system prompt context. Roo Code loads ALL tools from ALL enabled MCP servers regardless.

Real Workarounds (as of Roo Code v3.7.8)

  1. Disable entire MCP servers via the Roo Code MCP panel (uncheck) — removes all tools from that server from context
  2. "Foot Gun System Prompting" (v3.7.8+) — removes automated mode switching and tool calling instructions
  3. Disable MCP entirely via "Enable MCP Servers" toggle — removes all MCP from system prompt
  4. Wait for Issue #5346 — feature request for custom modes to restrict specific tools/servers via patterns (e.g., delete_*)
  5. Wait for Issue #5373 — on-demand tool specs instead of upfront loading (would significantly reduce token usage)

Current Action

For now, the practical fix is to disable the playwright server (least used, most tools in practice) and disable forgejo-mcp when not doing Gitea work. These can be toggled in the Roo Code MCP panel without editing mcp.json.

PR #2 should be closed as superseded — the alwaysAllow restriction has no effect on tool count in context.

## Problem Total MCP tools registered across all servers exceeded practical limits (105+), causing prompt congestion and increased token usage in Roo Code. **Server breakdown:** | Server | Tools | |--------|-------| | gitea (forgejo-mcp) | 48 | | playwright (@playwright/mcp) | 25 | | git (mcp-server-git) | ~10 | | filesystem | ~15 | | webscraper | 7 | | mcp-image-gen | 4 | | bigmind | ~25 | | **Total** | **~134** | ## ⚠️ Important: alwaysAllow does NOT help **PR #2 is ineffective.** `alwaysAllow` in `.roo/mcp.json` only controls which tools execute without a confirmation prompt — it does **not** remove tools from the system prompt context. Roo Code loads ALL tools from ALL enabled MCP servers regardless. ## Real Workarounds (as of Roo Code v3.7.8) 1. **Disable entire MCP servers** via the Roo Code MCP panel (uncheck) — removes all tools from that server from context 2. **"Foot Gun System Prompting"** (v3.7.8+) — removes automated mode switching and tool calling instructions 3. **Disable MCP entirely** via "Enable MCP Servers" toggle — removes all MCP from system prompt 4. **Wait for Issue #5346** — feature request for custom modes to restrict specific tools/servers via patterns (e.g., `delete_*`) 5. **Wait for Issue #5373** — on-demand tool specs instead of upfront loading (would significantly reduce token usage) ## Current Action For now, the practical fix is to **disable the playwright server** (least used, most tools in practice) and **disable forgejo-mcp** when not doing Gitea work. These can be toggled in the Roo Code MCP panel without editing mcp.json. PR #2 should be closed as superseded — the `alwaysAllow` restriction has no effect on tool count in context.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: pplate/pi_mcps#1