Outline MCP Server
平台与服务by vortiago
将 AI assistants 连接到 Outline,实现文档搜索、内容阅读以及统一管理等能力。
把Outline知识库接入AI助手,让文档搜索、阅读和统一管理一次打通,特别适合想提升团队知识利用效率的场景。
什么是 Outline MCP Server?
将 AI assistants 连接到 Outline,实现文档搜索、内容阅读以及统一管理等能力。
README
MCP Outline Server
<!-- mcp-name: io.github.Vortiago/mcp-outline -->A Model Context Protocol server for interacting with Outline document management.
Features
- Document operations: Search, read, create, edit, archive documents
- Collections: List, create, manage document hierarchies
- Comments: Add and view threaded comments
- Backlinks: Find documents referencing a specific document
- MCP Resources: Direct content access via URIs (outline://document/{id}, outline://collection/{id}, etc.)
- Automatic rate limiting: Transparent handling of API limits with retry logic
Prerequisites
Before using this MCP server, you need:
- An Outline account (cloud hosted or self-hosted)
- API key from Outline web UI: Settings → API Keys → Create New
- Python 3.10+ (for non-Docker installations)
Getting your API key: Log into Outline → Click your profile → Settings → API Keys → "New API Key". Copy the generated token.
Quick Start
One-Click Install
Click a button to install with interactive API key prompt:
Manual Install
Install with uv (recommended), pip, or Docker:
uvx mcp-outline # using uv
pip install mcp-outline # using pip
# using Docker
docker run -e OUTLINE_API_KEY=<your-key> ghcr.io/vortiago/mcp-outline:latest
Then add to your MCP client config (works with VS Code, Claude Desktop, Cursor, and others):
{
"inputs": [
{
"id": "outline_api_key",
"type": "promptString",
"description": "Enter OUTLINE_API_KEY",
"password": true
},
{
"id": "outline_api_url",
"type": "promptString",
"description": "Outline API URL (optional, for self-hosted)",
"password": false
}
],
"servers": {
"mcp-outline": {
"command": "uvx",
"args": ["mcp-outline"],
"env": {
"OUTLINE_API_KEY": "${input:outline_api_key}",
"OUTLINE_API_URL": "${input:outline_api_url}"
}
}
}
}
claude mcp add mcp-outline uvx mcp-outline
Add to ~/Library/Application Support/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>"
}
}
}
}
Setup guides for more clients: Docker (HTTP), Cline, Codex, Windsurf, and others
Configuration
| Variable | Required | Default | Notes |
|---|---|---|---|
OUTLINE_API_KEY | Yes* | - | Required for tool calls to succeed. For SSE/HTTP, can alternatively be provided per-request via x-outline-api-key header (details) |
OUTLINE_API_URL | No | https://app.getoutline.com/api | For self-hosted: https://your-domain/api |
OUTLINE_VERIFY_SSL | No | true | Set false for self-signed certificates |
OUTLINE_READ_ONLY | No | false | true = disable ALL write operations (details) |
OUTLINE_DISABLE_DELETE | No | false | true = disable only delete operations (details) |
OUTLINE_DISABLE_AI_TOOLS | No | false | true = disable AI tools (for Outline instances without OpenAI) |
OUTLINE_DYNAMIC_TOOL_LIST | No | false | true = enable per-user tool filtering by role/key scopes (details) |
OUTLINE_MAX_CONNECTIONS | No | 100 | Max concurrent connections in pool |
OUTLINE_MAX_KEEPALIVE | No | 20 | Max idle connections in pool |
OUTLINE_TIMEOUT | No | 30.0 | Read timeout in seconds |
OUTLINE_CONNECT_TIMEOUT | No | 5.0 | Connection timeout in seconds |
OUTLINE_WRITE_TIMEOUT | No | 30.0 | Write timeout in seconds |
MCP_TRANSPORT | No | stdio | Transport mode: stdio (local), sse or streamable-http (remote) |
MCP_HOST | No | 127.0.0.1 | Server host. Use 0.0.0.0 in Docker for external connections |
MCP_PORT | No | 3000 | HTTP server port (only for sse and streamable-http modes) |
Access Control
| Feature | Env Var | Effect |
|---|---|---|
| Read-only mode | OUTLINE_READ_ONLY=true | Disables all write operations — only search, read, and export tools available |
| Disable deletes | OUTLINE_DISABLE_DELETE=true | Disables only delete operations, all other writes allowed |
| Dynamic tool list | OUTLINE_DYNAMIC_TOOL_LIST=true | Filters tools per-user based on Outline role and API key scopes |
| Per-user Outline API keys | x-outline-api-key header | Each user passes their own Outline API key in HTTP mode for multi-user setups |
Read-only mode takes precedence over disable-delete. See Configuration Guide for details.
Tools
Note: Tool availability depends on your access control settings.
Search & Discovery
search_documents(query, collection_id?, limit?, offset?)- Search documents by keywords with paginationlist_collections()- List all collectionsget_collection_structure(collection_id)- Get document hierarchy within a collectionget_document_id_from_title(query, collection_id?)- Find document ID by title search
Document Reading
read_document(document_id)- Get document contentexport_document(document_id)- Export document as markdown
Document Management
create_document(title, collection_id, text?, parent_document_id?, publish?)- Create new documentupdate_document(document_id, title?, text?, append?)- Update document (append mode available)move_document(document_id, collection_id?, parent_document_id?)- Move document to different collection or parent
Document Lifecycle
archive_document(document_id)- Archive documentunarchive_document(document_id)- Restore document from archivedelete_document(document_id, permanent?)- Delete document (or move to trash)restore_document(document_id)- Restore document from trashlist_archived_documents()- List all archived documentslist_trash()- List all documents in trash
Comments & Collaboration
add_comment(document_id, text, parent_comment_id?)- Add comment to document (supports threaded replies)list_document_comments(document_id, include_anchor_text?, limit?, offset?)- View document comments with paginationget_comment(comment_id, include_anchor_text?)- Get specific comment detailsget_document_backlinks(document_id)- Find documents that link to this document
Collection Management
create_collection(name, description?, color?)- Create new collectionupdate_collection(collection_id, name?, description?, color?)- Update collection propertiesdelete_collection(collection_id)- Delete collectionexport_collection(collection_id, format?)- Export collection (default: outline-markdown)export_all_collections(format?)- Export all collections
Batch Operations
batch_create_documents(documents)- Create multiple documents at oncebatch_update_documents(updates)- Update multiple documents at oncebatch_move_documents(document_ids, collection_id?, parent_document_id?)- Move multiple documentsbatch_archive_documents(document_ids)- Archive multiple documentsbatch_delete_documents(document_ids, permanent?)- Delete multiple documents
AI-Powered
ask_ai_about_documents(question, collection_id?, document_id?)- Ask natural language questions about your documents
Resources
outline://collection/{id}- Collection metadata (name, description, color, document count)outline://collection/{id}/tree- Hierarchical document tree structureoutline://collection/{id}/documents- Flat list of documents in collectionoutline://document/{id}- Full document content (markdown)outline://document/{id}/backlinks- Documents that link to this document
Development
git clone https://github.com/Vortiago/mcp-outline.git
cd mcp-outline
uv sync --group dev
uv run poe test-unit # unit tests
uv run poe test-integration # integration tests (starts MCP server via stdio)
uv run poe test-e2e # E2E tests (requires Docker)
See Development Guide for self-hosted Outline setup, MCP Inspector, and more.
Troubleshooting
Server not connecting? Test your API key:
curl -H "Authorization: Bearer YOUR_API_KEY" YOUR_OUTLINE_URL/api/auth.info
See Troubleshooting Guide for common issues with tools, rate limiting, and Docker.
Contributing
Contributions welcome! See CONTRIBUTING.md for setup instructions.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- Built with MCP Python SDK
- Uses Outline API for document management
常见问题
Outline MCP Server 是什么?
将 AI assistants 连接到 Outline,实现文档搜索、内容阅读以及统一管理等能力。
相关 Skills
MCP构建
by anthropics
聚焦高质量 MCP Server 开发,覆盖协议研究、工具设计、错误处理与传输选型,适合用 FastMCP 或 MCP SDK 对接外部 API、封装服务能力。
✎ 想让 LLM 稳定调用外部 API,就用 MCP构建:从 Python 到 Node 都有成熟指引,帮你更快做出高质量 MCP 服务器。
Slack动图
by anthropics
面向Slack的动图制作Skill,内置emoji/消息GIF的尺寸、帧率和色彩约束、校验与优化流程,适合把创意或上传图片快速做成可直接发送的Slack动画。
✎ 帮你快速做出适配 Slack 的动图,内置约束规则和校验工具,少踩上传与播放坑,做表情包和演示都更省心。
接口设计评审
by alirezarezvani
审查 REST API 设计是否符合行业规范,自动检查命名、HTTP 方法、状态码与文档覆盖,识别破坏性变更并给出设计评分,适合评审接口方案和版本迭代前把关。
✎ 做API和架构方案时,它能帮你提前揪出接口设计问题并对齐最佳实践,评审视角系统,团队协作更省心。
相关 MCP Server
Slack 消息
编辑精选by Anthropic
Slack 是让 AI 助手直接读写你的 Slack 频道和消息的 MCP 服务器。
✎ 这个服务器解决了团队协作中需要 AI 实时获取 Slack 信息的痛点,特别适合开发团队让 Claude 帮忙汇总频道讨论或发送通知。不过,它目前只是参考实现,文档有限,不建议在生产环境直接使用——更适合开发者学习 MCP 如何集成第三方服务。
by netdata
io.github.netdata/mcp-server 是让 AI 助手实时监控服务器指标和日志的 MCP 服务器。
✎ 这个工具解决了运维人员需要手动检查系统状态的痛点,最适合 DevOps 团队让 Claude 自动分析性能数据。不过,它依赖 NetData 的现有部署,如果你没用过这个监控平台,得先花时间配置。
by d4vinci
Scrapling MCP Server 是专为现代网页设计的智能爬虫工具,支持绕过 Cloudflare 等反爬机制。
✎ 这个工具解决了爬取动态网页和反爬网站时的头疼问题,特别适合需要批量采集电商价格或新闻数据的开发者。不过,它依赖外部浏览器引擎,资源消耗较大,不适合轻量级任务。