outline-stupid-mcp
v1.0.0
Published
Stupid MCP server for Outline Wiki with AI-powered RAG Q&A, summarization, and semantic search
Maintainers
Readme
Outline Wiki MCP Server
A Model Context Protocol (MCP) server that enables LLMs to interact with Outline wiki through structured API calls. This server provides document management, search, collections, comments, and AI-powered smart features including RAG-based Q&A.
Why This Server?
Most Outline MCP servers provide basic API wrappers. This one adds optional Smart Features:
| Feature | What it does |
|---------|--------------|
| ask_wiki | Ask questions in natural language, get answers based on your wiki content (RAG) |
| find_related | Find semantically similar documents, not just keyword matches |
| summarize_document | Generate summaries of long documents |
| suggest_tags | Get tag suggestions based on content analysis |
When you might need this:
- Your team's wiki has grown large and search isn't enough
- You want to query your documentation conversationally
- You need semantic search across your knowledge base
When basic MCP is sufficient:
- You only need CRUD operations on documents
- You don't want to set up OpenAI API
- Your wiki is small and well-organized
Smart features require ENABLE_SMART_FEATURES=true and an OpenAI API key or a DeepSeek API key. Without these, the server works as a standard Outline MCP.
Example Usage
User: "What's our policy on remote work?"
→ ask_wiki searches your wiki and returns an answer with source links
User: "Find documents related to the onboarding guide"
→ find_related returns semantically similar docs (not just keyword matches)
User: "Summarize the Q4 planning document"
→ summarize_document generates a concise summary in your preferred languageSupported Clients
| Client | Tools | Resources | Prompts | |--------|:-----:|:---------:|:-------:| | Claude Desktop | ✅ | ✅ | ✅ | | Claude Code | ✅ | ✅ | ✅ | | VS Code GitHub Copilot | ✅ | ✅ | ✅ | | Cursor | ✅ | - | ✅ | | Windsurf | ✅ | - | - | | ChatGPT Desktop | ✅ | - | - |
Getting Started
Requirements
- Node.js 18.0.0 or higher
- Outline instance with API access
- (Optional) OpenAI API key for smart features
Getting Your Outline API Token
- Log in to your Outline instance
- Go to Settings → API
- Click Create API Key
- Copy the generated token (starts with
ol_api_)
Installation
Add to your Claude Desktop configuration:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"outline": {
"command": "npx",
"args": ["-y", "outline-stupid-mcp"],
"env": {
"OUTLINE_URL": "https://your-outline-instance.com",
"OUTLINE_API_TOKEN": "ol_api_xxxxxxxxxxxxx"
}
}
}
}Run the following command:
claude mcp add outline -e OUTLINE_URL=https://your-outline-instance.com -e OUTLINE_API_TOKEN=ol_api_xxxxxxxxxxxxx -- npx -y outline-stupid-mcpOr add to ~/.claude.json (global) or .mcp.json (project-local):
{
"mcpServers": {
"outline": {
"command": "npx",
"args": ["-y", "outline-stupid-mcp"],
"env": {
"OUTLINE_URL": "https://your-outline-instance.com",
"OUTLINE_API_TOKEN": "ol_api_xxxxxxxxxxxxx"
}
}
}
}Note: The
~/.claude/settings.jsonfile is ignored for MCP servers. Use~/.claude.jsonor.mcp.jsoninstead.
Add to your VS Code settings (.vscode/mcp.json):
{
"servers": {
"outline": {
"command": "npx",
"args": ["-y", "outline-stupid-mcp"],
"env": {
"OUTLINE_URL": "https://your-outline-instance.com",
"OUTLINE_API_TOKEN": "ol_api_xxxxxxxxxxxxx"
}
}
}
}Add to Cursor MCP settings (~/.cursor/mcp.json):
{
"mcpServers": {
"outline": {
"command": "npx",
"args": ["-y", "outline-stupid-mcp"],
"env": {
"OUTLINE_URL": "https://your-outline-instance.com",
"OUTLINE_API_TOKEN": "ol_api_xxxxxxxxxxxxx"
}
}
}
}Add to Windsurf MCP settings (~/.codeium/windsurf/mcp_config.json):
{
"mcpServers": {
"outline": {
"command": "npx",
"args": ["-y", "outline-stupid-mcp"],
"env": {
"OUTLINE_URL": "https://your-outline-instance.com",
"OUTLINE_API_TOKEN": "ol_api_xxxxxxxxxxxxx"
}
}
}
}ChatGPT supports MCP through its desktop app. Add the server in Settings → MCP Servers with:
- Command:
npx - Arguments:
-y outline-stupid-mcp - Environment variables as shown above
Configuration
Environment Variables
| Variable | Description | Required | Default |
|----------|-------------|:--------:|---------|
| OUTLINE_URL | Your Outline instance URL | Yes | https://app.getoutline.com |
| OUTLINE_API_TOKEN | Your Outline API token | Yes | - |
| READ_ONLY | Enable read-only mode | No | false |
| DISABLE_DELETE | Disable delete operations | No | false |
| MAX_RETRIES | API retry attempts | No | 3 |
| RETRY_DELAY_MS | Retry delay (ms) | No | 1000 |
| ENABLE_SMART_FEATURES | Enable AI features | No | false |
| OPENAI_API_KEY | OpenAI API key | No* | - |
| DEEPSEEK_API_KEY | DeepSeek API key | No* | - |
* Required when ENABLE_SMART_FEATURES=true (you need to provide at least one of them)
Smart Features Configuration
To enable AI-powered features (RAG Q&A, summarization, etc.), add these to your config:
{
"mcpServers": {
"outline": {
"command": "npx",
"args": ["-y", "outline-stupid-mcp"],
"env": {
"OUTLINE_URL": "https://your-outline-instance.com",
"OUTLINE_API_TOKEN": "ol_api_xxxxxxxxxxxxx",
"ENABLE_SMART_FEATURES": "true",
"OPENAI_API_KEY": "sk-xxxxxxxxxxxxx"
}
}
}
}Tools
Search & Discovery
| Tool | Description |
|------|-------------|
| search_documents | Search documents by keyword with pagination |
| get_document_id_from_title | Find document ID by title |
| list_collections | Get all collections |
| get_collection_structure | Get document hierarchy in a collection |
| list_recent_documents | Get recently modified documents |
Document Operations
| Tool | Description |
|------|-------------|
| get_document | Get full document content by ID |
| export_document | Export document in Markdown |
| create_document | Create a new document |
| update_document | Update document (supports append) |
| move_document | Move document to another location |
Document Lifecycle
| Tool | Description |
|------|-------------|
| archive_document | Archive a document |
| unarchive_document | Restore archived document |
| delete_document | Delete document (soft/permanent) |
| restore_document | Restore from trash |
| list_archived_documents | List archived documents |
| list_trash | List trashed documents |
Comments & Collaboration
| Tool | Description |
|------|-------------|
| add_comment | Add comment (supports replies) |
| list_document_comments | Get document comments |
| get_comment | Get specific comment |
| get_document_backlinks | Find linking documents |
Collection Management
| Tool | Description |
|------|-------------|
| create_collection | Create collection |
| update_collection | Update collection |
| delete_collection | Delete collection |
| export_collection | Export collection |
| export_all_collections | Export all collections |
Batch Operations
| Tool | Description |
|------|-------------|
| batch_create_documents | Create multiple documents |
| batch_update_documents | Update multiple documents |
| batch_move_documents | Move multiple documents |
| batch_archive_documents | Archive multiple documents |
| batch_delete_documents | Delete multiple documents |
Smart Features (AI-Powered)
Requires ENABLE_SMART_FEATURES=true and OPENAI_API_KEY (or DEEPSEEK_API_KEY).
| Tool | Description |
|------|-------------|
| smart_status | Check status and indexed count |
| sync_knowledge | Sync docs to vector database |
| ask_wiki | RAG-based Q&A on wiki content |
| summarize_document | Generate AI summary |
| suggest_tags | AI-suggested tags |
| find_related | Find semantically related docs |
| generate_diagram | Generate Mermaid diagrams |
Smart Features Usage
# 1. First, sync your wiki documents
sync_knowledge
# 2. Ask questions about your wiki
ask_wiki: "What is our deployment process?"
# 3. Summarize long documents
summarize_document: { documentId: "doc-id", language: "Korean" }
# 4. Find related content
find_related: { documentId: "doc-id", limit: 5 }Technology Stack
| Component | Technology | |-----------|------------| | Vector Database | LanceDB (embedded) | | Embeddings | OpenAI text-embedding-3-small | | LLM | GPT-4o-mini | | Text Chunking | LangChain |
Safety Features
Read-Only Mode
READ_ONLY=trueRestricts to read operations only: search, get, export, list operations, and all smart features.
Disable Delete
DISABLE_DELETE=trueBlocks: delete_document, delete_collection, batch_delete_documents
Development
# Clone repository
git clone https://github.com/makcy/outline-wiki-mcp.git
cd outline-wiki-mcp
# Install dependencies
npm install
# Build
npm run build
# Run tests
npm test
# Type check
npm run typecheckLicense
MIT License - see LICENSE for details.
