Skip to main content
Glama

outline-mcp

Nur-Lese-MCP-Server für Outline. Bietet einem Agenten Such- und Lesezugriff auf dein Wiki – keine Schreibvorgänge, bewusst.

License: MIT Node

Warum

Die API von Outline ist eine flache RPC-Oberfläche – jeder Endpunkt ist POST {base}/api/<method> mit einem JSON-Body und einem Bearer-Token. Diese Einheitlichkeit bedeutet, dass ein nützlicher MCP-Server aus einer einzigen Request-Funktion plus einer kuratierten Tool-Liste besteht. Dieses Paket ist bewusst klein: keine Laufzeitabhängigkeit außer dem MCP-SDK und zod, und volle Kontrolle über die Tool-Beschreibungen und die Ausgabeformatierung, die darüber entscheiden, ob der Agent das richtige Tool auswählt.

Der Server ist nur lesend: Es gibt keinen Create-, Update-, Move- oder Archiv-Pfad im gesamten Code.

Related MCP server: outline-mcp

Tools

Tool

Outline method

Verwendung

search_documents

documents.search

Volltextsuche; liefert Ausschnitte, keine Inhalte

search_document_titles

documents.search_titles

Eine Seite finden, die du fast schon benennen kannst

get_document

documents.info

Ein Dokument als Markdown lesen

list_collections

collections.list

collectionId-Werte finden, um einzugrenzen

list_documents

documents.list

Eine Sammlung oder die Unterdokumente eines Dokuments durchsuchen

list_revisions

revisions.list

Sehen, wie sich ein Dokument im Laufe der Zeit verändert hat

get_revision

revisions.info

Eine frühere Version lesen

list_comments

comments.list

Rückmeldungen von Reviewern, die nicht im Inhalt enthalten sind

get_document akzeptiert eine vollständige URL, eine nackte urlId oder eine UUID. Eine urlId ist [A-Za-z0-9]{10,15} – ein Slug ohne gültiges ID-Suffix wird lokal abgelehnt, weil die API mit 400 validation_error antwortet.

Voraussetzungen

  • Node 18 oder neuer (verwendet das eingebaute fetch; keine nativen Abhängigkeiten).

  • Eine Outline-Instanz – selbst gehostet oder Outline.com.

Erste Schritte

git clone https://github.com/minhquan2904/outline-mcp.git
cd outline-mcp
npm ci

API-Schlüssel erhalten

In Outline: Einstellungen → API & Apps → Neuer API-Schlüssel. Der Wert beginnt mit ol_api_ gefolgt von 38 alphanumerischen Zeichen.

Die zwei Umgebungsvariablen setzen

export OUTLINE_API_URL=https://your-outline-instance
export OUTLINE_API_KEY=ol_api_…
node index.js

Konfiguration

Der Server liest genau zwei Umgebungsvariablen:

Variable

Bedeutung

OUTLINE_API_URL

Basis-URL deiner Outline-Instanz, z. B. https://your-outline-instance (ein abschließendes /api wird toleriert)

OUTLINE_API_KEY

Ein Outline-API-Schlüssel (ol_api_…)

Claude Codemcp.json (Projekt) oder .mcp.json (Benutzer):

{
  "mcpServers": {
    "outline": {
      "command": "node",
      "args": ["/path/to/outline-mcp/index.js"],
      "env": {
        "OUTLINE_API_URL": "https://your-outline-instance",
        "OUTLINE_API_KEY": "ol_api_…"
      }
    }
  }
}

Claude Desktopclaude_desktop_config.json:

{
  "mcpServers": {
    "outline": {
      "command": "node",
      "args": ["/path/to/outline-mcp/index.js"],
      "env": {
        "OUTLINE_API_URL": "https://your-outline-instance",
        "OUTLINE_API_KEY": "ol_api_…"
      }
    }
  }
}

Hinweis: Claude Desktop expandiert keine ${VAR}-Referenzen in dieser Datei – füge den Schlüssel wörtlich ein, schreibe nicht "${OUTLINE_API_KEY}".

Jeder andere MCP-Client (Zed, Cline oder alles, was das MCP-stdio-Protokoll spricht) – gleiche Form: starte node /path/to/outline-mcp/index.js mit den beiden Variablen in seiner Umgebung.

So funktioniert es

flowchart LR
    CC[Claude Code / any MCP client]
    OM[outline-mcp<br/>Node 18+, stdio server]
    O[Outline instance]
    F[format.js<br/>parse ref · truncate · render]
    C[client.js<br/>timeout · error map · 429 retry]

    CC -->|stdio| OM
    OM -->|"POST /api/{method} · Bearer ol_api_…"| O
    OM -.-> F
    OM -.-> C

Der Server validiert Anmeldedaten nie beim Start. Ein Server, der beim Booten beendet wird, erscheint im Client als „Verbindung fehlgeschlagen“ ohne Erklärung; stattdessen startet er, listet seine Tools auf, und jeder Aufruf gibt eine Meldung zurück, die die fehlende Variable benennt.

Entwicklung

npm ci
npm test          # unit tests, fully offline (fetch is stubbed)
npm run smoke     # every tool against a real instance; no-ops without credentials

npm run smoke erfordert OUTLINE_API_URL + OUTLINE_API_KEY, die auf eine Live-Instanz zeigen; ohne sie gibt es eine Zeile „smoke skipped“ aus und beendet sich mit 0. Siehe CONTRIBUTING.md für Hinweise zum Hinzufügen eines Tools.

Einschränkungen

  • Nur-Lese-Design. Keine Create-, Update-, Move-, Archiv- oder Kommentar-Schreibvorgänge.

  • Anhänge werden nicht aufgelöst. Eingebettete Bilder und Dateien bleiben als /api/attachments.redirect?id=…-Links im Markdown; sie werden für einen Agenten, der den Text liest, nicht geladen.

  • Kein proaktives Rate-Limit-Signal. Die Instanz gibt keine RateLimit-*-Header zurück. Bei einem 429 beachtet der Client Retry-After (auf 10s begrenzt) und versucht es genau einmal erneut, dann meldet er den Fehler.

  • Lange Dokumente werden bei maxChars (Standard 40 000) abgeschnitten, mit einem Marker, der die tatsächliche Gesamtlänge angibt.

Sicherheit

Der API-Schlüssel reist nur im Authorization-Header ausgehender Anfragen. Jede Fehlermeldung, die den Client verlässt, durchläuft einen Schwärzungsschritt, der den Schlüssel durch ol_api_*** ersetzt, und nichts auf dem Pfad des Schlüssels (der stdio-Transport oder das stderr-Log) gibt jemals den Schlüssel selbst aus. Wenn deine Outline-Instanz bereichsbezogene Schlüssel unterstützt, bevorzuge einen nur-lesenden Schlüssel für diesen Server.

Lizenz

MIT – siehe LICENSE für den vollständigen Text.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

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/minhquan2904/outline-mcp'

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