Blume中文文档

可发现性

MCP 服务器

托管一个 Model Context Protocol 服务器,让编码智能体直接检索并阅读你的文档

托管一个 Model Context Protocol 服务器,让编码智能体(Claude Code、Cursor、VS Code、claude.ai 连接器)能直接检索和阅读你的文档 —— 无需抓取解析。它需要手动开启:

agents: {
  mcp: {
    enabled: true,
    route: "/mcp", // 服务器挂载的位置
  },
}
选项 默认值 说明
enabled false 生成并托管 MCP 服务器。
route /mcp Streamable-HTTP 端点挂载的路径。
name title 展示给客户端的服务器名称(默认为 title)。
instructions — 传给连接方智能体的可选系统提示。

如果该路由已被某个内容页或自定义页面占用,服务器就不会被生成:构建会给出警告,llms.txt 和其它发现文档也会把它排除。

工具与资源#

服务器暴露一组只读工具 —— search_docs、get_page、list_pages 和 get_navigation —— 并把每个页面作为一个 MCP resource 暴露(resources/list 按页面实际提供的 URL 枚举它们,类型为 text/markdown,未翻译页面的 i18n 回退副本与 list_pages 一样被排除;resources/read 返回页面的面向智能体的 Markdown,与 get_page 的输出相同),因此那些按 URI 附加上下文的客户端无需调用任何工具就能浏览文档。它在 /.well-known/mcp.json 和 /.well-known/mcp/server-card.json 发布发现文档。这份服务器卡片遵循 SEP-2127 的 Server Card 扩展 schema(反向 DNS 形式的 name、remotes 传输端点),并带有 initialize 形状的兼容字段(serverInfo、capabilities、transports),供按该提案早期版本构建的扫描器使用。每个页面的连接到 MCP菜单都提供面向 Claude Code、Cursor、VS Code 和 Codex 的“复制即用”安装方式(当 deployment.site 已设置后出现)。

search_docs 使用自己的全文索引,因此无论你的搜索提供方是什么它都能工作 —— 即使设了 search: false 也可以。MCP 服务器与页面内搜索是两个彼此独立的功能。

同一套工具也以普通 HTTP 的形式作为 JSON API 提供,服务于那些不会说 MCP 的框架。

该端点最多只读取 64 KB 的请求体,更大的请求一律以 413 应答。调用不存在的工具,或 arguments 不是对象的调用,会得到 JSON-RPC 的 Invalid params 错误(-32602)。

按内容类型和 facets 限定范围#

search_docs 和 list_pages 都接受可选的 contentTypes 过滤器,把结果收窄到 frontmatter 中 type 为指定值的页面 —— ["rfc"]、["blog", "changelog"] —— 因此面对一个把文档与 RFC、运行手册或规范混在一起的站点的智能体,可以把检索限定在它需要的那类页面上。每条结果都会标出它的内容类型,list_pages 的输出也会显示正在使用的类型。

两个工具还都接受一个 filters 对象,用于匹配站点按内容类型声明的 facets(content.types.<type>.facets)—— 也就是那些值会变成可过滤元数据的自定义 frontmatter 键:

{
  "query": "OpenAPI request schemas",
  "contentTypes": ["rfc"],
  "filters": { "domain": "architecture", "status": "enforced" }
}

filters 中的每一项都必须匹配(结果会带上自己的 facet 值,list_pages 也会显示每个页面的值),因此知识库无需自建服务器,就能驱动渐进披露式的智能体工作流 —— 先列出强制标准,再只在其中检索。

需要服务端输出#

MCP 服务器是一个实时端点(/mcp),因此无法运行在静态构建上。指定一个来自 blume/deploy 的宿主适配器即可切换到服务端输出:

import { node } from "blume/deploy"; // 也可以是 vercel、netlify、cloudflare

export default defineConfig({
  deployment: node({ site: "https://docs.example.com" }),
});

在开启 agents.mcp.enabled 的情况下做静态构建会立刻失败,并提示你设置一个宿主适配器。可用适配器参见部署。部署完成后,在 Claude Code 中这样连接:

claude mcp add --transport http my-docs https://docs.example.com/mcp