关于 fable
fable 是以 Rust 构建的 MCP 服务,将 Anthropic Claude Fable 5.1 提供为规划、代码与设计评审及单次问答工具。它面向先用 Fable 判断、再将结果交给成本较低模型执行的团队。
主要功能
- 01生成可交由执行模型的实施计划
- 02全面审查代码与设计
- 03单次提问并可请求推理摘要
- 04控制 effort 并呈现拒绝详情
- 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)服务——Anthropic 能力最强、价格最高的模型(每 100 万输入 / 输出 token 收费 10 美元 / 50 美元,约为 Opus 的 2 倍)。它使用 Rust 构建,将 Fable 封装为专用 MCP 工具(plan、critique、ask),让任何 MCP 客户端都可以使用这些工具。
这里的 Fable 并非日常聊天模型。这个服务专为能体现其价值的用途而打造:用 Fable 进行规划和评审,再将结果交给更便宜的模型(Sonnet / Haiku / Opus)执行。它可用于 Claude Code、Claude Desktop、Cursor、自定义 Agent,以及任何支持通过 stdio 使用 MCP 服务的环境。
它通过 stdio 使用 JSON-RPC 2.0 通信。其结构与 mcp-server-claude-chat 类似,但针对 Fable 的 API 特性进行了专门调整,并专为先规划、后执行的工作模式打造。
为什么选择 mcp-server-fable(而不是 Claude Code 内置顾问)?
Claude Code 提供了强大的原生顾问功能(/advisor fable 或 advisor 工具)。它让快速执行模型(通常是 Sonnet 或 Haiku)可以在单个会话中,针对棘手的决策动态向 Fable 请求建议。
这个 MCP 服务采用了互补的方案,在更多场景中都很实用:
- 提供针对交接优化的明确工具和提示词 —
plan和critique使用精心编写的固定系统提示词,确保输出可以原封不动地交给更便宜的模型。规划内容采用编号形式,清晰明确,包含准确的路径 / 签名、边缘情况、验收标准,以及范围之外的事项。评审优先保证覆盖面(报告所有问题,之后再筛选)。 - 适用于所有支持 MCP 的环境 — 不限于 Claude Code。你可以在 Claude Desktop、Cursor、Windsurf、自定义 Agent 框架、VS Code MCP 扩展、脚本,或任何未来支持 Model Context Protocol 的工具中使用。
- 由你掌控编排 — 由你(或你的多 Agent 系统)决定何时调用 Fable 进行规划或审查,而不是依赖模型自行升级处理。
- 易于组合使用 — 将 Fable 作为可复用的专用服务,与其他 MCP 服务协同使用。非常适合当代“昂贵模型负责判断,便宜模型负责执行”的工作流。
- 正确处理 Fable 专属行为 — 支持恰当的
effort级别、拒绝处理(不会静默回退)、较长的超时时间,以及根据 Fable 费率准确报告每次调用的费用。
许多团队正逐渐采用社区发现的相同模式:仅在架构设计、规划和评审时使用 Fable,再交由更便宜的模型执行。这个服务为该模式中的“Fable 环节”提供了一流且可移植的工具。
有关需要专门实现的 Fable API 差异,请参见下文的“技术细节”部分。
订阅与 API 额度
这个服务使用带 API 密钥的 Anthropic API(API 额度)——这是通过第三方工具调用 Claude 唯一受支持且符合服务条款的方式。此处无法使用 Claude Pro / Max 订阅。如果你使用兼容 Anthropic 的网关,请将 base_url 指向该网关。
技术细节:Fable API 的差异
Fable 的 Messages API 与 Opus 时代的格式不同(因此需要专用服务,而不是复用通用的 Claude 聊天封装):
- 不支持采样参数——传入
temperature/top_p/top_k会被拒绝,并返回 400。没有temperature工具参数。 - 仅支持自适应思考——始终启用推理;深度由
effort(low/medium/high/xhigh/max)控制,而不是由 token 预算控制。不会返回原始思维链;ask可以通过show_reasoning请求可读的摘要。 - 拒绝请求时会干净地停止——这是一个专用 Fable 服务。Fable 的安全分类器(网络安全 / 生物 / 模型蒸馏)可能会拒绝请求;此时会返回成功响应,且
stop_reason: "refusal",并显示拒绝类别和说明,而不是给出答案。绝不会悄悄改用其他模型重试。 - 必须保留数据 30 天——零数据保留组织无法使用 Fable;此类组织的每个请求都会收到 400。
每次响应还会打印预估美元费用(按 Fable 的标价计算),因为费用意识正是其核心所在。
工具
| 工具 | 描述 |
|---|---|
plan | 旗舰工具。 将目标(+ 可选上下文)转换为可供执行者直接使用的实施计划:编号步骤、精确路径/签名、边缘情况、验收标准、范围外说明——内容旨在交给更便宜的模型并逐字执行。 |
critique | 以覆盖面为先,审查代码、差异或设计。报告每项发现及其严重性 + 置信度,便于下游筛选。可选 focus。 |
ask | 向 Fable 发送原始单轮查询。支持多轮历史、系统提示词、effort,以及可选的推理摘要。 |
plan
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
goal | string | 是 | 要构建或修复的内容 |
context | string | 否 | 相关代码、文件树、约束、错误输出、先前尝试 |
effort | string | 否 | low/medium/high/xhigh/max(默认 high) |
max_tokens | integer | 否 | 要生成的最大 token 数(否则使用服务端默认值) |
critique
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
content | string | 是 | 要审查的代码、差异或设计 |
focus | string | 否 | 要重点关注的领域,例如 security、concurrency |
effort | string | 否 | low/medium/high/xhigh/max(默认 high) |
max_tokens | integer | 否 | 要生成的最大 token 数 |
ask
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
prompt | string | 是 | 用户消息 |
system_prompt | string | 否 | 系统提示词 |
messages | string | 否 | JSON 数组格式的历史记录,数组项为 {role, content}(仅支持 user/assistant 角色) |
effort | string | 否 | low/medium/high/xhigh/max(默认 medium) |
max_tokens | integer | 否 | 要生成的最大 token 数 |
show_reasoning | boolean | 否 | 在 [thinking] 块中返回 Fable 推理的摘要 |
前提条件
- Rust(edition 2024)
- Anthropic API 密钥,获取地址:console.anthropic.com,所属组织的数据保留期限需 ≥30 天
服务需要在 ~/.config/mcp-server-fable/config.toml 中找到配置文件,其中至少要包含你的 api_key。请参阅 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: "Rustclap应用;目前通过src/main.rs中的println!输出"。effort: high
Claude Code 会为 plan 发起一次 tools/call;Fable 会返回一份带编号、可直接交给执行者的计划,其中包含确切路径、签名、边缘情况和验收标准;随后你可以将其原样交给成本更低的模型(Sonnet / Haiku)实现。
通过 stdio 使用原始 JSON-RPC
不使用客户端时,同样的调用会以 tools/call 请求的形式发送,服务会从 stdin 读取:
{"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 会在返回内容后附上 token 和预估成本说明。以下是一个实际响应(来自一个简短的 ask 探测),展示了该说明:
BINARY-OK
[stop_reason: end_turn]
[tokens: 21 input + 9 output = 30 total]
[cost: ≈ $0.0007 (fable rates)]
由于服务只会调用 Fable,因此该成本行始终采用 Fable 每 100 万 token $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 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。