Outline MCP Server

Local setup required. This server has to be cloned and prepared on your machine before you register it in Claude Code.
1

Set the server up locally

Run this once to clone and prepare the server before adding it to Claude Code.

Run in terminal
npm install
npm run build
2

Register it in Claude Code

After the local setup is done, run this command to point Claude Code at the built server.

Run in terminal
claude mcp add -e "OUTLINE_BASE_URL=${OUTLINE_BASE_URL}" -e "OUTLINE_API_KEY=${OUTLINE_API_KEY}" outline -- node "<FULL_PATH_TO_OUTLINE_MCP_SERVER>/dist/index.js"

Replace <FULL_PATH_TO_OUTLINE_MCP_SERVER>/dist/index.js with the actual folder you prepared in step 1.

Required:OUTLINE_BASE_URLOUTLINE_API_KEY
README.md

Read, write, and search documents in Outline via its API.

Outline MCP Server

A Model Context Protocol (MCP) server for Outline that enables reading and writing documents through the Outline API.

Features

  • Read Documents: Get individual documents, search, and list documents
  • Write Documents: Create, update, and delete documents
  • Collection Management: List and retrieve collection information
  • Full Text Search: Search across all documents in your Outline instance
  • Markdown Support: Create and edit documents with full Markdown formatting

Installation

  1. Clone or download this repository
  2. Install dependencies:
    npm install
    
  3. Build the project:
    npm run build
    

Configuration

Before using the server, you need to set up your Outline API credentials:

  1. Get your Outline API token:

  2. Set environment variables:

    export OUTLINE_BASE_URL="https://your-outline-instance.com"
    export OUTLINE_API_KEY="your-api-token-here"
    

Usage

Running the Server

Start the MCP server:

npm start

The server communicates via stdio and is compatible with any MCP client.

Available Tools

Document Operations
  1. outline_get_document

    • Get a specific document by ID
    • Parameters: id (string, required)
  2. outline_search_documents

    • Search for documents across your Outline instance
    • Parameters: query (string, required), limit (number, optional, default: 25)
  3. outline_list_documents

    • List documents, optionally filtered by collection
    • Parameters: collectionId (string, optional), limit (number, optional, default: 25)
  4. outline_create_document

    • Create a new document
    • Parameters:
      • title (string, required)
      • text (string, required) - Markdown content
      • collectionId (string, optional)
      • parentDocumentId (string, optional)
      • publish (boolean, optional, default: false)
  5. outline_update_document

    • Update an existing document
    • Parameters:
      • id (string, required)
      • title (string, optional)
      • text (string, optional) - Markdown content
      • publish (boolean, optional)
  6. outline_delete_document

    • Delete a document
    • Parameters: id (string, required)
Collection Operations
  1. outline_list_collections

    • List all collections in your Outline instance
    • Parameters: none
  2. outline_get_collection

    • Get information about a specific collection
    • Parameters: id (string, required)

Example Usage

Here are some example tool calls:

{
  "name": "outline_search_documents",
  "arguments": {
    "query": "project documentation",
    "limit": 10
  }
}
{
  "name": "outline_create_document",
  "arguments": {
    "title": "New Project Plan",
    "text": "# Project Overview\n\nThis document outlines...",
    "collectionId": "collection-id-here",
    "publish": true
  }
}
{
  "name": "outline_update_document",
  "arguments": {
    "id": "document-id-here",
    "title": "Updated Project Plan",
    "text": "# Updated Project Overview\n\nThis document has been updated..."
  }
}

Development

Project Structure

src/
├── index.ts           # Main MCP server implementation
├── outline-client.ts  # Outline API client

Scripts

  • npm run build - Compile TypeScript to JavaScript
  • npm run dev - Build and run the server
  • npm run watch - Watch for changes and rebuild
  • npm start - Run the compiled server

Building

npm run build

The compiled JavaScript will be output to the dist/ directory.

Configuration with MCP Clients

To use this server with an MCP client, you'll need to configure it to run this server. The exact configuration depends on your client, but generally you'll need to:

  1. Specify the command to run: node /path/to/outline-mcp-server/dist/index.js
  2. Set the environment variables for your Outline instance
  3. Configure the client to use stdio transport

Client Configuration Examples

Claude

For clients like Claude that use a JSON configuration file, you can add the following to your mcp-servers.json:

{
  "mcpServers": {
    "outline": {
      "command": "node",
      "args": ["/path/to/your/projects/outline-mcp-server/dist/index.js"],
      "env": {
        "OUTLINE_API_KEY": "your-secret-api-token",
        "OUTLINE_BASE_URL": "https://your-outline-instance.com"
      }
    }
  }
}

Make sure to replace the args path with the absolute path to the index.js file in your project, and fill in your actual credentials in the env block.

Cursor

For clients like Cursor, you can typically set environment variables directly within the client's settings or by launching the client from a terminal where you have already exported the vari

Tools (8)

outline_get_documentGet a specific document by ID
outline_search_documentsSearch for documents across your Outline instance
outline_list_documentsList documents, optionally filtered by collection
outline_create_documentCreate a new document
outline_update_documentUpdate an existing document
outline_delete_documentDelete a document
outline_list_collectionsList all collections in your Outline instance
outline_get_collectionGet information about a specific collection

Environment Variables

OUTLINE_BASE_URLrequiredThe URL of your Outline instance
OUTLINE_API_KEYrequiredYour Outline API token

Configuration

claude_desktop_config.json
{"mcpServers": {"outline": {"command": "node", "args": ["/path/to/your/projects/outline-mcp-server/dist/index.js"], "env": {"OUTLINE_API_KEY": "your-secret-api-token", "OUTLINE_BASE_URL": "https://your-outline-instance.com"}}}}

Try it

Search for documents related to 'project documentation' in my Outline instance.
Create a new document titled 'Meeting Notes' with the content '# Summary Discussed project roadmap.' in the main collection.
List all collections available in my Outline instance.
Update the document with ID 'doc-123' to change the title to 'Updated Project Plan'.

Frequently Asked Questions

What are the key features of Outline?

Read, search, and list documents from Outline. Create, update, and delete documents with Markdown support. Retrieve and list collection information. Full-text search across the entire Outline instance.

What can I use Outline for?

Automating the creation of meeting notes or project documentation directly from Claude. Searching through internal knowledge bases without leaving the AI chat interface. Syncing AI-generated content or summaries directly into an Outline collection.

How do I install Outline?

Install Outline by running: npm install && npm run build

What MCP clients work with Outline?

Outline works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep Outline docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare