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.
- 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
- 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
Last activity Sep 3, 2026. Fit: adaptable 2, operable 3.
Editions
Self-hosted · Free closed source
- Clone
git clone https://github.com/outline/outline - ImageContainer
Starter · $10 per month closed source
- HostedOpen the hosted app
Team · $79 per month closed source
- HostedOpen the hosted app
Business · $249 per month closed source
- HostedOpen the hosted app
Adaptable: what is yours to change
Make it yours
Config only31 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_KEYUTILS_SECRETDATABASE_URLREDIS_URLURLPORTFORCE_HTTPSFILE_STORAGEFILE_STORAGE_LOCAL_ROOT_DIRAWS_S3_UPLOAD_BUCKET_NAMEAWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYOIDC_CLIENT_IDOIDC_CLIENT_SECRETOIDC_AUTH_URIOIDC_TOKEN_URIOIDC_USERINFO_URIGOOGLE_CLIENT_IDGOOGLE_CLIENT_SECRETSLACK_CLIENT_IDSLACK_CLIENT_SECRETSMTP_SERVICESMTP_USERNAMESMTP_PASSWORDSMTP_FROM_EMAILDEFAULT_LANGUAGERATE_LIMITER_ENABLEDIFRAMELY_URLLOG_LEVEL- Config files
.envdocker-compose.yml- Prompt files
- none
- Accounts you need
- an OIDC, Google, Azure, GitHub, GitLab, Discord, or Slack identity provider (at least one is required for sign-in)S3-compatible storage (optional)
Source
- github.com/outline/outline
- BUSL-1.1 license
- Last commit Sep 3, 2026
- 40,428 stars
Operable: what an agent can drive
Interface
OfficialMCP serverpublished by the builderremote or local
How an agent can drive an Operable Listing, in five levels: native (built for the agent as the primary interface), official (the Builder ships an agent interface), wrapped (a third party wraps the software's API), config (an agent can only drive it by editing files), gui (screen control only). An interface is official only when it is published by the same organization that ships the software. GUI-level Listings are allowed and sorted last.
Reach
Partial coverage. 7 of 10 jobs reachable through the stated interface.
| Job | Through the interface | Evidence |
|---|---|---|
| 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
- ReactNode.jsKoaSequelize
- Package manager
- yarn
- Database
- PostgreSQLRedis
- Hosting target
- docker
- Built
- Mixed (recorded, never ranked)
Evidence and confidence
| Field | Where it was seen | Confidence |
|---|---|---|
| formFactor | README: React and Node.js web app; container images on Docker Hub | 95% |
| executionModel | no model SDK in .env.sample; AI question answering is a hosted-plan feature | 70% |
| operability | server/routes/mcp in the outline/outline repo; tool modules documents, collections, comments, attachments, templates, users, fetch | 90% |
| effort | .env.sample with 90+ documented variables; docs.getoutline.com/s/hosting | 90% |
| editions | getoutline.com/pricing: Starter $10, Team $79, Business $249 per month; LICENSE: BUSL-1.1 with free self-host grant | 85% |
| active | pushedAt 2026-09-03 | – |
| provenance | CLAUDE.md and AGENTS.md at root; project dates to 2016 | 40% |
| reach | 70% |
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
- github.com/outline/outline sourcing:notes-knowledge:curated
- www.getoutline.com/pricing analysis
- github.com/outline/outline/blob/main/LICENSE analysis