outline-wiki-mcp
v1.2.4
Published
MCP server for Outline wiki integration
Readme
Outline Wiki MCP Server
A Model Context Protocol server for Outline wiki integration. Enables LLM applications to search, read, create, and manage wiki documents through a standardized interface.
Supports both stdio (for local tools like Claude Desktop, Claude Code) and HTTP transport (for remote clients like Claude.ai web).
Features
- Full-text Search - Find documents across your entire wiki
- Document Management - Create, read, update, delete, and move documents
- Collection Organization - Browse and manage document collections
- Archive & Restore - Soft-delete with archive/restore functionality
- Draft Access - Work with unpublished drafts
- Markdown Export - Export documents as clean markdown
- MCP Resources - Browse collections and documents via resource URIs
- Dual Transport - Run as a local stdio server or remote HTTP service
Quick Start
Prerequisites
- Outline instance (cloud or self-hosted)
- API key from Outline > Settings > API > Create API Key
Installation
npx (stdio)
Zero-install, runs locally via stdio transport:
OUTLINE_BASE_URL=https://your-instance.getoutline.com \
OUTLINE_API_KEY=ol_api_xxx \
npx -y outline-wiki-mcpDocker (HTTP)
Pull the pre-built image from GHCR and run in HTTP mode:
docker run -d \
-p 9999:9999 \
-e OUTLINE_BASE_URL=https://your-instance.getoutline.com \
-e OUTLINE_API_KEY=ol_api_xxx \
ghcr.io/raisedadead/outline-wiki-mcp:latestThe MCP endpoint will be available at http://localhost:9999/mcp.
Docker Compose
Create a .env file with your credentials:
OUTLINE_BASE_URL=https://your-instance.getoutline.com
OUTLINE_API_KEY=ol_api_xxxThen start the service:
docker compose up -dThe docker-compose.yml included in the repository:
services:
outline-wiki-mcp:
image: ghcr.io/raisedadead/outline-wiki-mcp:latest
ports:
- '${PORT:-9999}:9999'
environment:
- OUTLINE_BASE_URL=${OUTLINE_BASE_URL}
- OUTLINE_API_KEY=${OUTLINE_API_KEY}
- MCP_TRANSPORT=http
- PORT=9999
restart: unless-stoppedFrom Source
git clone https://github.com/raisedadead/outline-wiki-mcp.git
cd outline-wiki-mcp
pnpm install
pnpm buildBuild a local Docker image:
docker buildx bakeRun in stdio mode:
OUTLINE_BASE_URL=https://your-instance.getoutline.com \
OUTLINE_API_KEY=ol_api_xxx \
pnpm startRun in HTTP mode:
OUTLINE_BASE_URL=https://your-instance.getoutline.com \
OUTLINE_API_KEY=ol_api_xxx \
pnpm start:httpClient Configuration
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"outline": {
"command": "npx",
"args": ["-y", "outline-wiki-mcp"],
"env": {
"OUTLINE_BASE_URL": "https://your-instance.getoutline.com",
"OUTLINE_API_KEY": "ol_api_xxx"
}
}
}
}Claude Code CLI (stdio)
claude mcp add \
-e OUTLINE_BASE_URL=https://your-instance.getoutline.com \
-e OUTLINE_API_KEY=ol_api_xxx \
-s user \
outline -- npx -y outline-wiki-mcpClaude Code CLI (HTTP)
First start the server in HTTP mode (using Docker or npx), then add the remote endpoint:
claude mcp add -s user --transport http outline http://localhost:9999/mcpClaude.ai Web
Add as a remote MCP server in Claude.ai settings using the HTTP endpoint URL:
http://localhost:9999/mcpReplace localhost:9999 with your deployed server address.
Generic MCP Client
stdio transport:
{
"mcpServers": {
"outline": {
"command": "npx",
"args": ["-y", "outline-wiki-mcp"],
"env": {
"OUTLINE_BASE_URL": "https://your-instance.getoutline.com",
"OUTLINE_API_KEY": "ol_api_xxx"
}
}
}
}HTTP transport:
{
"mcpServers": {
"outline": {
"transport": "http",
"url": "http://localhost:9999/mcp"
}
}
}Configuration
| Option | CLI Flag | Environment Variable | Default |
| --------- | ------------- | -------------------- | ------- |
| Transport | --transport | MCP_TRANSPORT | stdio |
| Port | --port | PORT | 9999 |
| Base URL | - | OUTLINE_BASE_URL | - |
| API Key | - | OUTLINE_API_KEY | - |
A JSON config file can also be used for Outline credentials:
npx outline-wiki-mcp --config /path/to/config.json{
"outline": {
"baseUrl": "https://your-instance.getoutline.com",
"apiKey": "ol_api_xxx"
}
}Precedence rules:
- Config file values override environment variables for Outline credentials
- CLI flags (
--transport,--port) override environment variables - Environment variables (
MCP_TRANSPORT,PORT) override defaults
Tools
Document Operations
| Tool | Description |
| ---------------------------- | --------------------------------------- |
| outline_search | Full-text search across all documents |
| outline_get_document | Retrieve document content by ID |
| outline_list_documents | List documents in a collection |
| outline_create_document | Create a new document |
| outline_update_document | Update an existing document |
| outline_move_document | Move document to a different collection |
| outline_delete_document | Permanently delete a document |
| outline_archive_document | Archive a document (soft delete) |
| outline_unarchive_document | Restore an archived document |
| outline_list_drafts | List all unpublished drafts |
| outline_export_document | Export document as clean markdown |
Collection Operations
| Tool | Description |
| --------------------------- | ---------------------------- |
| outline_list_collections | List all collections |
| outline_get_collection | Get collection details by ID |
| outline_create_collection | Create a new collection |
| outline_update_collection | Update collection properties |
| outline_delete_collection | Delete a collection |
Resources
Browse your wiki structure using MCP resource URIs:
| URI Pattern | Description |
| ---------------------------- | --------------------------------- |
| outline://collections | List all collections |
| outline://collections/{id} | Collection details with documents |
| outline://documents/{id} | Document content in markdown |
Development
| Command | Description |
| ---------------------------- | -------------------- |
| pnpm install | Install deps |
| pnpm build | Compile TypeScript |
| pnpm dev | Watch mode |
| pnpm test | Run tests |
| pnpm lint | Type-check |
| docker buildx bake | Build Docker image |
| docker buildx bake --print | Preview build config |
Running Locally
# stdio mode (default)
OUTLINE_BASE_URL=https://your-instance.getoutline.com \
OUTLINE_API_KEY=ol_api_xxx \
pnpm start
# HTTP mode
OUTLINE_BASE_URL=https://your-instance.getoutline.com \
OUTLINE_API_KEY=ol_api_xxx \
pnpm start:httpContributing
Contributions are welcome. See CONTRIBUTING.md for development setup, testing guidelines, and commit conventions.
License
MIT - see LICENSE
Links
- Outline - Knowledge base for teams
- Outline API - API reference
- Model Context Protocol - MCP specification
- MCP Servers - Reference implementations
