Labsco
MCP SERVER

Outline

by Vortiago

Search an Outline wiki, read only the section you need, edit documents by string replacement, and reorganise a whole shelf of them in one batch.

Team Wikis & Documentation PlatformsVerified
Summary
It reads and edits documents the way a person does — by section, by match — rather than by whole file.

A table of contents with line numbers, a section fetched by heading, grep inside one document, and string-match edits applied server-side add up to something usable on a wiki whose pages are too long to move around whole. The permission model is the other half: read-only, delete-disabled and scope-aware tool lists are three separate switches, so an assistant that only answers questions and one that reorganises collections are the same install with different settings.

What it is

A full read-and-write surface over an Outline knowledge base — cloud or self-hosted. It goes further than list-and-read: documents can be navigated by heading, edited without holding the whole text, and moved or archived in batches.

What you get
  • Full-text search across titles and content, with a collection filter and a status filter, plus get_document_id_from_title for when you know the name but not the id
  • list_recently_updated_documents answers "what changed this week" without needing a keyword to search for
  • Reading at four grains: the whole document, a line range, a named section matched by heading, or grep-style search inside one document with line numbers and surrounding context
  • get_document_toc returns the heading structure with line numbers, which is how a long document gets navigated rather than dumped
  • edit_document applies string-match replacements server-side, so a small change does not mean sending the document back whole; update_document replaces or appends the full text when that is what you want
  • Attachments handled properly: list the ones a document references, resolve an id to a downloadable URL, or fetch the file back as base64
  • Comments listed, read individually and added, including replies to an existing comment and the anchor text they were left on
  • get_document_backlinks finds every document linking to this one — the dependency check before you move or delete anything
  • Collections created, updated, deleted, and their hierarchy read; export one collection or the whole workspace as an asynchronous job
  • Documents archived, unarchived, trashed, restored and permanently deleted, with the archive and trash listable in their own right
  • move_document relocates a document with its children intact, and the batch tools create, update, move, archive and delete many at a time, continuing past individual failures
  • ask_ai_about_documents puts a natural-language question to Outline's own answer engine, scoped to a document or collection
  • MCP resources address content directly by URI, such as outline://document/{id}
Requirements

An Outline account, cloud or self-hosted, and an API key from Settings → API Keys. OUTLINE_API_KEY carries it, OUTLINE_API_URL points at a self-hosted instance, and both can live in ~/.config/mcp-outline/.env instead. Python 3.10+ outside Docker; it starts as uvx mcp-outline, or from the ghcr.io/vortiago/mcp-outline image. Permissions are configurable at the server: OUTLINE_READ_ONLY=true leaves only search, read, export and comment-viewing tools, OUTLINE_DISABLE_DELETE=true keeps create and update but removes the delete tools, and OUTLINE_DYNAMIC_TOOL_LIST=true hides tools the caller's API key scopes and Outline role would not allow. In HTTP mode each user can send their own key in an x-outline-api-key header, which takes precedence over the environment variable. Note that Outline now ships an official MCP server of its own. MIT.

Setup effort

One command plus a key — uvx mcp-outline, then supply credentials