msasikumar/outline-mcp-server
If you are the rightful owner of outline-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
The MCP server integrates with the Outline notes application to provide a seamless interface for managing documents and collections.
Outline MCP Server
A Model Context Protocol (MCP) server that integrates with your self-hosted Outline notes application at outline.sashi.online.
Features
This MCP server provides the following tools for interacting with Outline:
- outline_list_documents - List documents with optional filtering
- outline_search_documents - Search documents using natural language
- outline_get_document - Retrieve a specific document by ID
- outline_create_document - Create new documents in Markdown
- outline_update_document - Update existing documents
- outline_delete_document - Archive or permanently delete documents
- outline_list_collections - List all available collections
Prerequisites
- Docker and Docker Compose installed
- Outline API key from your Outline instance
- Access to
outline.sashi.online
Getting Your Outline API Key
- Log in to your Outline instance at
https://outline.sashi.online - Go to Settings → API & Apps
- Click Create Token or New API Key
- Copy the generated API key (treat it like a password!)
Installation & Setup
Step 1: Navigate to the Project Directory
cd /Users/Sashi/outline-mcp-server
Step 2: Create Environment File
cp .env.example .env
Edit the .env file and add your Outline API key:
OUTLINE_URL=https://outline.sashi.online
OUTLINE_API_KEY=your_actual_api_key_here
Step 3: Build the Docker Image
docker-compose build
Step 4: Configure MCP Client
To use this server with Claude Desktop or other MCP clients, you need to configure it. The server communicates via stdio.
For Claude Desktop, add this to your MCP configuration file:
On macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"outline": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"--env-file",
"/Users/Sashi/outline-mcp-server/.env",
"outline-mcp-server"
]
}
}
}
Note: Make sure to build the image first with the tag:
docker build -t outline-mcp-server /Users/Sashi/outline-mcp-server
Usage
Running the Server Directly (for testing)
docker-compose up
Example Commands via MCP Client
Once configured with an MCP client like Claude Desktop, you can use natural language commands:
-
List all collections:
- "Show me all my Outline collections"
-
Search for documents:
- "Search for documents about Docker in Outline"
-
Create a new document:
- "Create a new document titled 'Meeting Notes' in collection XYZ with content..."
-
Update a document:
- "Update document ABC with new content..."
-
Get a specific document:
- "Get the content of document with ID XYZ"
Tool Details
outline_list_collections
Lists all collections in your Outline workspace.
Parameters:
limit(optional): Maximum number of collections (default: 25)
outline_list_documents
Lists documents from Outline.
Parameters:
collectionId(optional): Filter by collectionlimit(optional): Maximum results (default: 25)offset(optional): Pagination offset (default: 0)
outline_search_documents
Search for documents using keywords or natural language.
Parameters:
query(required): Search querycollectionId(optional): Limit to specific collectionlimit(optional): Maximum results (default: 25)
outline_get_document
Get a specific document's content and metadata.
Parameters:
id(required): Document UUID or URL ID
outline_create_document
Create a new document in Markdown format.
Parameters:
title(required): Document titlecollectionId(required): Collection IDtext(optional): Markdown contentparentDocumentId(optional): For nested documentspublish(optional): Publish immediately (default: false)
outline_update_document
Update an existing document.
Parameters:
id(required): Document UUIDtitle(optional): New titletext(optional): New contentappend(optional): Append instead of replace (default: false)publish(optional): Publish document
outline_delete_document
Archive or permanently delete a document.
Parameters:
id(required): Document UUIDpermanent(optional): Permanent delete vs archive (default: false)
Project Structure
outline-mcp-server/
├── src/
│ └── index.ts # Main MCP server implementation
├── dist/ # Compiled JavaScript (generated)
├── Dockerfile # Docker image configuration
├── docker-compose.yml # Docker Compose setup
├── package.json # Node.js dependencies
├── tsconfig.json # TypeScript configuration
├── .env.example # Environment variables template
└── README.md # This file
Development
Local Development (without Docker)
- Install dependencies:
npm install
- Set environment variables:
export OUTLINE_URL=https://outline.sashi.online
export OUTLINE_API_KEY=your_api_key
- Build:
npm run build
- Run:
npm start
Watch Mode for Development
npm run dev
Troubleshooting
API Key Issues
If you get authentication errors:
- Verify your API key is correct in
.env - Check that the key hasn't expired
- Ensure you have permissions in Outline
Connection Issues
If the server can't connect to Outline:
- Verify
outline.sashi.onlineis accessible - Check your network/firewall settings
- Ensure HTTPS is working properly
Docker Issues
If Docker won't start:
- Ensure Docker daemon is running
- Check that the
.envfile exists and has the correct format - Verify the image was built successfully
Security Notes
- Never commit your
.envfile or API keys to version control - The API key has full access to your Outline account - protect it carefully
- Consider using Docker secrets for production deployments
- Regularly rotate your API keys
Contributing
Feel free to extend this server with additional Outline API endpoints:
- Document templates
- Share management
- Comments
- User management
- And more!
License
MIT
Support
For Outline API documentation, visit: https://www.getoutline.com/developers For MCP documentation, visit: https://modelcontextprotocol.io