Outline MCP
# @reyhanfahlevi/outline-mcp
MCP server for the [Outline](https://www.getoutline.com) API, authenticated with an API token.
## Setup
1. In Outline: **Settings → API & Apps → Create API key**. Copy it (`ol_api_...`).
2. Run via npx:
```jsonc
// Claude Desktop / Cursor / Trae — mcpServers config
{
"mcpServers": {
"outline": {
"command": "npx",
"args": ["-y", "@reyhanfahlevi/outline-mcp"],
"env": {
"OUTLINE_API_KEY": "ol_api_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
}
}
}
```
Self-hosted Outline? Point `OUTLINE_API_URL` at your instance (default `https://app.getoutline.com/api`):
```jsonc
"env": {
"OUTLINE_API_KEY": "ol_api_...",
"OUTLINE_API_URL": "https://outline.example.com/api"
}
```
## Tools
| Tool | Type | Purpose |
| --- | --- | --- |
| `outline_call` | any | Call any Outline RPC method directly (`method`, `params`) |
| `outline_search` | read | Full-text document search |
| `outline_get_document` | read | Fetch one document with its Markdown |
| `outline_list_documents` | read | List documents |
| `outline_list_collections` | read | List collections |
| `outline_list_collection_documents` | read | Document tree of a collection |
| `outline_list_users` | read | List users |
| `outline_list_comments` | read | Comments on a document |
| `outline_create_document` | write | Create a document (draft by default) |
| `outline_update_document` | write | Update title / body |
| `outline_delete_document` | destructive | Trash or permanently delete a document |
| `outline_move_document` | write | Move a document |
| `outline_create_collection` | write | Create a collection |
| `outline_create_comment` | write | Comment on a document |
Anything not listed is available through `outline_call`, e.g.
`{"method": "documents.export", "params": {"id": "..."}}`.
Full method list: <https://www.getoutline.com/developers>.
## Development
```bash
npm install
npm run build # tsc -> dist/
npm run dev # run from source (tsx)
OUTLINE_API_KEY=ol_api_... node dist/index.js # run built server on stdio
```
## Publish
```bash
npm login
npm publish --access public
```
Then `npx -y @reyhanfahlevi/outline-mcp` works anywhere.
## License
MIT
TDQS
Scored across 14 tools
Most tools target a clear resource+action, but outline_call is a catch-all RPC escape hatch that overlaps with every dedicated tool, and outline_list_documents vs outline_list_collection_documents have subtly different scopes that could cause misselection. Descriptions clarify intent reasonably well.
Nearly all tools follow a consistent outline_verb_noun pattern (create/update/delete/list/get/move). outline_call breaks the verb_noun shape and outline_list_collection_documents is noun-heavy, but the scheme remains readable and predictable.
14 tools sit comfortably in the well-scoped 3-15 range for a document/workspace platform, with each dedicated tool covering a distinct common operation.
Documents get full lifecycle coverage (create/get/update/delete/move/list/search) plus collections, comments, and users. Minor gaps exist (no collection update/delete or comment update/delete as dedicated tools, no archive/unpublish), but outline_call provides a fallback for these.