mcpField
F
fable

fable

本地服务
github.com/codeChapAI 与智能体02 周前更新

关于 fable

fable 是以 Rust 构建的 MCP 服务,将 Anthropic Claude Fable 5.1 提供为规划、代码与设计评审及单次问答工具。它面向先用 Fable 判断、再将结果交给成本较低模型执行的团队。

主要功能

  1. 01生成可交由执行模型的实施计划
  2. 02全面审查代码与设计
  3. 03单次提问并可请求推理摘要
  4. 04控制 effort 并呈现拒绝详情
  5. 05报告每次调用的令牌数与成本

适用场景

  1. 01为其他模型拟定实施计划
  2. 02审查代码差异或系统设计
  3. 03就具体问题咨询 Fable

MCP 相关

通过 stdio 和 JSON-RPC 2.0 向 MCP 客户端提供 `plan`、`critique` 和 `ask` 工具,可注册到支持 MCP 的客户端。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

mcp-server-fable

License: MIT Rust edition 2024 MCP Model: Claude Fable 5.1

这是一个适用于 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
名称类型必填描述
goalstring是要构建或修复的内容
contextstring否相关代码、文件树、约束、错误输出、先前尝试
effortstring否low/medium/high/xhigh/max(默认 high)
max_tokensinteger否要生成的最大 token 数(否则使用服务端默认值)
critique
名称类型必填描述
contentstring是要审查的代码、差异或设计
focusstring否要重点关注的领域,例如 security、concurrency
effortstring否low/medium/high/xhigh/max(默认 high)
max_tokensinteger否要生成的最大 token 数
ask
名称类型必填描述
promptstring是用户消息
system_promptstring否系统提示词
messagesstring否JSON 数组格式的历史记录,数组项为 {role, content}(仅支持 user/assistant 角色)
effortstring否low/medium/high/xhigh/max(默认 medium)
max_tokensinteger否要生成的最大 token 数
show_reasoningboolean否在 [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: "Rust clap 应用;目前通过 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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。