Odel
fusion mcp

fusion mcp

Local
@jolymmilesPythonUpdated 2mo ago

Local Fusion MCP: panel->judge->synthesis on the Claude CLI subscription, no OpenRouter.

fusion-mcp

Local Fusion MCP server — replicates the OpenRouter Fusion mechanism on your local Claude CLI subscription. No OpenRouter, no separate token bill, one wallet.

Instead of dispatching to many vendors, it fans out several headless claude -p calls, each given a distinct analytical lens, then runs a judge pass and a synthesis pass.

Pipeline

StageNameWhat
1PanelN parallel claude -p calls, diverse lenses (pragmatist / skeptic / researcher / architect), web search on
2JudgeOne call: consensus / contradictions / gaps / blind spots
3SynthesisOne call: final answer grounded in the judge analysis

Tool

fusion_research(question, panel="default")

Panels:

  • default / frontier — Opus 4.8
  • budget — haiku + sonnet (use for frequent calls)

Install

Recommended — from PyPI via uvx (no manual venv, works in every folder):

claude mcp add -s user fusion -- uvx --from fusion-mcp fusion-mcp

-s user registers the server for all folders; uvx fetches fusion-mcp from PyPI on first run.

Plain pip works too:

pip install fusion-mcp
claude mcp add -s user fusion -- fusion-mcp

From source (clone, for hacking on it):

git clone https://github.com/Jolymmiles/fusion-mcp.git
cd fusion-mcp && python3 -m venv .venv && .venv/bin/pip install -e .
claude mcp add -s user fusion -- $(pwd)/.venv/bin/python $(pwd)/fusion_mcp.py

Requirements

Needs the Claude CLI (claude) on PATH and an active Claude Pro/Max subscription — the server fans out local claude -p calls. Without it the tool will not run.

Cost

Each call ≈ panel_size + 2 full Claude turns, 2-3x slower than a single call. Binding limit is the subscription request rate / usage quota, not dollars. Call sparingly — reserve for expensive questions: architecture decisions, comparing approaches, best-practice research.

Statusline (optional)

Server writes an atomic JSON heartbeat to $XDG_RUNTIME_DIR/fusion-mcp/state.json. Reader fusion-status.sh (bash + jq) prints e.g. 🔮 fusion[panel] 2/3 panel. Wire into statusLine.command in settings.json.