Skip to main content
Glama

MCP Outline Server

PyPI Python 3.10+ License: MIT CI Docker

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

Related MCP server: Notion MCP Server

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:

Install in VS Code Install in VS Code Insiders Install in Cursor

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 pagination

  • list_collections() - List all collections

  • get_collection_structure(collection_id) - Get document hierarchy within a collection

  • get_document_id_from_title(query, collection_id?) - Find document ID by title search

Document Reading

  • read_document(document_id) - Get document content

  • export_document(document_id) - Export document as markdown

Document Management

  • create_document(title, collection_id, text?, parent_document_id?, publish?) - Create new document

  • update_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 document

  • unarchive_document(document_id) - Restore document from archive

  • delete_document(document_id, permanent?) - Delete document (or move to trash)

  • restore_document(document_id) - Restore document from trash

  • list_archived_documents() - List all archived documents

  • list_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 pagination

  • get_comment(comment_id, include_anchor_text?) - Get specific comment details

  • get_document_backlinks(document_id) - Find documents that link to this document

Collection Management

  • create_collection(name, description?, color?) - Create new collection

  • update_collection(collection_id, name?, description?, color?) - Update collection properties

  • delete_collection(collection_id) - Delete collection

  • export_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 once

  • batch_update_documents(updates) - Update multiple documents at once

  • batch_move_documents(document_ids, collection_id?, parent_document_id?) - Move multiple documents

  • batch_archive_documents(document_ids) - Archive multiple documents

  • batch_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 structure

  • outline://collection/{id}/documents - Flat list of documents in collection

  • outline://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

Install Server
A
security – no known vulnerabilities
A
license - permissive license
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Vortiago/mcp-outline'

If you have feedback or need assistance with the MCP directory API, please join our Discord server