An r/VibeCodeDevs thread documented two MCPs in one Claude Code session: Linear official MCP (hosted, OAuth) for tickets + Lanes' local MCP for board state. This walks adding Scavio for the third slot — out-of-repo grounding.
Prerequisites
- Claude Code CLI
- Linear workspace
- Lanes desktop app (or another local-board MCP)
- Scavio API key
Walkthrough
Step 1: Attach Linear MCP (hosted, OAuth)
One CLI line.
claude mcp add linear https://mcp.linear.app/mcp
# Browser opens for OAuth on first callStep 2: Attach Lanes local MCP (or equivalent)
Local board state.
claude mcp add lanes http://localhost:5353
# Lanes desktop app must be runningStep 3: Attach Scavio MCP for out-of-repo grounding
Web search, docs, Stack Overflow.
claude mcp add scavio https://mcp.scavio.dev/mcp --header 'x-api-key: $SCAVIO_API_KEY'Step 4: Set explicit routing rules
Prevents tool confusion.
// 'For ticket lookups, call linear. For local board state and session scrollback, call lanes. For framework docs, GitHub issues, Stack Overflow, or any out-of-repo info, call scavio.'Step 5: Start a session from a Linear ticket
End-to-end flow.
// 'Open ticket ENG-1234 from Linear. Read the description. Show me the relevant files in repo via lanes/git. Check the related Stack Overflow thread the ticket links via scavio.'Step 6: Close-loop: write the change, post comment back to Linear
Linear MCP supports comment.
// 'After committing, add a comment to ENG-1234 summarizing the fix.'Python Example
# Per-ticket cost: ~$0.05-0.20 in Scavio + LLM tokens depending on session length.JavaScript Example
// MCP setup, not application code.Expected Output
Claude Code session driven from Linear tickets, with local repo state via Lanes and out-of-repo grounding via Scavio. Three named MCPs, no overlap, clean tool surface.