outline-mcp
Provides read-only search and read access to an Outline wiki, including full-text document search, retrieving documents as markdown, browsing collections and document hierarchies, viewing revision history, and reading comments.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@outline-mcpsearch for the latest product roadmap document"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
outline-mcp
Read-only MCP server for Outline. Gives an agent search and read access to your wiki — no writes, by design.
Why
Outline's API is a flat RPC surface — every endpoint is
POST {base}/api/<method> with a JSON body and a Bearer token. That uniformity
means a useful MCP server is a single request function plus a curated tool
list. This package is deliberately small: no runtime
dependency beyond the MCP SDK and zod, and full control over the tool
descriptions and output shaping that determine whether the agent picks the
right tool.
The server is read-only: there is no create, update, move, or archive path anywhere in the code.
Related MCP server: outline-mcp
Tools
Tool | Outline method | Use it for |
|
| Full-text search; returns snippets, not bodies |
|
| Locate a page you can already almost name |
|
| Read one document as markdown |
|
| Find |
|
| Browse a collection or a document's children |
|
| See how a document changed over time |
|
| Read one earlier version |
|
| Reviewer pushback not present in the body |
get_document accepts a full URL, a bare urlId, or a UUID. A urlId is
[A-Za-z0-9]{10,15} — a slug without a valid id suffix is rejected locally,
because the API answers 400 validation_error for it.
Requirements
Node 18 or newer (uses the built-in
fetch; no native dependencies).An Outline instance — self-hosted or Outline.com.
Getting started
git clone https://github.com/minhquan2904/outline-mcp.git
cd outline-mcp
npm ciGet an API key
In Outline: Settings → API & Apps → New API key. The value starts with
ol_api_ followed by 38 alphanumeric characters.
Set the two environment variables
export OUTLINE_API_URL=https://your-outline-instance
export OUTLINE_API_KEY=ol_api_…
node index.jsConfiguration
The server reads exactly two environment variables:
Variable | Meaning |
| Base URL of your Outline instance, e.g. |
| An Outline API key ( |
Claude Code — mcp.json (project) or .mcp.json (user):
{
"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 Desktop — claude_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_…"
}
}
}
}Note: Claude Desktop does not expand ${VAR} references in this file
— paste the key literally, do not write "${OUTLINE_API_KEY}".
Any other MCP client (Zed, Cline, or anything speaking the MCP stdio
protocol) — same shape: launch node /path/to/outline-mcp/index.js with the
two variables in its environment.
How it works
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 -.-> CThe server never validates credentials at startup. A server that exits on boot appears in the client as "failed to connect" with no explanation; instead it starts, lists its tools, and each call returns a message naming the missing variable.
Development
npm ci
npm test # unit tests, fully offline (fetch is stubbed)
npm run smoke # every tool against a real instance; no-ops without credentialsnpm run smoke requires OUTLINE_API_URL + OUTLINE_API_KEY pointing at a
live instance; without them it prints a "smoke skipped" line and exits 0.
See CONTRIBUTING.md for how to add a tool.
Limitations
Read-only by design. No create, update, move, archive, or comment writes.
Attachments are not resolved. Embedded images and files stay as
/api/attachments.redirect?id=…links in the markdown; they will not load for an agent reading the text.No proactive rate-limit signal. The instance does not return
RateLimit-*headers. On a429the client honoursRetry-After(capped at 10s) and retries exactly once, then reports the failure.Long documents are truncated at
maxChars(default 40 000) with a marker stating the true total length.
Security
The API key travels only in the Authorization header of outgoing requests.
Any error message that leaves the client is passed through a redaction step
that replaces the key with ol_api_***, and nothing on the key's path (the
stdio transport or the stderr log) ever prints the key itself. If your Outline
instance supports scoped keys, prefer a read-only-scoped key for this server.
License
This server cannot be installed
Maintenance
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
Read-only MCP for the Eco game wiki: search, Markdown pages, and wiki_* lookups. No keys, no writes.
Read-only MCP server for the OrchestKit docs: full-text search + Markdown fetch. No auth.
OrganiKPI MCP: search and fetch services, posts and tools as clean markdown (read-only).
Read and write your team's shared, AI-readable wiki from any MCP client.
Related MCP Servers
- AlicenseAqualityDmaintenanceAn MCP server that enables reading, writing, and searching documents in Outline via its API. It supports document management, full-text search, and collection organization using Markdown formatting.81817MIT
- AlicenseNot gradedqualityDmaintenanceConnects MCP clients to Outline workspaces, enabling agents to safely read, update, and manage documentation through structured tools.462MIT
- AlicenseAqualityDmaintenanceEnables reading Feishu documents and Wiki pages, including full content and metadata, via MCP protocol.234ISC
- AlicenseNot gradedqualityCmaintenanceRead-only MCP server for accessing GitBook content, including spaces, pages, and search, through AI assistants.189MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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