GitHub's MCP server tools are VERBOSE:
- Long-winded descriptions
- Repeated explanatory text
- Schema property descriptions that explain the obvious
- Unnecessary metadata
Example: One create_issue tool = 483 tokens
Proxy MCP server with aggressive optimization:
- Strip verbose fluff - "This tool allows you to" → ""
- Compress terms - "GitHub repository" → "repo"
- Truncate descriptions - Keep first sentence only
- Remove schema descriptions - Type info is enough
- Keep only essential fields - type, properties, required
Original: 1930 bytes (~483 tokens)
Optimized: 638 bytes (~160 tokens)
Savings: 66.9% reduction
Original: ~24,150 tokens
Optimized: ~8,000 tokens
Savings: ~16,150 tokens (67% reduction)
Without optimization:
- Tool list: 24,150 tokens
- Conversation: 10,000 tokens
- Total: 34,150 tokens
With our proxy:
- Tool list: 8,000 tokens (optimized!)
- Conversation: 10,000 tokens
- Total: 18,000 tokens
Savings: 16,150 tokens per session = 47% overall reduction!
- ✅ More messages before hitting context limits
- ✅ Faster AI responses (less to process)
- ✅ Better context retention
- ✅ Lower costs (fewer tokens = less $$$)
- ✅ Fewer rate limit hits
- ✅ Better performance at scale
- ✅ Reduced API costs
- ✅ Improved user experience
Our proxy MCP server (proxy-server.js):
- Spawns GitHub MCP as child
- Intercepts tool list responses
- Optimizes descriptions and schemas
- Returns compressed tools to CLI
- Transparent to end users
// Before
"Create a new issue in a GitHub repository. This tool allows you to
create issues with a title, body, labels, assignees, milestone, and
project. The issue will be created in the repository specified by
the owner and repo parameters. You must have write access to the
repository to create issues. The body parameter supports GitHub
Flavored Markdown for formatting."
// After
"Create a new issue in a repo."// Before
{
owner: {
type: "string",
description: "The account owner of the repository. The name is
not case sensitive and must be a valid GitHub
username or organization name. This is typically
your username or the organization that owns the
repository."
}
}
// After
{
owner: { type: "string" }
}This optimization could be:
- Merged into GitHub MCP - Benefit everyone
- Adopted by Copilot CLI - Native optimization
- Used by community - Via our proxy
Status: Working in ~/copilot-plugin-mcp-server/proxy-server.js
cd ~/copilot-plugin-mcp-server
node test-optimization.jsSee the 67% reduction in action!
- Test with real GitHub MCP server
- Measure actual token usage in CLI
- Submit optimization ideas to GitHub
- Release community proxy for general use
Built by: Captain CP & Daniel Elliott
Date: 2026-01-19
License: MIT
Approach: Community optimization, not GitHub proposal