Implements external LLM routing via opencode CLI for: - GitHub Copilot (gpt-5.2, claude-sonnet-4.5, claude-haiku-4.5, o3, gemini-3-pro) - Z.AI (glm-4.7 for code generation) - OpenCode native (big-pickle) Components: - mcp/llm-router/invoke.py: Main router with task-based model selection - mcp/llm-router/delegate.py: Agent delegation helper (respects external mode) - mcp/llm-router/toggle.py: Enable/disable external-only mode - mcp/llm-router/providers/: CLI wrappers for opencode and gemini Features: - Persistent toggle via state/external-mode.json - Task routing: reasoning -> gpt-5.2, code-gen -> glm-4.7, long-context -> gemini - Claude tier mapping: opus -> gpt-5.2, sonnet -> claude-sonnet-4.5, haiku -> claude-haiku-4.5 - Session-start hook announces when external mode is active - Natural language toggle support via component registry Plan: gleaming-routing-mercury Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
MCP Integrations
Model Context Protocol servers and delegation helpers.
Directory Structure
mcp/
├── gmail/ # Gmail OAuth setup and venv
│ ├── venv/ # Python virtual environment
│ └── ...
└── delegation/ # Tiered delegation helpers
├── gmail_delegate.py
└── gcal_delegate.py
Gmail Integration
Setup
The Gmail integration uses a Python virtual environment with gmail-mcp:
# Create venv (one time)
cd ~/.claude/mcp/gmail
python3 -m venv venv
source venv/bin/activate
pip install gmail-mcp
# Credentials
# OAuth credentials at: ~/.gmail-mcp/credentials.json
# Token cached at: ~/.gmail-mcp/token.json
Usage
Skills reference the venv directly:
~/.claude/mcp/gmail/venv/bin/python script.py
Delegation Helpers
Helpers that implement tiered model delegation:
| Helper | Purpose | Tiers |
|---|---|---|
gmail_delegate.py |
Gmail operations | Haiku (list), Sonnet (summarize) |
gcal_delegate.py |
Calendar operations | Haiku (list), Sonnet (analyze) |
Pattern
GMAIL_PY=~/.claude/mcp/gmail/venv/bin/python
HELPER=~/.claude/mcp/delegation/gmail_delegate.py
# Haiku tier - no LLM, just fetch
$GMAIL_PY $HELPER check-unread --days 7
# Sonnet tier - spawns claude --model sonnet
$GMAIL_PY $HELPER summarize --query "from:github.com"
Adding MCP Servers
For proper MCP servers (vs. delegation helpers):
- Create server in
mcp/server-name/ - Add to
.mcp.jsonorplugin.json:
{
"mcpServers": {
"server-name": {
"command": "node",
"args": ["${CLAUDE_PLUGIN_ROOT}/mcp/server-name/index.js"]
}
}
}
Note
Current integrations use direct Python API calls rather than MCP protocol. This works but doesn't leverage MCP's tool registration and permissions.
Future improvement: Convert to proper MCP servers.