fable について
fableはRust製のMCPサーバーで、Anthropic Claude Fable 5.1を計画作成、コードや設計のレビュー、単発の質問に利用できます。Fableで判断材料を作り、その結果を低コストのモデルに渡して実装するチーム向けです。
主な機能
- 01実行モデル向けの実装計画
- 02コードや設計の網羅的なレビュー
- 03推論要約に対応した単発質問
- 04effort制御と拒否理由の表示
- 05呼び出しごとのトークン数と費用表示
活用シーン
- 01別モデルに渡す実装計画の作成
- 02コード差分やシステム設計のレビュー
- 03特定の質問についてFableに相談
MCP 対応
stdioとJSON-RPC 2.0を介して、MCPクライアントに `plan`、`critique`、`ask` ツールを公開します。MCP対応クライアントに登録できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
mcp-server-fable
Anthropic Claude Fable 5.1 用の MCP(Model Context Protocol)サーバーです。Claude Fable 5.1 は、Anthropic の最も高性能で、最も高価なモデルです(入力/出力トークン 100 万あたり 10 ドル/50 ドル、Opus の約 2 倍)。Rust で構築されており、Fable を専用の MCP ツール(plan、critique、ask)として公開するため、あらゆる MCP クライアントから利用できます。
ここでの Fable は、日常的なチャットモデルではありません。このサーバーは、価格に見合う用途、つまり Fable で計画と批評を行い、その結果をより安価なモデル(Sonnet/Haiku/Opus)に渡して実行することを目的に構築されています。Claude Code、Claude Desktop、Cursor、カスタムエージェント、その他 stdio 経由の MCP サーバーに対応するあらゆる環境で動作します。
JSON-RPC 2.0 を使って stdio 経由で通信します。構造は mcp-server-claude-chat を踏襲していますが、Fable の API に合わせて意図的に調整し、計画してから実行するパターンに特化しています。
mcp-server-fable を選ぶ理由(Claude Code の組み込みアドバイザーとの比較)
Claude Code には、強力なネイティブのアドバイザー機能(/advisor fable または advisor ツール)があります。これを使うと、通常は Sonnet または Haiku の高速な実行モデルが、1 つのセッション内で難しい判断について Fable に動的に助言を求められます。
この MCP サーバーは、より多くの状況で役立つ補完的なアプローチを採用しています。
- 引き継ぎに最適化したプロンプトを備える明示的なツール —
planとcritiqueは、出力をそのままより安価なモデルに渡せるよう、慎重に作成した固定のシステムプロンプトを使用します。計画は番号付きで曖昧さがなく、正確なパスやシグネチャ、エッジケース、受け入れ基準、対象外事項を含みます。批評は意図的に網羅性を優先し、すべてを報告して、後続の処理で絞り込みます。 - MCP が使える場所ならどこでも動作 — Claude Code に限定されません。Claude Desktop、Cursor、Windsurf、カスタムエージェントフレームワーク、VS Code の MCP 拡張機能、スクリプト、または今後 Model Context Protocol に対応するあらゆるツールで利用できます。
- オーケストレーションを制御 — モデルのエスカレーションに頼らず、あなた(またはマルチエージェントシステム)が決めたタイミングで、計画やレビューのために Fable を呼び出せます。
- シンプルな組み合わせ — Fable を、他の MCP サーバーと組み合わせて再利用できる専門サービスとして扱えます。「判断には高価なモデル、実行には安価なモデル」という現代的なワークフローに最適です。
- Fable 固有の動作を正しく処理 — 適切な
effortレベル、拒否への対応(暗黙のフォールバックなし)、長いタイムアウト、Fable の料金に基づく正確な呼び出しごとのコスト報告に対応します。
多くのチームが、コミュニティで見出されたのと同じパターンに行き着いています。つまり、アーキテクチャ、計画、レビューに用途を絞って Fable を使い、その後の実行にはより安価なモデルを使う方法です。このサーバーは、このパターンの「Fable を使う部分」に対応する、第一級で持ち運び可能なツールを提供します。
専用実装が必要となった Fable API 固有の違いについては、以下の「技術的な詳細」セクションをご覧ください。
サブスクリプションと API クレジット
このサーバーは、API キー(API クレジット)を使った Anthropic API を利用します。これは、サードパーティ製ツールから Claude を利用する際にサポートされている、利用規約に準拠した唯一の方法です。Claude Pro/Max サブスクリプションはここでは利用できません。Anthropic 互換のゲートウェイを運用している場合は、base_url にその URL を指定してください。
技術的な詳細:Fable API の違い
Fable の Messages API は Opus 時代の形式とは異なります(一般的な Claude チャットラッパーを再利用せず、専用サーバーが必要だった理由です)。
- サンプリングパラメーターなし —
temperature/top_p/top_kを指定すると 400 エラーになります。temperatureツール引数はありません。 - 適応型の思考のみ — 推論は常に有効です。深さはトークン予算ではなく、
effort(low/medium/high/xhigh/max)で制御します。生の思考連鎖が返されることはありません。askではshow_reasoningを指定して、読みやすい要約をリクエストできます。 - 拒否はそのまま停止 — これは専用の Fable サーバーです。Fable の安全性分類器(サイバー/生物/モデル蒸留)によりリクエストが拒否されることがあります。その場合、
stop_reason: "refusal"を含む成功レスポンスが返され、回答の代わりにカテゴリと説明が示されます。別のモデルで暗黙に再試行されることはありません。 - 30 日間のデータ保持が必須 — Fable はゼロデータ保持の組織では利用できません。そのような組織では、すべてのリクエストで 400 エラーが返されます。
すべてのレスポンスには、コストを意識することがこのサービスの主な目的であるため、推定 USD コスト(Fable の定価に基づく)も表示されます。
ツール
| ツール | 説明 |
|---|---|
plan | 主力ツール。 目標(+任意のコンテキスト)を、実行者がそのまま使える実装計画に変換します。番号付きの手順、正確なパス/シグネチャ、エッジケース、受け入れ条件、対象外の注記を含み、より低コストのモデルに渡してそのまま実行できるように作成されます。 |
critique | コード、差分、設計を網羅性優先でレビューします。後続のフィルタリングに使えるよう、すべての指摘を重大度と信頼度とともに報告します。focus は任意です。 |
ask | Fable への生の単発クエリです。複数ターンの履歴、システムプロンプト、努力度、任意の推論要約を指定できます。 |
plan
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
goal | string | yes | 構築または修正する対象 |
context | string | no | 関連するコード、ファイルツリー、制約、エラー出力、これまでの試行 |
effort | string | no | low/medium/high/xhigh/max(デフォルトは high) |
max_tokens | integer | no | 生成する最大トークン数(それ以外の場合はサーバーのデフォルト) |
critique
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
content | string | yes | レビュー対象のコード、差分、設計 |
focus | string | no | 重視する領域。例:security、concurrency |
effort | string | no | low/medium/high/xhigh/max(デフォルトは high) |
max_tokens | integer | no | 生成する最大トークン数 |
ask
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
prompt | string | yes | ユーザーメッセージ |
system_prompt | string | no | システムプロンプト |
messages | string | no | {role, content} の JSON 配列としての履歴(role は user / assistant のみ) |
effort | string | no | low/medium/high/xhigh/max(デフォルトは medium) |
max_tokens | integer | no | 生成する最大トークン数 |
show_reasoning | boolean | no | Fable の推論の要約を [thinking] ブロックで返します |
前提条件
- Rust(エディション 2024)
- console.anthropic.com で取得した Anthropic API キー。組織のデータ保持期間が 30 日以上であること
サーバーは、少なくとも api_key を含む設定ファイルを ~/.config/mcp-server-fable/config.toml に用意する必要があります。config.toml.example を参照してください。
api_key = "sk-ant-..."
# Optional overrides:
# base_url = "https://api.anthropic.com/v1"
# default_model = "claude-fable-5-1"
# default_max_tokens = 8192
# default_effort = "high" # low | medium | high | xhigh | max
設定ファイルがない場合、api_key が空の場合、または(設定されていれば)default_effort が無効な場合、サーバーは起動時に即座にエラーで終了します。
ビルド
cargo build --release # produces target/release/fable
cargo build # debug build
cargo run # run in dev mode
RUST_LOG=debug cargo run
cargo test # unit tests (response formatting, cost, refusal, effort, message building)
インストールと MCP の設定
1. サーバーをビルドする
cargo build --release
# The binary will be at: target/release/fable
以下のすべての設定では、target/release/fable の完全な絶対パスを使用してください。
2. AI を活用したインストール(最新の推奨方法)
以下のブロックをコピーし、AI コーディングアシスタント(Claude Code、Cursor、Grok など)に直接貼り付けてください。AI がクローン(必要な場合)、ビルド、パスの解決、登録を代わりに行います。
Add the mcp-server-fable MCP server for me.
Repository: https://github.com/<your-username>/mcp-server-fable (update this URL if you have a fork)
Steps to perform:
1. If the repo isn't cloned locally yet, clone it and cd into it.
2. Build the release binary:
cargo build --release
3. Determine the absolute path to the built binary (target/release/fable).
4. Set up the config directory and file:
mkdir -p ~/.config/mcp-server-fable
cp config.toml.example ~/.config/mcp-server-fable/config.toml
Then edit the config and add your Anthropic API key (api_key = "sk-ant-...").
5. Register it as an MCP server named "fable".
For Claude Code, run:
claude mcp add fable -- <ABSOLUTE_PATH_TO>/target/release/fable
For Claude Desktop or other MCP clients, add this under the "mcpServers" key (use the real absolute path):
{
"fable": {
"command": "<ABSOLUTE_PATH_TO>/target/release/fable"
}
}
After setup, test that the `plan` tool is available and working.
3. 手動設定
Claude Desktop または任意の MCP クライアント(~/.config/Claude/claude_desktop_config.json または同等のファイル):
{
"mcpServers": {
"fable": {
"command": "/absolute/path/to/mcp-server-fable/target/release/fable"
}
}
}
Claude Code(ワンライナー):
claude mcp add fable -- /absolute/path/to/mcp-server-fable/target/release/fable
パスを、リリースバイナリへの実際の絶対パスに置き換えてください。
使用方法
登録すると、MCP クライアントはツールを名前で呼び出せます。主力のツールは plan です。
MCP クライアントから(例:Claude Code)
目標と、実行者に必要なコンテキストを渡して、モデルにツールを使うよう依頼します。
fable の plan ツールを使ってください。goal: "CLI に、結果を JSON で出力する
--jsonフラグを追加する" context: "Rust のclapアプリ。現在、src/main.rsのprintln!経由で出力している" effort: high
Claude Code は plan に対する tools/call を発行します。Fable は、番号付きで実行者がそのまま使える計画を返します。正確なパス、シグネチャ、エッジケース、受け入れ基準が含まれています。その計画を、実装をそのまま行うために、より低コストなモデル(Sonnet / Haiku)に渡します。
stdio 経由の生の JSON-RPC
クライアントを使わない場合の同じ呼び出しです。サーバーが stdin から読み取る tools/call リクエストです。
{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{
"name":"plan",
"arguments":{
"goal":"Add a --json flag to the CLI that prints results as JSON",
"context":"Rust clap app; output currently via println! in src/main.rs",
"effort":"high"
}}}
plan と critique は、内容に続けてトークン数と推定コストのフッターを返します。フッターの例として、実際の応答(小規模な ask プローブからのもの)を示します。
BINARY-OK
[stop_reason: end_turn]
[tokens: 21 input + 9 output = 30 total]
[cost: ≈ $0.0007 (fable rates)]
サーバーが Fable のみを呼び出すため、このコスト行は常に Fable の 100 万トークンあたり $10 / $50 の料金に基づきます。慣例ではなく、構造上正確です。
プロジェクト構成
src/
main.rs - entry point, config loading, stdio transport setup
server.rs - MCP tool definitions (plan, critique, ask) + fixed prompts
api.rs - Anthropic HTTP client, Effort enum, Messages types, refusal/cost formatter
params.rs - tool parameter types with serde + JSON Schema derives
config.rs - TOML config loading + effort validation
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。