MCP 服务器
Docsbook MCP 服务器是一个远程模型上下文协议服务器,可向 AI 代理公开您的文档及其完整管理界面。将 Claude Code 或任何兼容 MCP 的客户端连接到一个端点,即可读取页面、提交更改、读取分析数据以及更改设置,而无需离开编辑器。
本页面介绍服务器提供的内容以及每次调用所使用的数据。此处列出的每个工具都可由任何已连接的客户端调用;计量调用的费用请参阅 Docsbook 定价页面,以及管理面板中每个工具所在行显示的费用。
什么是 Docsbook MCP 服务器?#
Docsbook MCP 服务器通过模型上下文协议公开了156 个工具。模型上下文协议是一种开放标准,用于通过类型化的 RPC 接口向 AI 智能体提供工具、资源和提示。
其中恰好有一个是智能体。 docsbook_expert 接受用你自己的话提出的任何文档请求——“改进文档”“记录这个 API”“为什么读者没有转化”——并在一次往返中回答如何完成这项工作:按顺序执行哪些步骤、每一步调用哪个工具、如何将信息从一步传递到下一步、哪些因素会导致答案错误,以及之后需要记住什么。它本身不会执行任何操作,也不需要审批;你只需使用自己的令牌、按照读取价格,调用它所列出的工具。在使用下面的任何工具之前,请先调用它。
其他每个工具都是一个单纯的、具有独立名称的调用——涵盖工作区和品牌、内容、问题跟踪器、AI 聊天、翻译、分析、调用历史、项目记忆、提醒、假设、工作看板和 Webhook——其中包括用于连接和配置代码仓库或网站、将其作为事实来源的两个工具,以及 collect_ai_citability,它会评估答案引擎能否获取并引用你的内容。这些工具都不会无人值守地运行:会按自身计划运行或在代码仓库提交时触发的常驻智能体,以及只能在其中一个智能体内部运行的 135 个更细分工具,已于 2026-09-12 退役,原因是 docsbook_expert 取代了它们——它们的价值从来不在于运行本身,而在于知道要读取哪些内容、以什么顺序读取,以及什么会导致答案错误;这些应当被告知,而不是被执行。完整列表请参阅 MCP 工具参考。
端点#
Docsbook MCP 服务器对于每个工作区和每个客户端都通过同一个 URL 提供服务:
https://docsbook.io/api/mcp/server身份验证采用带 PKCE 的 OAuth 授权码流程。客户端会接收一个不透明的 Bearer 令牌,并在每次调用时携带该令牌;不会签发刷新令牌,且令牌不会自行过期,因此轮换令牌意味着在面板中撤销该令牌,然后重新进行授权。无需查找每个项目对应的 MCP URL:OAuth 流程限定于已登录的账户,客户端随后选择工作区。有关该流程、作用域和缺口,请参阅MCP 服务器安全性。
如何将我的 AI 客户端连接到 Docsbook?#
将您的客户端指向 https://docsbook.io/api/mcp/server,然后在浏览器中完成 OAuth 提示。Docsbook MCP 服务器是一个带有 OAuth 的远程 HTTP 服务器,因此每个现代 MCP 客户端都可以使用同一个端点连接到它,无需运行本地进程。下面的子节为每个客户端提供了确切的命令或配置文件。
您还可以在自己的项目中浏览目录:打开管理面板,然后在侧边栏中选择 MCP。首次打开时,该部分会显示一个包含客户端安装命令的开启面板,因此您可以在阅读目录之前完成连接;点击它还会在表格上方运行简短的指南。其背后是服务器当前提供的所有工具组成的表格,数据实时从服务器读取,而不是来自某份手工记录的副本;表格包含每个工具的计费类别、每次调用的价格、一次调用通常保持打开的时长,以及读者是否可以在没有令牌的情况下调用它。您可以搜索,也可以使用筛选器缩小范围——其中列出各个计费类别及其对应价格——或者按任意列排序。将鼠标悬停在某一行上,会打开一张卡片,其中包含有关该工具的其他信息:它的功能、一次调用的费用和通常保持打开的时长、它接受的参数数量及其中必填参数的数量、调用它的有效示例数量,以及在您自己的项目中它目前给您带来的费用和您上次调用它的时间;卡片中还提供可直接复制的可调用 ID。点击某一行会打开该工具自己的页面,该页面拥有独立地址:URL 中包含工具信息,因此您可以刷新、收藏或发送给同事,他们打开后会直接进入同一个工具,而不是回到一个包含三百行的表格。页面上的所有内容都与这一个工具有关。它的参数以表单形式呈现,并带有一个运行按钮,可对当前项目发起真实调用;在资金扣除前,按钮会显示价格。下方是该工具的调用历史,由您在其他地方看到的同一个Feeds表格生成,并已缩小到这一个工具:每次调用占一行,展开某一行即可查看完整调用信息——传入了什么、返回了什么、是谁发起的(您自己的客户端、外部代理还是 webhook 投递)、耗时多久、定价是多少,以及实际从余额中扣除了多少。再下方是一个可复制到您自己客户端中的有效示例;在 Docsbook 内部运行的内容就是由您或您的代理发起的调用——这里没有任何内容会自行调用自己。
Claude Code#
claude mcp add --transport http docsbook https://docsbook.io/api/mcp/server首次调用会打开一个浏览器标签页进行 OAuth。获得同意后,这些工具便可在 Claude Code 中使用。
Cursor#
Cursor 没有 mcp add 命令,但它接受一键安装链接:
cursor://anysphere.cursor-deeplink/mcp/install?name=docsbook&config=eyJ1cmwiOiJodHRwczovL2RvY3Nib29rLmlvL2FwaS9tY3Avc2VydmVyIiwidHlwZSI6Imh0dHAifQ==或者将服务器添加到 ~/.cursor/mcp.json(或使用 设置 → MCP & 集成 → 新建 MCP 服务器):
{
"mcpServers": {
"docsbook": {
"url": "https://docsbook.io/api/mcp/server"
}
}
}重新加载 Cursor — 首次使用时,OAuth 会在浏览器中打开。
Codex CLI#
codex mcp add docsbook --url https://docsbook.io/api/mcp/server或者直接编辑配置 — Codex 将 MCP 服务器存储在 ~/.codex/config.toml 中:
[mcp_servers.docsbook]
url = "https://docsbook.io/api/mcp/server"Windsurf#
编辑 ~/.codeium/windsurf/mcp_config.json 并刷新 Cascade 面板:
{
"mcpServers": {
"docsbook": {
"serverUrl": "https://docsbook.io/api/mcp/server"
}
}
}Cline#
打开 Cline → MCP 服务器 → 配置 MCP 服务器 并粘贴:
{
"mcpServers": {
"docsbook": {
"url": "https://docsbook.io/api/mcp/server",
"transportType": "http"
}
}
}Gemini CLI#
gemini mcp add --transport http docsbook https://docsbook.io/api/mcp/server默认作用域是当前项目 — 添加 --scope user 以全局安装。或者手动将其添加到 ~/.gemini/settings.json(请注意键是 httpUrl;其中的 url 表示 SSE):
{
"mcpServers": {
"docsbook": {
"httpUrl": "https://docsbook.io/api/mcp/server"
}
}
}GitHub Copilot(VS Code)#
code --add-mcp '{"name":"docsbook","type":"http","url":"https://docsbook.io/api/mcp/server"}'或者在您的工作区中创建 .vscode/mcp.json,然后从 Copilot Chat MCP 选择器中启用服务器(请注意,键是 servers,而不是 mcpServers):
{
"servers": {
"docsbook": {
"type": "http",
"url": "https://docsbook.io/api/mcp/server"
}
}
}ChatGPT#
ChatGPT 通过连接器支持远程 MCP,但仅限于 ChatGPT 自有的付费套餐。该要求来自 OpenAI,而不是 Docsbook。
- 打开 ChatGPT → 设置 → 连接器 → 高级 → 开发者模式。
- 点击创建并粘贴 URL:
https://docsbook.io/api/mcp/server。 - 出现提示时,在浏览器中进行授权。
Docsbook MCP 工具用于什么?#
Docsbook MCP 工具旨在实现以下四种结果之一:吸引更多符合条件的读者到来,让更多读者带着他们想要的内容离开,让更多有购买意向的读者在助手的引导下继续前进,以及让更少的问题需要交给人工处理。下面的内容将按照每项功能所服务的目标进行分类。
你的文档不是成本中心,而是一个承担三项任务的渠道:让人找到(通过 Google,以及通过买家如今用来替代 Google 提问的 AI 助手)、促成读者转化(一次什么都没带走的访问,意味着一位从未抱怨过的流失客户),以及证明哪些做法有效(这样下一次编辑基于决策,而不是猜测)。
文档工具只有四种盈利方式,下面的每个工具都服务于其中一种:
| 杠杆 | 机制 | 核心工具 |
|---|---|---|
| 获客 | 通过搜索和 AI 回答,吸引更多符合条件的读者到来 | update_seo, update_geo, update_aeo, get_search_rankings |
| 转化 | 让更多到来的读者带着他们想要的内容离开 | get_visit_outcomes, get_dead_end_pages, get_content_health, get_route_patterns |
| 销售 | 助手推动有购买意向的读者继续前进,而不只是回答问题 | get_chat_intent, get_chat_conversations, set_chat_system_prompt, set_chat_hooks |
| 避免成本 | 由文档回答的问题,就不需要由人工回答 | get_ai_unanswered, get_failed_searches, get_search_zero_click, get_insights |
不服务于上述任何一项的工具带来的是背景信息,而不是决策。Pageviews: 12,340 是背景信息。31% of your readers left with nothing 是决策。
提升可发现性#
| 工具 | 价值所在 |
|---|---|
update_seo |
Meta 标签、站点地图、OpenGraph。基本配置:没有这些,理应获得排名的页面也无法获得排名。 |
update_geo |
生成式引擎优化——构建页面结构,让 LLM 能够引用内容,并将其归因于你。这决定了你是 AI 答案的来源,还是隐藏在答案中、无人知晓的存在。 |
update_aeo |
答案引擎优化——将内容塑造成 AI 助手可以逐字提取的直接答案形式。 |
get_search_rankings |
真实的 Google Search Console 排名,以及“值得改进”的第 5–20 名页面——Google 已经展示、但尚未赢得点击的页面。它将“我们应该做 SEO”转化为一个明确的页面和一个明确的查询。比 Google 延迟约 2 天。 |
get_analytics(AI 机器人细分) |
ChatGPT、Perplexity 和 Claude 的爬虫是否会读取你的内容。这里为零意味着 GEO 工作没有产生效果——没有抓取、没有引用、没有引荐。 |
买家越来越多地先询问助手,而不是供应商。如果助手从竞争对手的文档中给出答案,你将永远不会进入候选名单,而损失也不会出现在任何仪表板中。
不让读者迷失#
get_visit_outcomes 是整个产品的核心指标:它将每次访问归类为成功 / 死路 / 跳出 / 部分完成,并报告死路率和自助解决率。死路指的是这样的读者:他们搜索过、询问过 AI,或打开了多个页面——最终却仍然一无所获地离开了。下面的所有内容都在回答“……到底是哪里?”
| 工具 | 价值所在 |
|---|---|
get_dead_end_pages |
按优先级排列的重写队列。标记为 terminal_success 的行表示读者离开这些页面,是因为他们已经获得了所需内容——该工具会保护你最优秀的页面,避免它们被“修复”。 |
get_content_health |
每个页面一个 0–100 分的评分,综合了死路退出和负面反馈。在大型文档集上,无需再手动交叉比对四份报告。 |
get_rage_signals |
读者在一次访问中重新进入 3 次以上的页面、A→B→A 的反弹访问以及重复搜索。死路率说明一次访问失败了;这个指标说明失败发生在哪里。重新进入意味着答案应该在该页面上,却并不在那里——解决方法是重构,而不是新增内容。 |
get_route_patterns |
读者实际走过的 2–4 页路径,以及每条路径最终顺利完成的频率。一条经常被访问却以糟糕结果结束的路径,属于导航缺陷,而不是页面质量问题——重写这些页面无法解决问题。 |
get_reverse_funnel |
从成功访问反向追溯:哪些入口页面会导向良好的结局。无需假设,因此它能发现读者自行找到、而你从未设计过的路径。 |
get_forward_funnel |
读者完成你所声明路径的情况,以及哪个转换环节存在流失。也就是你的入门流程完成率。 |
get_metric_timeseries |
按天查看任意核心指标——唯一能回答“情况是否正在恶化”的工具,并能将变化与发布日期对应起来。 |
get_visits |
各项比率背后的证据:一次重建一段真实访问。当某个数字受到质疑,或需要将真实读者与某项投诉联系起来时使用。 |
get_retention |
按群组统计的 W1/W4 回访率。指标方向取决于所属部分:对于参考文档,高回访率是健康表现;对于入门流程,则是失败。 |
未满足的需求#
这里的每一行都是一个支持工单,而你可以通过撰写一篇页面来提前解决它。
| 工具 | 它的价值 |
|---|---|
get_ai_unanswered |
助手无法回答的问题,以读者自己的措辞呈现。这是最经济实惠的内容规划依据。 |
get_failed_searches |
返回零结果的搜索——只是通过另一种方式暴露了同一个缺口。 |
get_search_zero_click |
返回了结果却没有点击的搜索。这是零结果报告遗漏的缺口:搜索正常运行,但读者拒绝了所有结果,这说明问题出在标题和摘要上——修复它们的成本比修复页面正文低一个数量级。 |
get_popular_searches |
人们最常查找的内容。在同一页面上结合 get_content_health 阅读:高需求 + 低健康度 = 你最昂贵的故障页面。 |
get_negative_feedback |
按点踩数量排名的页面。这是读者明确投出的票,无需推断。 |
get_insights |
预先整合的摘要——将文档缺口、零结果搜索和不受喜欢的页面连同影响估算汇总在一次调用中。从这里开始,回答“这周我应该修复什么”。 |
通过助手进行销售#
聊天并不是支持小组件,而是潜在客户用通俗语言说明其异议的唯一场所。
| 工具 | 其价值 |
|---|---|
get_chat_intent |
按购买阶段划分对话——评估、定价、集成、支持、故障。回答谁在决定是否购买,以及什么因素阻碍了购买。当读者提到竞争对手时,指出竞争对手的名称:这是任何页面级报告都无法提供的竞争情报。 |
get_chat_conversations |
按主题归类问题,并提供 click_through——读者打开所引用页面的对话占比。一个具有购买意向但没有点击的主题就是销售漏洞:答案是正确的,却没有推动任何人继续前进。统计单位是对话,而不是问题,因为一位卡住的读者提出四个问题,与四位读者各提出一个问题,会得到相同的计数,却导向相反的结论。 |
set_chat_system_prompt |
修复落地的位置——将助手从图书管理员变成销售人员:筛选客户、处理异议、引导预约演示。 |
set_chat_hooks / test_chat_hook |
LLM 前后置钩子:注入实时上下文(定价、可用性、读者的方案),或在购买意向出现的瞬间捕获潜在客户。 |
get_ai_questions |
逐字记录的问题日志——可用于制作常见问题、入门邮件和异议处理材料的原始素材。 |
在文档聊天中提出的定价异议,比一次页面浏览更有价值:读者已经自行表明了意向,并准确告诉你阻止他们购买的原因。
处理发现#
只有诊断而没有修复,就只是一份报告。这些工具会在一次连接中完成闭环。
| 工具 | 用途 |
|---|---|
search_docs |
逐字、可引用的部分——文本、正则表达式、标题或路径模式。代理在编辑前会读取这些内容,确保修改正确的行。 |
search |
语义搜索(基于嵌入)——根据页面的含义而非字面内容查找页面,使用预先构建的向量索引。它能捕捉自然语言问题,即使问题的措辞与页面标题完全不同。每个计划都提供此功能,并且始终会给出答案:尚未建立索引的项目会改用全文搜索回答相同的问题,回复中还会说明运行的是哪种引擎(mode:semantic 或 lexical)。在项目的公开端点上无需令牌即可使用,因此读者的代理也能搜索你的文档。 |
get_doc_outline |
列出每个页面的标题、标题数量和大小。在搜索或写入之前进行快速、低成本的了解。 |
write_docs |
将一个或多个 Markdown 文件以一次原子性的 git 提交提交。把分析转化为已发布的变更。 |
fetch_url |
将一个公开网页读取为整洁的 Markdown。让代理能够将页面与工作区之外的世界进行核对——竞争对手的定价、你自己的营销网站,或文档所依赖的链接是否仍然有效。 |
list_tool_calls |
编辑前调用。这里进行的每次读取都会与它给出的答案一起保存,因此任何读取工具都是一种快照仪器。它会将这些读取归入系列——针对一个页面、标题、主机、搜索查询或整个网站使用的同一工具;而针对整组短语进行的读取,则会归档在该组短语下——并说明哪些已经有第二次读取可供比较。没有它,相同的建议会永远以相同的信心被提出,而重写发布时也没有基线可供判断。 |
compare_tool_calls |
发布后调用,用于不是提交的变更——设置、语言、导航或助手的提示词。将同一仪器的两次读取并排比较,并报告每个发生变化的数字、出现的内容、消失的内容,以及有多少字段没有变化,这就是分母。当基线为零时,百分比是 null,绝不是 ∞。特意不作结论:相隔一周的两次读取是两个事实,而不是因果关系。 |
search_tool_calls / get_tool_call |
根据过去读取的内容查找它——涉及的页面、答案中的词语或返回的错误——并进行排序,使真正关于某个页面的调用优先于仅仅提到它的调用;然后完整读取其中一条。 |
list_memory / add_memory / edit_memory / remove_memory |
项目在各次会话之间的简报:这些文档的用途(goal)、尚未有人回答的问题(question),以及否则每个代理每次运行时都要重新推断的事实、规则和偏好。在作出任何决定前读取它——目标是用来反驳建议的依据,而所有者的规则优先于代理对网站的解读。写回以下内容:下一次会话会重新推导出的任何信息、在原本会猜测的时刻记录一个 question,以及对已关闭问题的回答。所有者可以在面板的“概览”中看到并编辑这些内容,因此这里不会成为代理针对他人产品的私人笔记。 |
get_page_diff_impact |
发布后调用,用于确实是提交的变更。这次编辑真的有帮助吗?比较提交涉及的页面与未涉及的页面在变更前后的情况——结果构成、自助解决率、首次获得价值所需的时间。未改动的页面就是对照组,而这正是重点:文档流量会因与你的编辑无关的原因而变化,因此只有超过网站趋势的改进才算数。仅仅与趋势持平的变更会被报告为无影响,而不是胜利。它还会按国家、读者语言和设备拆分访问量,并将每个切片与未改动页面中相同切片的变化并列展示——这才把“流量上升”转化为决策。在你设置了平均价格和行动号召 URL 的情况下,它还会衡量编辑的价值——比较改动页面变更前后的转化次数和收入。不带提交调用时,它会列出能够衡量的提交。 |
update_navigation |
修复已发现的缺陷 get_route_patterns 或 get_reverse_funnel——通常比重写页面更便宜、更有效。 |
find_skill / find_widget |
发现已打包的功能——工作流技能或交互式小组件——而不是自行编写。 |
list_issues / get_issue / create_issue |
项目自己的 GitHub issue 跟踪器。并非每个发现都是你可以立即着手进行的变更——create_issue 可以将那些无法立即处理的发现记录下来,而不是让它们随着对话结束。先执行 list_issues,这样发现就不会重复创建已有的未关闭 issue。提交需要读写令牌;读取不需要。 |
无需查看即可知晓#
只有有人打开仪表板,它才会发挥作用。而 Webhook 始终有效。注册 Webhook 需要进行一次写入调用;之后它每次发送交付请求,都会产生一次来自 Docsbook 网络的出站调用。
| 事件工具 | 它的价值 |
|---|---|
register_webhook_chat_no_answer |
助手刚刚让一位读者失望了——在 Slack 中,几秒钟内就能发现,而读者此时可能还停留在页面上。 |
register_webhook_search_no_results |
搜索也是如此。 |
register_webhook_traffic_spike / _drop |
激增可能意味着值得追逐的营销胜利,也可能意味着一个正将人们引向故障排查的事件。发布后出现下降,则说明存在回归问题;否则你可能要到下个季度才会发现。 |
register_webhook_content_outdated |
文档与产品逐渐偏离——这是大多数糟糕 AI 答案的根本原因。 |
register_webhook_chat_negative_feedback, _feedback_received |
读者明确提出的投诉,会被转交给负责该部分的人员。 |
register_webhook_usage_limit_approaching, _overage_limit_reached |
预算控制——避免出现意外账单。 |
list_webhooks, unregister_webhook, list_webhook_deliveries, replay_webhook_delivery, test_webhook |
执行上述操作:审计、重试、验证。 |
触达与归属#
| 工具 | 价值所在 |
|---|---|
update_languages |
启用目标语言。结合 get_analytics 中的国家/语言细分数据阅读:在哪里有读者,就在哪里进行翻译,而不是翻译到你希望读者所在的地方。 |
set_translation_mode, run_translation_pass, get_translation_status, upload_translation, approve_translation, list_pending_translations, get_translation, delete_translation |
翻译流程 — run_translation_pass 会启动一次真正的自动追赶运行,而 get_translation_status 会报告每种语言的覆盖率,之后你再决定是否为某种语言投入资金,或在人工审核下从外部导入翻译。 |
update_access |
私有工作区、密码或你自己的 SSO/OIDC。让你能够向采购流程有此要求的公司销售产品。 |
update_domain |
在你自己的域名上托管文档 — SEO 权威性归于你,而不是供应商的子域名。 |
update_branding, update_ui_settings |
这是你的产品,而不是平台的产品。 |
值得付费的组合#
上面的任何单一工具都不是产品。这些循环才是。
循环 1 —“哪个页面正在让我的客户流失?”#
get_visit_outcomes → the rate: 31% of visits end with nothing
get_dead_end_pages → which pages those visits died on
get_rage_signals → what the reader was trying to do there
list_tool_calls → has this page been "fixed" before, and did it work?
search_docs → write_docs → ship the fix
get_page_diff_impact → did the edited pages beat the pages you did not touch?
compare_tool_calls → …and for a change that was not a commit, the same
reading before and after单独的比率无法采取行动,单独的页面列表无法说明原因,而没有 list_tool_calls 的修复,只会让你满怀信心地重复一次失败的修改。最后一步才是闭环的关键:全站趋势线会因十几种原因而变化,因此“提交代码后比率有所改善”只有在你修改的页面相比未修改的页面有更明显的改善时,才算得上证据。只有完整的过程才能产生你能够据理力争的变化。
循环 2 ——“我的导航是否在误导读者?”#
get_route_patterns → a frequent 3-page route that keeps ending badly
get_reverse_funnel → the route successful readers actually take
update_navigation → promote the working entry point
get_forward_funnel → confirm completion on the declared route improved单个页面评分良好但路由失败,说明存在导航缺陷——get_content_health 将永远指向运行正常的页面。
循环 3——“交易在哪里流失?”#
get_chat_intent → 40 pricing-stage conversations, a competitor named in 12
get_chat_conversations → those topics have near-zero click_through
set_chat_system_prompt → handle that objection, route to a demo
write_docs → a comparison page that answers it once and for all
get_chat_intent (later) → did the objection stop recurring?这是所有文档产品中唯一一个从明确提出的异议开始,到交付答案结束的循环。click_through 是区分“助手回答了问题”和“助手促成了销售”的关键。
循环 4 —“我对 AI 可见吗?它带来了访客吗?”#
update_geo + update_aeo → structure content for citation
get_analytics (ai_bots) → confirm crawlers are actually reading it
get_search_rankings → track classic-search position alongside
get_analytics (referrers) → referrals arriving from AI assistants
get_visit_outcomes → and whether those arrivals end in success最后一步是每个人都会跳过的一步。来自 AI 答案、却无处可去的流量比没有流量更糟——你赢得了可见度,却浪费了展示机会。
自我修复循环#
在 CI 中按计划运行循环 1:
weekly: get_content_health → take the worst 3, and this reading is
also the baseline for next week
list_tool_calls → skip anything already tried and failed
search_docs → write_docs → open a PR
get_page_diff_impact → report on the PR whether the edited pages
beat the untouched ones, or say they did not
compare_tool_calls → next week, this week's reading against
last week's, on the same pages能够自我修复并展示其工作过程的文档——“发现问题”并“修复问题”,且不会丢失连接。
提示库#
针对上面的每个杠杆各提出一个请求,用你实际会输入的措辞——完成 OAuth 后,将以下任意请求粘贴到 Claude Code、Cursor 或其他已连接的客户端中:
- 获客:“AI 助手实际上会读取我们的文档吗?对于我们自己的快速入门指南,我们在 Google 中排名如何?” →
get_analytics(AI 机器人分析)、get_search_rankings - 转化:“哪个页面正在流失读者,为什么?” →
get_visit_outcomes、get_dead_end_pages、get_rage_signals - 销售:“找出所有有人将我们与竞争对手进行比较的聊天对话。” →
get_chat_intent - 节省成本:“人们向文档助手提出了哪些它无法回答的问题?” →
get_ai_unanswered、get_failed_searches
docsbook_expert 会先按顺序为上述每个请求提供完整路径;上面列出的工具就是它最终调用的工具。
移交整个工作#
这里的每个工具都会在发起调用的请求中直接作答。没有需要启动的任务,也没有需要轮询的运行。
过去曾有四个工具——run_docs_analyze、run_docs_create、run_docs_manage、run_docs_automate——它们会在我们这边针对你的工作区运行一项技能,并交回一个用于轮询的运行 ID。它们已经不复存在,get_agent_run、list_agent_runs 和 cancel_agent_run 也一样。审计网站、构建网站、重构网站或搭建其监控仍然需要几分钟,但这些工作本来就是你的代理已经在持有仓库的情况下要完成的,而一个你无法查看进度的运行,并不是获取这些工作的好方式。
取而代之的是 docsbook_expert,这台服务器上的唯一代理。它提供建议,而不是执行运行:用你自己的话向它提问,它会回答如何思考这个请求、按顺序应采取哪些步骤以及每一步使用什么工具、由谁执行每一步、需要在步骤之间传递什么、哪些因素会导致答案错误,以及哪些内容值得记住。它还会指出在此之前需要阅读的两份材料——你声明什么才算本文档正常工作,以及读者实际提出了什么要求——因为没有这两者的建议,只能对一般文档成立,却无法证伪地适用于你的网站。然后,你的代理会使用你的令牌、按读取价格完成工作。想要整套规则而不是一条通往其中的路径时,find_skill 仍会交付长篇方法。
购买证据,而非观点#
一次审计调用会完成七件事:收集、规范化、解读、判断、评分、排序、提出建议。前两步运行两次会得到相同的答案,任何人都可以手动重做并进行核验。从 judge 开始,答案就属于模型了。过去,这两部分会作为一次代理运行一起计费,这意味着可以验证的那一半,按照必须信任的那一半的价格出售。
五个收集器单独构成前一半,作为 probe 计费,而不是作为代理运行计费:
| 工具 | 返回内容 |
|---|---|
collect_page_text |
实际由网络提供的实时页面——状态、标题、元描述、标题层级、代码块,以及在没有 JavaScript 引擎的情况下仍保留下来的正文词数——旁边还会给出我们为同一路径存储的源文件大小。这两者之间的差距就是问题所在:仓库中有 8,000 个字符,实际到达时却只有 40 个词,这样的页面对于读取源文件的每项检查来说都完美无缺,但对于读取页面的任何助手来说都无法引用。 |
collect_corpus_map |
每个页面及其大小、标题数量和层级深度、各个部分、存根,以及导航能够到达其中多少内容。 |
collect_assistant_questions |
读者向你的文档助手提出的问题原文、其中哪些没有得到回答、带分母的回答率,以及问题所使用的语言。 |
collect_traffic |
谁访问了、访问如何结束、在哪些页面结束,以及读者经过的 2–4 页序列——四张表,彼此分开保存。 |
collect_onsite_search |
读者在你自己的搜索框中输入了什么、哪些查询没有返回任何结果,以及哪些查询返回了结果却没有获得点击——三张表,彼此分开保存,因为前者意味着缺少页面,后者意味着标题没有竞争力。 |
路径中没有模型,因此没有什么需要怀疑的——而且有效载荷会用证据证明这一点,而不是只作声称。每个答案都带有一个reproduce块:逐行记录确切的 MCP 调用及其所使用的参数。你可以自行运行它们,并得到相同的记录,时间戳除外。审计返回的任何内容都无法做到这一点,因为审计的答案经过了模型。
你得不到的是判断。没有发现、没有评分、没有排序、没有建议——如果一个收集器悄悄包含了其中任何一项,那它就是以低得多的价格运行的模型。要获得判断,请询问 docsbook_expert 如何解读这些行:它会回答所采用的方法,以及哪些情况会导致解读错误。
便宜的那个才是正确选择的情况。 collect_corpus_map 完全不需要搜索数据、流量或任何历史记录,即使是在今天早上刚上线的网站上,也能返回真实的行数据——这正适用于那些所有分析类问题都会得到“目前数据还不够”这一答案的项目。
缺失的内容会被明确说出来。 无法读取的来源会出现三次——在 skipped 中、在 unavailable 中并说明如果拥有它本可以增加什么,以及在其自己的 reproduce 行中说明失败原因。没有可供相除的数据时,速率会以 null 连同原因返回,绝不会返回为零,并且每个速率都会带有其分母。
诚实地解读数字#
Docsbook MCP 服务器的每个分析响应都在 metrics 字段中注明了自身的注意事项。以下三点值得重复说明:
- 访客是经过哈希处理的 IP。办公室 NAT 会将多位读者合并为一位;移动网络则会将一位读者拆分为多位。报告趋势,切勿报告人数——
get_retention受影响最大。 - 访问次数少于 30 时不显示比率,并标记为
thin。四次访问中的 100% 死胡同比率只是噪声。 terminal_success并不意味着失败。人们复制代码片段后离开的页面,是你拥有的最佳页面。每个排名工具都会豁免这些页面——不要手动重新引入这一错误。
如何从代理中搜索和编辑文档内容?#
有两种方式可以从代理中处理文档内容,具体选择哪一种取决于代理是否在磁盘上拥有该代码仓库:
- 托管方式,通过 MCP 令牌 —
search_docs(只读;无论令牌的作用域为何,只要已连接即可使用)、get_doc_outline(只读;在搜索或写入之前列出每个 Markdown 页面的标题、标题数量和大小),以及write_docs(需要使用具有读写作用域授权的令牌;将一个或多个文件作为单个原子 git 提交进行提交)。这些操作直接针对 Docsbook 托管的代码仓库运行,无需本地检出。 - 本地方式,通过
markdown-lsp— 对于直接处理已检出文件的代理,markdown-lsp可回答更丰富的图谱问题(工作区大纲、模糊标题搜索、带上下文的全文搜索、传入和传出链接、链接解析),代理可以将其作为命令运行 —npx markdown-lsp <subcommand> ./docs— 或作为语言服务器运行。它不是 MCP 服务器,也不需要令牌。有关子命令列表及其设计理由,请参阅事实来源。
当代理只有 MCP 连接(没有本地检出)时,使用 search_docs/write_docs;当代理已经在磁盘上拥有代码仓库并希望进行更深入的图谱导航时,使用 markdown-lsp。
对 Docsbook MCP 服务器的调用消耗什么?#
对 Docsbook MCP 服务器的每次计量调用,都会从该调用所针对的项目余额中扣除——这与充值所增加的余额相同,也是该项目其他 AI 工作所使用的余额。MCP 没有单独的计量器,也没有需要规划的每月调用配额。唯一的限制是资金。
每次调用都会收取固定金额,该金额在调用运行前确定,并且与答案的大小无关。同一个报告调用,在拥有十个页面的网站和拥有一万个页面的网站上,扣除的金额相同。决定金额的是服务器为提供该调用需要执行的工作:
| 类别 | 调用使服务器执行的操作 | 其中的工具 |
|---|---|---|
| 包含 | 仅进行查找 | get_info、find_skill、find_widget、list_workspaces、get_workspace、create_workspace |
| 读取 | 读取已存储的行 | 页面、设置或注册表行——未分类工具所归入的类别 |
| 写入 | 更改已存储的状态 | create_*、update_*、set_*、delete_*、register_*、unregister_*、upload_*、approve_*、mark_* |
| 分析 | 扫描事件存储 | 漏斗、用户旅程、留存、排名、信息流、query_events |
| 外发 | 离开 Docsbook 网络 | fetch_url、read_source、test_*、replay_*、四个跟踪器读取工具(list_issues、get_issue、get_pull_request、search_prior_work),以及由供应商支持的抓取工具 |
| 探测 | 收集并规范化一类事实,其中不包含模型 | collect_* |
| AI | 调用模型进行写入、读取或排名 | write_docs、search_docs、search、get_insights、get_chat_intent |
| 透镜 | 对传入的证据记录执行一次模型处理,并从一个单独声明的角度重新读取 | 保留(lens_*)——目前没有工具属于此类别 |
| 代理 | 通过一次调用运行完整的代理 | 目前没有。135 个操作工具、41 个 agent_* 目标、四个 run_docs_* 运行器和 audit_geo 在 2026-09-12 之前属于此类别;它们的历史调用仍按此类别计价和报告。audit_geo 本身已重命名为 collect_ai_citability,现在按探测类别计费——其证据层是代码,而不是模型 |
⚡ 代理类别中的按工具定价已随操作工具系列一起取消。在拥有 135 个工具时,每个工具都根据其声明的工作量定价——读取多少个证据系列、可能进行多少次模型往返、是否离开你的网站——因此,范围狭窄的观察所扣除的金额只是深度草稿的一小部分。该类别中剩余的内容涵盖整个区间,因此按该区间定价。
每个类别以及每个独立工具的当前金额,都显示在管理面板 MCP 部分中该工具自己的行上;这些金额由服务器实时读取,而不是来自书面副本,也显示在 Docsbook 定价页面上。本页面特意不引用任何价格:写入文档的价格可能在无人注意的情况下过时。
发现操作永不计量。描述服务器、查找技能或小组件、列出工作区以及创建工作区都不收费——握手过程不应收费,创建计费对象的调用也不应收费。
由哪个项目支付,是根据调用本身确定的——即你指定的工作区及其所属的仓库——并且始终只能是你拥有的项目。不指定项目的调用将以非计量方式提供服务。某个工具如果继续执行 AI 工作,也会为该工作扣费;两项费用会相加,而不是相互替代。
余额用尽时,计量调用会在运行前被拒绝,拒绝信息会说明哪个项目余额已用尽、该调用需要扣除多少、还剩多少,以及在哪里为该项目充值。余额不会按计划自动获得赠送金额,不过你可以在账单页面设置自己的月度付款,每月为同一余额充值。免费发现功能仍会继续运行,因此你的代理仍然可以了解发生了什么。
失败的调用仍会收费——因为工作已经执行,答案会对此进行说明。服务器从未成功运行的调用不会收费。
你可以逐行查看调用记录。每次计量调用都会出现在项目的 信息流面板中——使用了哪个工具、是否成功、耗时多久以及扣除了多少——并且可以按计费类别筛选。没有针对单个项目的调用(描述服务器、列出项目、创建项目)归属于你的账户,不会出现在任何项目的信息流中;发现调用完全不会留下记录。
对公共文档网站进行未经身份验证且限定仓库范围的访问,永远不会计量。
令牌可以执行的操作#
对 Docsbook MCP 服务器的访问权限由令牌决定,而不是由层级决定。令牌带有一个作用域,作用域是区分读取和写入权限的唯一因素:
- 只读 — 所有报告、搜索和大纲工具都会响应。
write_docs、create_issue、connect_source和configure_source会拒绝请求并说明原因。这四个工具目前会检查作用域;设置、Webhook、目标和翻译写入工具仅受项目所有权限制,因此只读并不是一个“什么都无法更改”的令牌 — 请参阅 MCP 服务器安全性。 - 读写 — 账户可以执行的所有操作:提交页面、提交问题、连接来源和更改设置。
- 完全没有令牌 — 在仓库范围的端点(
docsbook.io/{owner}/{repo}/api/mcp/server)上,get_info、find_skill、find_widget和list_content_widgets会从公共目录中响应,search则会针对该站点自身的文档进行响应 — 这是此处唯一一个读取项目的工具,因为它读取的是已发布的网站。在私有站点、计划已失效的站点、未固定到站点的端点上,以及项目没有剩余 AI 余额时,该工具都会被拒绝;它不接受项目参数,因此只能读取其固定到的站点。其他所有工具都需要与 Docsbook 账户关联的有效 Bearer 令牌。
当调用被拒绝时,服务器会返回一个说明原因的结构化错误,而不是简单的 403,这样代理就能告诉读者需要修复什么。请参阅 MCP 服务器 — 信任 & 安全性,了解身份验证流程以及服务器存储的内容。
故障排除 / 常见问题#
agents/MCP 工具仍在运行吗? 是的。2026-09-12,旧材料中描述的常驻代理引擎——一个会自行运行的计划代理,以及只能在该代理内部运行的 135 个操作工具和 4 个 run_docs_* 运行器——已被停用。目前仍保留一个代理:docsbook_expert,它会在一次往返中提供建议,而不是无人值守地运行。本页面上的每个连接和其他工具都完全按照上述文档所述工作。
我的客户端仍将该工具列为 docsbook,而不是 docsbook_expert——连接是否中断了? 没有。MCP 客户端会在连接时读取一次工具列表,并在该会话的剩余时间内保留这些名称。服务器会解析旧名称,而不是拒绝它,因此没有任何问题——重新连接客户端即可看到当前名称。
某次调用因余额不足而被拒绝——发生了什么? 拒绝信息会指出项目、该调用会扣除的额度以及剩余额度。重新连接或重试无法解决问题;请从面板为项目充值。发现类调用(get_info、find_skill、列出和创建工作区)永不计量,无论如何都可以继续使用。
如果调用因余额以外的原因被拒绝,我该怎么办? 服务器会返回结构化错误,并说明具体原因——只读令牌缺少必要的作用域、当 Docsbook 自身的凭据无法访问您自己的 GitHub 帐户中的仓库时返回 NO_GITHUB_ACCESS,或目标站点为私有站点。请参阅 MCP 服务器安全性,了解每种令牌作用域可以执行和不能执行的操作。