# Outline

Team knowledge base with a documented REST API and an in-repo MCP route, self-hostable under BUSL.

Outline is a collaborative wiki for teams: collections, documents, comments, templates, and integrations, with a hosted edition at getoutline.com. The server ships an MCP endpoint (server/routes/mcp) beside the REST API, so an agent can read and write documents on either the cloud or a self-hosted instance. Self-hosting is free under the Business Source License, which forbids reselling it as a document service.

Alternative to: Notion, Confluence

- Capabilities: adaptable, operable
- Vertical: notes-knowledge
- Shape: business-app
- Form factor: web-app
- Execution model: deterministic
- Provenance: mixed (recorded, never ranked)
- Repo: https://github.com/outline/outline (BUSL-1.1), 40428 stars, last commit 2026-09-03
- Last activity: 2026-09-03
- Page: apps/outline--outline.html
- JSON: apps/outline--outline.json

## Use it when

- your team needs a wiki with SSO and you want an agent to draft and file docs into the right collection
- you want Notion-style docs on your own Postgres without a per-seat bill

## Gotchas

- BUSL-1.1 Additional Use Grant forbids offering Outline as a Document Service to third parties; converts to Apache-2.0 on 2030-09-01
- Requires an external identity provider; there is no local email-and-password login
- Maintainers reject AI-generated pull requests (README)
- MCP tools are filtered by OAuth scopes; the client needs an OAuth token, not a plain API key

## Editions

- Self-hosted: Free, closed source
  - source: https://github.com/outline/outline
  - container: docker compose up -d
- Starter: $10 per month, closed source
  - hosted: https://www.getoutline.com/pricing
- Team: $79 per month, closed source
  - hosted: https://www.getoutline.com/pricing
- Business: $249 per month, closed source
  - hosted: https://www.getoutline.com/pricing

## Adaptable: make it yours

Effort: config-only (31 things to edit)

.env.sample documents the whole surface: SECRET_KEY and UTILS_SECRET, DATABASE_URL and REDIS_URL, URL and PORT, FILE_STORAGE (local or s3 with AWS_S3_* vars), one or more auth providers (OIDC_*, GOOGLE_*, AZURE_*, GITHUB_*), SMTP_*, and per-integration client ids for Slack, Linear, Notion, Figma, Dropbox, Iframely. docker-compose.yml wires Postgres and Redis. No code edits for a standard deployment.

- Env vars: SECRET_KEY, UTILS_SECRET, DATABASE_URL, REDIS_URL, URL, PORT, FORCE_HTTPS, FILE_STORAGE, FILE_STORAGE_LOCAL_ROOT_DIR, AWS_S3_UPLOAD_BUCKET_NAME, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, OIDC_CLIENT_ID, OIDC_CLIENT_SECRET, OIDC_AUTH_URI, OIDC_TOKEN_URI, OIDC_USERINFO_URI, GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, SLACK_CLIENT_ID, SLACK_CLIENT_SECRET, SMTP_SERVICE, SMTP_USERNAME, SMTP_PASSWORD, SMTP_FROM_EMAIL, DEFAULT_LANGUAGE, RATE_LIMITER_ENABLED, IFRAMELY_URL, LOG_LEVEL
- Config files: .env, docker-compose.yml
- Prompt files: none
- Accounts you'll need: an OIDC, Google, Azure, GitHub, GitLab, Discord, or Slack identity provider (at least one is required for sign-in); S3-compatible storage (optional)

## Operable: what an agent can drive

Operability: official. Interface: mcp at https://github.com/outline/outline/tree/main/server/routes/mcp (published by the builder, both).

### Reach (partial coverage)

- Create, read, update, and search documents: reachable. server/routes/mcp/index.ts imports tools/documents; tool names not read individually
- Organize documents into collections: reachable. tools/collections module
- Comment on documents: reachable. tools/comments module
- Attach files: reachable. tools/attachments module
- Use and manage templates: reachable. tools/templates module
- Look up users: reachable. tools/users module
- Fetch a document by URL or id: reachable. tools/fetch module
- Share documents publicly and manage permissions: undetermined. no shares or memberships tool module seen; REST API has shares.* and collections.add_user
- Slack, GitHub, Linear, Notion integrations: not reachable. configured with env vars and OAuth in the UI; no MCP tool module
- AI question answering: not reachable. hosted-plan feature per getoutline.com/pricing; not an MCP tool

## Code stack

- Languages: TypeScript
- Frameworks: React, Node.js, Koa, Sequelize
- Package manager: yarn
- Database: PostgreSQL, Redis
- Hosting target: docker

## Evidence and confidence

- formFactor: README: React and Node.js web app; container images on Docker Hub (confidence 0.95)
- executionModel: no model SDK in .env.sample; AI question answering is a hosted-plan feature (confidence 0.7)
- operability: server/routes/mcp in the outline/outline repo; tool modules documents, collections, comments, attachments, templates, users, fetch (confidence 0.9)
- effort: .env.sample with 90+ documented variables; docs.getoutline.com/s/hosting (confidence 0.9)
- editions: getoutline.com/pricing: Starter $10, Team $79, Business $249 per month; LICENSE: BUSL-1.1 with free self-host grant (confidence 0.85)
- active: pushedAt 2026-09-03
- provenance: CLAUDE.md and AGENTS.md at root; project dates to 2016 (confidence 0.4)
- reach:  (confidence 0.7)

## Open questions

- Read the exact MCP tool names and OAuth scopes in server/routes/mcp/tools
- Is AI question answering available self-hosted, and which provider key does it need?
- Are the cloud prices per workspace or per seat band?

## Sources

- https://github.com/outline/outline (sourcing:notes-knowledge:curated)
- https://www.getoutline.com/pricing (analysis)
- https://github.com/outline/outline/blob/main/LICENSE (analysis)
