fall-mcp-bridge
v1 · prime 593 · MIT

The substrate-MCP wrapper.
Provider lock-in dies here.

One MCP server. Eight LLM adapters. Any MCP client — Claude Code, Cursor, Cline, Windsurf, custom — can call any model — local or cloud — through the same interface. Survive any model deprecation. Mix tiers per call. Stay sovereign.

"The reason you use claude is because you can't be bothered to figure out how to make an mcp server wrapper for any local model you run so you rely on claude code's library and agent architecture. Taking away Fable 5 didn't take away anything you didn't already take from yourself." — Thomas Frumkin · 2026-06-12

He's right. The agent-runtime and the model are different things. The wrapper between them is ~300 lines of node. This is that wrapper.

↗ source install configure

The 8 adapters

ollama
local Ollama runtime · :11434
llamacpp
llama.cpp HTTP server · :8080
mlx
Apple Silicon MLX-LM · :8000
lmstudio
LM Studio local server · :1234
anthropic
Claude · BYOK
openai
GPT + OAI-compatible · BYOK
openrouter
100+ models · one BYOK
femto
Thomas's FemtoLLM cube · :1163

The 3 MCP tools exposed

complete({ model, prompt, system?, temperature?, max_tokens? })
   → routes via config · returns { text, tier, model_used, latency_ms, tokens_in, tokens_out, fellBack }

list_models()
   → { ollama: [...], anthropic: [...], openrouter: [...], _routes: [...] }

probe()
   → { ollama: {ok:true}, femto: {ok:false}, anthropic: {ok:true}, ... }

Wire it in (Claude Code)

{
  "mcpServers": {
    "fall-bridge": {
      "command": "node",
      "args": ["/path/to/fall-mcp-bridge/server.mjs"],
      "env": {
        "FALL_MCP_ANTHROPIC_KEY": "sk-ant-…",
        "FALL_MCP_OPENROUTER_KEY": "sk-or-…"
      }
    }
  }
}

Same shape for Cursor, Cline, Windsurf — the bridge is stdio.

What this unlocks

Part of v20.3

The bridge strengthens the §4 COMPUTE sovereignty layer · collapses si-didy's T2+T3 cascade rows into one MCP call (§6) · brings the FemtoLLM cube into the bridge's address space (§20) · is itself a wedge against model-provider lock-in (§21) · embodies the Init axiom 📐🦆 — whatever brain answered, the response IS init (§22).