把 Outline 知识库接进 MCP:让 AI 直接读你的文档
0. 写在前面
自建 Outline 之后,很多人停在"能用"这一步:文档进了库,查找靠关键词,归档靠手,问答靠人。这篇文章讲怎么再走一步,通过 MCP 把知识库接进 AI 助手,让 AI 直接读你的文档、按你的资料回答、替你归档对话。
前提是你已经有一套能访问的 Outline,自建或托管都行。本文以自建为例,从零部署的过程见《Outline + Pocket ID 自部署:国内自建知识库完整踩坑记》。文中域名统一用 wiki.example.com 占位,照抄时换自己的。
1. MCP 是什么
MCP(Model Context Protocol)是给 AI 应用开的统一接口协议,Anthropic 提出并开源。可以把它理解成 AI 应用的"USB 接口":工具和数据源按协议实现一个服务,AI 客户端插上就能用,不用为每个工具写专属对接。
两种形态:
- stdio:本地进程,客户端直接拉起一个命令,通过标准输入输出通信。适合本机数据源,你的 Outline 就是这么接的。
- HTTP/SSE:远程服务,通过网络通信,适合多端共享。
本文用 stdio 模式,最省事。
数据流向:AI 客户端经 stdio 拉起本地 MCP 进程,进程用 HTTPS + API Key 调 Outline,Outline 读写 PostgreSQL 与 Redis。
2. 前置:拿到 Outline 的 API Token
Outline 提供完整的 REST API,MCP 服务就是它的客户端。接之前先拿凭证:
- 登录 Outline,进个人设置 → API 令牌(右上角头像 → Settings)
- 新建 token,注意 scope 权限:只做查询就勾只读;要让 AI 建文档、归档对话,再给写权限
- 生成后只显示一次,立刻复制保存
典型 token 长这样:ol_api_xxxxx。它相当于你账号的 API 钥匙,别截图、别提交进 git。
Outline 个人设置 → API 令牌:新建 token 时可勾选读写 scope。
3. 选型:现成服务还是自己写
社区已有现成实现,主流是 outline-wiki-mcp(npm 包,stdio 服务)。开箱即用,覆盖集合、文档、搜索、建文档这些常用操作。除非要深度定制权限模型或私有协议,否则直接用现成的,不值得重复造轮子。
4. 接入配置
以支持 MCP 的 AI 客户端为例(WorkBuddy、Cursor、Claude Desktop 大同小异),在客户端的 MCP 配置文件里注册一段:
{
"mcpServers": {
"outline": {
"command": "npx",
"args": ["outline-wiki-mcp"],
"env": {
"OUTLINE_BASE_URL": "https://wiki.example.com",
"OUTLINE_API_KEY": "ol_api_你的token"
}
}
}
}
三个要点:
OUTLINE_BASE_URL填你的 Outline 地址,结尾不要带斜杠- 环境变量名以你用的包文档为准,多数实现是
OUTLINE_BASE_URL/OUTLINE_API_KEY这两个 - 配置改完要重启客户端(或重新加载 MCP 服务器),列表是启动时加载的
装好后能调什么(outline-wiki-mcp 工具清单)
outline-wiki-mcp 把 Outline API 包成一组 MCP 工具,客户端按需调用:
| 分组 | 工具 | 作用 |
|---|---|---|
| 搜索 | outline_search | 全库全文搜索 |
| 文档 | outline_get_document | 按 ID 取文档内容 |
| 文档 | outline_list_documents | 列某集合下的文档 |
| 文档 | outline_create_document | 新建文档 |
| 文档 | outline_update_document | 更新文档标题/正文 |
| 文档 | outline_move_document | 移动文档到其他集合 |
| 文档 | outline_archive_document / outline_unarchive_document | 归档 / 恢复 |
| 文档 | outline_export_document | 导出为 Markdown |
| 集合 | outline_list_collections | 列出所有集合 |
| 集合 | outline_create_collection / outline_get_collection | 新建 / 查看集合 |
资源侧还暴露 outline://collections/{id}、outline://documents/{id},客户端可以直接按 URI 浏览结构。前面说的问答、归档、补文档三个场景,用的就是搜索 + 读写 + 集合这几组。
(工具清单以 outline-wiki-mcp npm 0.1.0 README 为准)
5. 验证与实战
5.1 先确认通没通
配置好后,在 AI 客户端里触发一个 outline 工具,比如"列出所有集合"。能返回你的集合列表就是通了;不通按第 7 节排查。
OpenClaw 客户端调起 outline_list_collections 工具,返回 4 个集合列表。集合名/描述/用户名/模型名已脱敏。
5.2 场景一:基于知识库问答
直接问 AI:"根据知识库总结 X 方案的要点"。它会调 outline 的搜索、读文档工具,基于你的文档作答,而不是凭训练数据瞎编。这是自建知识库最直接的好处。
5.3 场景二:对话自动归档
把一次讨论的结论归档进指定集合,只需一句:"把刚才聊的要点整理成文档,存进『对话归档』集合"。AI 负责起标题、写正文、存到目标集合。长期下来知识库越来越完整,不用手动搬运。
5.4 场景三:协作补文档
文档缺章节,AI 先读上下文补一版初稿,人再改。比从空白页开始快得多,也保留了人对内容的最终把关。
6. 权限与安全
- Key 只存本机:API Token 只出现在本地配置文件,不进 git,不贴公网文档
- 按需给权:只读场景就别给写 scope,泄漏时影响面小
- 不走公网暴露:stdio 是本地进程,天然不对外;别把 MCP 服务本身暴露成公网 HTTP 端点
- Key 万一泄漏,去 Outline 个人设置里吊销重建
7. 常见坑
- base_url 带斜杠:结尾多一个
/,请求路径拼接错,直接 404。去掉即可。 - token 权限不足:能列集合但建不了文档,多半是 scope 没勾写权限,回个人设置重建 token。
- 改配置不生效:MCP 服务器列表是客户端启动时加载的,改完要重启或重载。
- stdio 进程随客户端退出:本地进程模式,客户端关了就没了,下次打开自动拉起,属正常现象,不是故障。
- 搜不到内容:先确认文档确实在某个集合里,且 token 对该集合有权限。
8. 进阶方向
- 定时归档:配一个定时任务,每天把聊天纪要自动整理进知识库,形成个人或团队的长期资料沉淀
- 多 Agent 共用:多个 AI 工具接同一个 Outline,各自用独立 token,出问题可审计
- 语义检索:MCP 自带搜索是关键词级,要语义级就上 RAG(向量化 + 重排序),那是另一篇文章的容量
这篇是自建完 Outline 之后的进阶玩法。还没有部署本体的,先看《Outline + Pocket ID 自部署:国内自建知识库完整踩坑记》。