Outline Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Outline Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
MCP server for Outline — gives Claude the ability to search and read documents from your Outline instance.
| Tool | Description |
|---|---|
search_documents | Full-text search across all documents. Returns title, excerpt, and URL for each result. |
read_document | Reads the full content of a document in Markdown. Accepts document ID or URL. |
list_collections | Lists all available collections in the workspace. |
In Outline: Settings → API Tokens → Create token
git clone https://github.com/ngarbezza/outline-mcp.git
cd outline-mcp
cp .env.example .envEdit .env:
OUTLINE_URL=https://your-outline-instance.com
OUTLINE_API_TOKEN=your_token_heredocker compose up -dVerify it's running:
curl http://localhost:8000/health
# {"status": "ok", "server": "outline-mcp"}claude mcp add outline --transport sse http://localhost:8000/sseAdd to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"outline": {
"url": "http://localhost:8000/sse"
}
}
}Restart Claude Desktop after saving.
Claude.ai requires a publicly accessible URL. Use a tunnel to expose your local server:
# Option A: cloudflared (recommended, free)
cloudflared tunnel --url http://localhost:8000
# Option B: ngrok
ngrok http 8000Then go to Claude.ai → Settings → Integrations → Add MCP and enter the tunnel URL.
Note: The tunnel URL changes every time you restart it. For a stable setup, configure a named cloudflared tunnel or use ngrok with a reserved domain.
Once connected, you can ask Claude things like:
`curl /health` returns connection refused The container isn't running. Check with docker compose ps and inspect logs with docker compose logs.
Claude says the tool is unavailable
claude mcp list to verify the server is registered.curl http://localhost:8000/health.`401 Unauthorized` errors from Outline Your API token is invalid or expired. Generate a new one in Outline under Settings → API Tokens.
`403 Forbidden` on specific documents The token belongs to a user that doesn't have access to that collection. Check permissions in Outline.
Search returns no results Outline's search indexes documents asynchronously. Newly created documents may take a few minutes to appear. Also verify your token has read access to the collections you're searching.
Tunnel URL keeps changing (Claude.ai) Use a named cloudflared tunnel with a fixed subdomain, or run the MCP server on a VPS and point Claude.ai directly to it.
To run the server locally without Docker:
pip install -r requirements.txt
export OUTLINE_URL=https://your-outline-instance.com
export OUTLINE_API_TOKEN=your_token_here
python src/server.pyMIT
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.