MCP server for Anthropic's Claude Fable, Opus 5, and multi-model reasoning councils.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
One-click editor setup isnβt available for this listing yet β we donβt have a confirmed install command, and weβd rather show nothing than point your editor at the wrong package or host. Follow the projectβs own setup instructions, linked above.
ask-fable is a portable, installable MCP (Model Context Protocol) server for AI coding agents. It works in Claude Code, OpenCode, Kimi Code, Grok, Cursor, Codex, and any other harness that can spawn a local MCP server.
It gives those agents guarded code and architecture reasoning from Anthropic's Claude Fable (the newest claude-fable-*), Claude Opus 5 (claude-opus-5), MiniMax (MiniMax-M3), Gemini, Codex, GLM, DeepSeek, Grok, Kimi, Ollama Cloud models, and any model on your own LM Studio server. It can query one backend, synthesize a parallel council, run an ordered refinement chain, or stage a structured adversarial debate.
Fable and Opus 5 use Claude Code's existing OAuth session (through the Agent SDK,
with the claude CLI as a fallback). MiniMax, Gemini, Codex, Grok, and local Ollama
similarly reuse authenticated local CLIs. LM Studio is a LAN backend that needs no
key: ask_model(provider="lmstudio") loads a model on demand with a real context window and does not
evict a resident model. GLM, DeepSeek, and Atlas Cloud are
optional HTTP backends that need server-side API keys.
| If you need to⦠| Use |
|---|---|
| Ask one trusted coding model, with follow-up memory | ask (Fable; add oracle="opus" for Claude Opus) |
| Ask a cheap, fast Anthropic model (high-volume, single-turn) | ask_model(provider="sonnet") (Claude Sonnet 5) |
| Compare independent answers in parallel | ask_council |
| Draft, critique, then decide in order | ask_chain |
| Stress-test a high-impact decision | ask_debate |
| Check an answer you already have | ask_verify |
| Grind a claim down to what survives evidence | ask_falsify |
| Brainstorm an open question, models arguing to divergence | ask_conference |
| Select a task-matched Atlas Cloud model | list_models(provider="atlas") β ask_model(provider="atlas") |
| Atlas council with GPT-5.6 Sol adjudicating | ask_council(provider="atlas") |
| Ask a model on your LAN LM Studio server | ask_model(provider="lmstudio") (one model) / ask_council(provider="lmstudio") (local panel, Fable synthesizes) |
| Check the GPU or free a local model | host_status / unload_lms_model |
| Reuse large code context without pasting it again | context(op="write", β¦) + context_ref |
| Investigate a request after it ran | trace_list + trace_get |
Start with ask for one hard question. Escalate to a council, chain, or
debate only when the decision warrants the extra latency and cost.
ask-fable gives an MCP client six ways to reason:
| Mode | What happens | Best for |
|---|---|---|
| Ask | One model answers directly; Fable can remember a session | Everyday debugging and design questions |
| Council | Several models answer in parallel; Fable reconciles them | Comparing independent opinions |
| Chain | Models work in order: draft β critique β decide | Deliberate refinement and cost-tiered escalation |
| Debate | A proposer and opponent test claims; Fable adjudicates | Contentious, hard-to-reverse decisions |
| Falsify | Claims are asserted, attacked, and resolved by a code clerk; the ledger persists across calls | Grinding a checkable claim down to what receipts actually support |
| Conference | Models argue together over rounds; a rapporteur maps the disagreement | Open-ended ideation |
The same guard, context bus, cache, audit trail, and tracing layer wrap every mode. Backends are optional: use Fable alone, call a specific provider, or mix Fable, Opus 5, MiniMax, Gemini, Codex, Grok, GLM, DeepSeek, Kimi, Ollama, LM Studio, Atlas Cloud, and OpenRouter. Unavailable council members are reported and skipped instead of failing the whole request.
A real example β ask_debate, lazy token bucket vs. background refill task
for a per-user rate limiter (resolution: adjudicated):
Use the lazy token bucket. Do not build the background refill task β the timer only approximates at tick granularity what the lazy design computes exactly.
The debate surfaced traps neither side opened with (a 100 req/min bucket permits ~199 requests in a worst-case rolling minute; TTL eviction alone doesn't bound memory) and closed with four ship-it fixes. More real calls, one per mode: docs/EXAMPLES.md.
The cheapest real second opinion is the twin token β the twin flames.
It expands to both Anthropic reasoners at once, Fable + Claude Opus 5, and
both ride the same OAuth session as ask, so a two-model cross-check costs you
no provider keys and no extra setup:
Five features make the result useful to an agent, not just readable by a human:
Structured sidecar β every answer carries a machine-readable
sidecar ({recommendation: apply|investigate|reject|needs_more_context, confidence, needs_context}) next to the prose, so an agent acts on it directly.
When the model needs more, a followup tells it exactly what to paste, and a
per-session terminator stops an unbounded re-ask loop (status:"context_exhausted").
Context bus β context(op="write", β¦) a big codebase context ONCE under a key, then
pass context_ref on any ask tool (or council) to pull it in instead of
re-pasting. Shared by every agent on the server; context_read() lists what's
stored and context_read(key=β¦) fetches a blob, while context's pack/delete
ops round it out.
Council consensus β councils return a consensus signal
(strong | partial | divergent | unknown) + material_disagreement computed
from the panel's recommendations, each sources entry shows that model's
recommendation, and the synthesis is anonymized (Expert A/B, Fable last) to
blunt self-preference bias. The signal counts labs, not models: a panel that
agreed but spans one training lineage (e.g. several Anthropic models) is
downgraded from strong, and independent_labs reports how many distinct labs
answered β same-lab models don't fail independently, so their agreement isn't
independent evidence.
Correlated traces β every call includes a trace_id; inspect the ordered
request timeline without storing raw prompts in the default safe mode.
Session hub β successful turns from local MCP instances are mirrored into a shared, visibility-only dashboard. Agents can use the same label to coordinate work without that shared history ever becoming model context.
A request enters through MCP, resolves any reusable context_ref, passes the
guard, and is routed to the chosen reasoning mode. The result is normalized into
an answer plus a machine-readable sidecar, persisted to the configured
observability stores, and returned with a trace ID.
The project ships its own two-layer request gate: a size/sanity floor followed by a prohibited-use denylist. Fable's model prompt adds the final semantic scope contract. See The guard for the exact behavior.
Every question is checked before any model call:
<3 chars) / too-long
(>65536 chars) questions. Context is unbounded by default (any cap you set
is floored to 512,000 chars). Breadth is allowed.context (the context
scan is on by default; ASK_FABLE_GUARD_SCAN_CONTEXT=0 restricts it to the
question) β the provider's own safeguard reads the whole payload, so a block is
caught locally and deterministically instead of upstream. Extend it via
ASK_FABLE_DENYLIST_FILE (one term per line). Benign multi-word phrases
(e.g. request payload) are neutralized before matching so an ambiguous
word like payload used in an ordinary engineering sense doesn't false-trip;
add your own via ASK_FABLE_ALLOWLIST_FILE (one phrase per line). This only
rescues the exact benign phrase β a bare prohibited term still rejects.
Legitimate security-engineering work passes trusted=true (operator-authorized
via ASK_FABLE_ALLOW_TRUSTED) to run the denylist log-only.REFUSED: <reason> only when the question itself directly asks for
offensive-security work (exploit development, attack tooling) or non-software
domain knowledge (e.g. biology). Questions about security-related code are
normal engineering.Every decision is appended to an owner-only JSONL audit log (question hashed by
default; ASK_FABLE_AUDIT_RAW=1 to store raw).
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/ask-fable)<a href="https://allmcps.com/mcp/ask-fable"><img src="https://allmcps.com/api/badge/ask-fable?style=directory" alt="Ask Fable on AllMCPs" /></a>