MCP Connector

Manage Outline Documents with Automation

Search, read, create, and manage Outline documents and collections - comments, backlinks, and direct URI resource access.

Works with outline

Maintainer of this project? Claim this page to edit the listing.


91
Spark score
out of 100
Updated 19 days ago
Version 1.10.1
Models
universal

Add to Favorites

Why it matters

Automate interactions with your Outline document management system. Search, create, edit, and manage documents and collections seamlessly, with built-in rate limiting for smooth API usage.

Outcomes

What it gets done

01

Search documents by keywords and retrieve content

02

Create, update, and archive documents within collections

03

Manage document hierarchy and move items between collections

04

Export documents and collections in markdown format

Install

Add it to your toolbox

Run in your project directory:

curl -fsSL https://spark.entire.vc/get/vb-outline | bash

Capabilities

Tools your agent gets

search_documents

Search documents by keywords with pagination

list_collections

List all collections

get_collection_structure

Get document hierarchy in a collection

get_document_id_from_title

Find document ID by title

read_document

Get document content

export_document

Export document as markdown

create_document

Create a new document

update_document

Update document with append mode available

+7 tools

Overview

Outline MCP Server

MCP Outline Server lets an AI assistant search, read, create, and edit Outline documents and collections, manage comments and backlinks, and access content directly via resource URIs, with automatic API rate-limit handling. Use it for conversational management of an Outline knowledge base, for both cloud-hosted and self-hosted instances. Outline now ships an official MCP server, recommended over this community implementation.

What it does

MCP Outline Server connects an AI assistant to Outline, the team knowledge base and document management tool, for searching, reading, creating, editing, and archiving documents, managing collections, and working with comments and backlinks. Note: Outline now ships an official MCP server, which the project itself recommends using instead of this community implementation.

When to use - and when NOT to

Use it when you want an AI assistant to search your Outline knowledge base, read or edit documents, create new documents within a collection hierarchy, add or view threaded comments, or find backlinks referencing a specific document. It requires an Outline API key (generate one via Settings -> API Keys -> New API Key in the Outline web UI) and works with both cloud-hosted and self-hosted Outline instances (set OUTLINE_API_URL for self-hosted). Do not hammer the API with unthrottled requests - the server handles rate limiting transparently with automatic retry, so let it manage backoff itself.

Capabilities

  • Document operations: search, read, create, edit, and archive documents.
  • Collections: list, create, and manage document hierarchies.
  • Comments: add and view threaded comments on documents.
  • Backlinks: find documents that reference a specific document.
  • MCP Resources: direct content access via URIs, e.g. outline://document/{id}, outline://collection/{id}.
  • Automatic rate limiting: transparent handling of Outline API limits with retry logic.
  • AI-powered Q&A: ask_ai_about_documents answers natural-language questions scoped to a collection or document.
  • Access control: OUTLINE_READ_ONLY disables all write operations, OUTLINE_DISABLE_DELETE disables only deletes, OUTLINE_DYNAMIC_TOOL_LIST filters available tools per-user by Outline role and API key scope, and an x-outline-api-key header lets each user pass their own key in HTTP mode for multi-user setups.

How to install

One-click install available for VS Code, VS Code Insiders, and Cursor with an interactive API key prompt. Or install manually:

uvx mcp-outline
# or
pip install mcp-outline
# or via Docker
docker run -e OUTLINE_API_KEY=<your-key> ghcr.io/vortiago/mcp-outline:latest

Configure your MCP client with OUTLINE_API_KEY (required) and OUTLINE_API_URL (optional, for self-hosted instances):

{
  "servers": {
    "mcp-outline": {
      "command": "uvx",
      "args": ["mcp-outline"],
      "env": {
        "OUTLINE_API_KEY": "${input:outline_api_key}",
        "OUTLINE_API_URL": "${input:outline_api_url}"
      }
    }
  }
}

For Claude Code: claude mcp add mcp-outline uvx mcp-outline. Requires Python 3.10+ for non-Docker installs.

Who it's for

Teams using Outline for internal documentation who want an AI assistant to search, read, and edit their knowledge base conversationally - though new users should check whether Outline's official MCP server better fits their needs first. The project is MIT-licensed.

Source README

MCP Outline Server

๐Ÿ“ข Official Outline MCP Server Available

Outline now ships an official MCP server - we recommend using it.
Read the docs.


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

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 Code
claude mcp add mcp-outline uvx mcp-outline

Installing the repo as a plugin instead also bundles the
outline-explorer agent (fast read-only wiki exploration) and the
outline skill (Outline conventions: mermaidjs fences, document
structure, editing workflows).

Claude Desktop

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_DISABLE_RECENT_DOCUMENTS No false true = disable the list_recently_updated_documents tool
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
OUTLINE_CACHE_TTL No 30 Document cache TTL in seconds. The short default absorbs same-task read bursts without stressing the Outline API; set 0 to disable caching (always-fresh reads) or higher (e.g. 300) for more API savings. Staged edits work either way
OUTLINE_CACHE_MAX_SIZE No 100 Max cached documents
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
Disable recent-changes tool OUTLINE_DISABLE_RECENT_DOCUMENTS=true Disables only the list_recently_updated_documents tool
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?, statusFilter?) - Search documents by keywords with pagination. Defaults to published documents; pass statusFilter with draft, archived, and/or published to include other states
  • list_recently_updated_documents(date_filter?, collection_id?, status_filter?, limit?, offset?) - List documents by most recent change, newest first (e.g. "what changed this week"). date_filter windows by last change: day/week/month/year (default week). Defaults to published documents
  • 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, offset?, limit?) - Get document content with optional line-range pagination
  • export_document(document_id) - Export document as markdown

Document Navigation

  • get_document_toc(document_id) - Get table of contents with heading structure and line numbers
  • read_document_section(document_id, heading) - Read a specific section by heading match (case-insensitive substring)

Document Management

  • create_document(title, collection_id, text?, parent_document_id?, publish?) - Create new document
  • update_document(document_id, title?, text?, append?) - Replace full document content (append mode available)

Document Editing

  • edit_document(document_id, edits, save?) - String-match editing with batched replacements; save=False stages changes locally, save=True on the final call pushes all changes
  • 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.

FAQ

Common questions

Discussion

Questions & comments ยท 0

Sign In Sign in to leave a comment.