这是一个用于与Outline文档管理系统交互的Model Context Protocol服务器。
在使用此MCP服务器之前,你需要:
获取你的API密钥:登录Outline → 点击你的个人资料 → 设置 → API密钥 → “新建API密钥”。复制生成的令牌。
uvx mcp-outline
pip install mcp-outline
docker run -e OUTLINE_API_KEY=<your-key> ghcr.io/vortiago/mcp-outline:latest
或者从源码构建:
docker buildx build -t mcp-outline .
docker run -e OUTLINE_API_KEY=<your-key> mcp-outline
| 变量 | 必需 | 默认值 | 备注 |
|---|---|---|---|
OUTLINE_API_KEY | 是 | - | 从Outline Web UI获取:设置 → API密钥 → 创建新密钥 |
OUTLINE_API_URL | 否 | https://app.getoutline.com/api | 对于自托管:https://your-domain/api |
OUTLINE_READ_ONLY | 否 | false | true = 禁用所有写入操作(详情见#只读模式) |
OUTLINE_DISABLE_DELETE | 否 | false | true = 仅禁用删除操作(详情见#禁用删除操作) |
OUTLINE_DISABLE_AI_TOOLS | 否 | false | true = 禁用AI工具(对于没有OpenAI的Outline实例) |
MCP_TRANSPORT | 否 | stdio | 传输模式:stdio(本地),sse 或 streamable-http(远程) |
MCP_HOST | 否 | 127.0.0.1 | 服务器主机。在Docker中使用0.0.0.0以允许外部连接 |
MCP_PORT | 否 | 3000 | HTTP服务器端口(仅适用于sse和streamable-http模式) |
配置服务器权限以控制允许的操作:
设置 OUTLINE_READ_ONLY=true 以启用仅查看访问。只有搜索、阅读、导出和协作查看工具可用。所有写入操作(创建、更新、移动、归档、删除)都将被禁用。
使用场景:
可用工具:
search_documents,list_collections,get_collection_structure,get_document_id_from_titleread_document,export_documentlist_document_comments,get_commentget_document_backlinksexport_collection,export_all_collectionsask_ai_about_documents(如果未通过OUTLINE_DISABLE_AI_TOOLS禁用)设置 OUTLINE_DISABLE_DELETE=true 以允许创建和更新工作流,同时防止意外数据丢失。仅禁用删除操作。
使用场景:
禁用工具:
delete_document,delete_collectionbatch_delete_documents重要:OUTLINE_READ_ONLY=true优先于OUTLINE_DISABLE_DELETE。如果两者都设置,服务器将以只读模式运行。
<details> <summary><b>添加到Claude Desktop</b></summary>先决条件:使用
pip install uv或从astral.sh/uv安装uv
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json(或Windows上的%APPDATA%\Claude\claude_desktop_config.json):
{
"mcpServers": {
"mcp-outline": {
"command": "uvx",
"args": ["mcp-outline"],
"env": {
"OUTLINE_API_KEY": "<YOUR_API_KEY>",
"OUTLINE_API_URL": "<YOUR_OUTLINE_URL>" // 可选
}
}
}
}
</details>
<details>
<summary><b>添加到Cursor</b></summary>
转到设置 → MCP 并点击添加服务器:
{
"mcp-outline": {
"command": "uvx",
"args": ["mcp-outline"],
"env": {
"OUTLINE_API_KEY": "<YOUR_API_KEY>",
"OUTLINE_API_URL": "<YOUR_OUTLINE_URL>" // 可选
}
}
}
</details>
<details>
<summary><b>添加到VS Code</b></summary>
在您的工作区创建一个.vscode/mcp.json文件,并使用以下配置:
{
"servers": {
"mcp-outline": {
"type": "stdio",
"command": "uvx",
"args": ["mcp-outline"],
"env": {
"OUTLINE_API_KEY": "<YOUR_API_KEY>"
}
}
}
}
对于自托管的Outline实例,向env对象添加OUTLINE_API_URL。
可选:使用输入变量来存储敏感凭证:
{
"inputs": [
{
"type": "promptString",
"id": "outline-api-key",
"description": "Outline API Key",
"password": true
}
],
"servers": {
"mcp-outline": {
"type": "stdio",
"command": "uvx",
"args": ["mcp-outline"],
"env": {
"OUTLINE_API_KEY": "${input:outline-api-key}"
}
}
}
}
VS Code会自动发现并加载此配置文件中的MCP服务器。更多细节,请参阅官方VS Code MCP文档。
</details> <details> <summary><b>添加到Cline(VS Code)</b></summary>在Cline扩展设置中,添加到MCP服务器:
{
"mcp-outline": {
"command": "uvx",
"args": ["mcp-outline"],
"env": {
"OUTLINE_API_KEY": "<YOUR_API_KEY>",
"OUTLINE_API_URL": "<YOUR_OUTLINE_URL>" // 可选
}
}
}
</details>
<details>
<summary><b>使用pip而不是uvx</b></summary>
如果你更喜欢使用pip:
pip install mcp-outline
然后在你的客户端配置中,将"command": "uvx"替换为"command": "mcp-outline"并移除"args"行:
{
"mcp-outline": {
"command": "mcp-outline",
"env": {
"OUTLINE_API_KEY": "<YOUR_API_KEY>",
"OUTLINE_API_URL": "<YOUR_OUTLINE_URL>" // 可选
}
}
}
</details>
<details>
<summary><b>Docker部署(HTTP)</b></summary>
对于远程访问或Docker容器,使用HTTP传输。这将在端口3000上运行MCP服务器:
docker run -p 3000:3000 \
-e OUTLINE_API_KEY=<YOUR_API_KEY> \
-e MCP_TRANSPORT=streamable-http \
ghcr.io/vortiago/mcp-outline:latest
然后从客户端连接:
{
"mcp-outline": {
"url": "http://localhost:3000/mcp"
}
}
注意:OUTLINE_API_URL应该指向你的Outline实例所在的位置,而不是localhost:3000。
注意:工具可用性取决于你的访问控制设置。某些工具在只读模式或删除操作受限时会被禁用。
search_documents(query, collection_id?, limit?, offset?) - 按关键词搜索文档并分页list_collections() - 列出所有集合get_collection_structure(collection_id) - 获取集合内的文档层次结构get_document_id_from_title(query, collection_id?) - 通过标题搜索找到文档IDread_document(document_id) - 获取文档内容export_document(document_id) - 导出文档为markdowncreate_document(title, collection_id, text?, parent_document_id?, publish?) - 创建新文档update_document(document_id, title?, text?, append?) - 更新文档(支持追加模式)move_document(document_id, collection_id?, parent_document_id?) - 将文档移动到不同的集合或父文档archive_document(document_id) - 归档文档unarchive_document(document_id) - 从归档中恢复文档delete_document(document_id, permanent?) - 删除文档(或移动到回收站)restore_document(document_id) - 从回收站恢复文档list_archived_documents() - 列出所有已归档的文档list_trash() - 列出所有在回收站中的文档add_comment(document_id, text, parent_comment_id?) - 在文档中添加评论(支持线程回复)list_document_comments(document_id, include_anchor_text?, limit?, offset?) - 查看文档评论并分页get_comment(comment_id, include_anchor_text?) - 获取特定评论的详细信息get_document_backlinks(document_id) - 查找引用该文档的其他文档create_collection(name, description?, color?) - 创建新集合update_collection(collection_id, name?, description?, color?) - 更新集合属性delete_collection(collection_id) - 删除集合export_collection(collection_id, format?) - 导出集合(默认:outline-markdown)export_all_collections(format?) - 导出所有集合batch_create_documents(documents) - 一次创建多个文档batch_update_documents(updates) - 一次更新多个文档batch_move_documents(document_ids, collection_id?, parent_document_id?) - 移动多个文档batch_archive_documents(document_ids) - 归档多个文档batch_delete_documents(document_ids, permanent?) - 删除多个文档ask_ai_about_documents(question, collection_id?, document_id?) - 关于你的文档提出自然语言问题outline://collection/{id} - 集合元数据(名称、描述、颜色、文档数量)outline://collection/{id}/tree - 层次化的文档树结构outline://collection/{id}/documents - 集合内文档的平面列表outline://document/{id} - 文档全文内容(markdown)outline://document/{id}/backlinks - 引用该文档的其他文档# 生成配置
cp config/outline.env.example config/outline.env
openssl rand -hex 32 > /tmp/secret_key && openssl rand -hex 32 > /tmp/utils_secret
# 更新config/outline.env以包含生成的秘密
# 启动所有服务
docker compose up -d
# 创建API密钥:http://localhost:3030 → 设置 → API密钥
# 添加到.env:OUTLINE_API_KEY=<token>
git clone https://github.com/Vortiago/mcp-outline.git
cd mcp-outline
uv pip install -e ".[dev]"
# 运行测试
uv run pytest tests/
# 格式化代码
uv run ruff format .
# 类型检查
uv run pyright src/
# 检查代码
uv run ruff check .
uv run mcp-outline
使用MCP Inspector通过交互式UI视觉测试服务器工具。
对于本地开发(使用stdio):
npx @modelcontextprotocol/inspector -e OUTLINE_API_KEY=<your-key> -e OUTLINE_API_URL=<your-url> uv run python -m mcp_outline
对于Docker Compose(使用HTTP):
npx @modelcontextprotocol/inspector http://localhost:3000

速率限制:通过头部跟踪(RateLimit-Remaining,RateLimit-Reset)自动处理,带有指数退避重试(最多3次尝试)。无需配置。
传输模式:
stdio(默认):直接进程通信sse:HTTP服务器发送事件(适用于Web客户端)streamable-http:可流式传输的HTTP传输连接池:跨实例共享httpx连接池(可配置:OUTLINE_MAX_CONNECTIONS=100,OUTLINE_MAX_KEEPALIVE=20)
检查你的API凭据:
# 测试你的API密钥
curl -H "Authorization: Bearer YOUR_API_KEY" YOUR_OUTLINE_URL/api/auth.info
常见问题:
OUTLINE_API_KEY在你的MCP客户端配置中正确设置OUTLINE_API_URL是否指向你的Outline实例(默认:https://app.getoutline.com/api)/api结尾OUTLINE_READ_ONLY=true禁用了写入工具OUTLINE_DISABLE_DELETE=true隐藏了删除工具OUTLINE_DISABLE_AI_TOOLS=true禁用了AI功能服务器自动处理速率限制并带有重试逻辑。如果你看到持续的速率限制错误:
容器无法启动:
OUTLINE_API_KEY:docker run -e OUTLINE_API_KEY=your_key ...docker logs <container-id>客户端无法连接:
0.0.0.0作为MCP_HOST:-e MCP_HOST=0.0.0.0-p 3000:3000-e MCP_TRANSPORT=streamable-http欢迎贡献!请提交Pull Request。
本项目根据MIT许可证发布 - 详情请参阅LICENSE文件。