Outline MCP Server

Outline MCP Server

An MCP server that enables reading, writing, and searching documents in Outline via its API. It supports document management, full-text search, and collection organization using Markdown formatting.

Category
访问服务器

README

Outline MCP Server

A Model Context Protocol (MCP) server for Outline that enables reading and writing documents through the Outline API.

Features

  • Read Documents: Get individual documents, search, and list documents
  • Write Documents: Create, update, and delete documents
  • Collection Management: List and retrieve collection information
  • Full Text Search: Search across all documents in your Outline instance
  • Markdown Support: Create and edit documents with full Markdown formatting

Installation

  1. Clone or download this repository
  2. Install dependencies:
    npm install
    
  3. Build the project:
    npm run build
    

Configuration

Before using the server, you need to set up your Outline API credentials:

  1. Get your Outline API token:

    • Log into your Outline instance (e.g., https://app.getoutline.com)
    • Go to Settings → API Tokens
    • Create a new token
  2. Set environment variables:

    export OUTLINE_BASE_URL="https://your-outline-instance.com"
    export OUTLINE_API_KEY="your-api-token-here"
    

Usage

Running the Server

Start the MCP server:

npm start

The server communicates via stdio and is compatible with any MCP client.

Available Tools

Document Operations

  1. outline_get_document

    • Get a specific document by ID
    • Parameters: id (string, required)
  2. outline_search_documents

    • Search for documents across your Outline instance
    • Parameters: query (string, required), limit (number, optional, default: 25)
  3. outline_list_documents

    • List documents, optionally filtered by collection
    • Parameters: collectionId (string, optional), limit (number, optional, default: 25)
  4. outline_create_document

    • Create a new document
    • Parameters:
      • title (string, required)
      • text (string, required) - Markdown content
      • collectionId (string, optional)
      • parentDocumentId (string, optional)
      • publish (boolean, optional, default: false)
  5. outline_update_document

    • Update an existing document
    • Parameters:
      • id (string, required)
      • title (string, optional)
      • text (string, optional) - Markdown content
      • publish (boolean, optional)
  6. outline_delete_document

    • Delete a document
    • Parameters: id (string, required)

Collection Operations

  1. outline_list_collections

    • List all collections in your Outline instance
    • Parameters: none
  2. outline_get_collection

    • Get information about a specific collection
    • Parameters: id (string, required)

Example Usage

Here are some example tool calls:

{
  "name": "outline_search_documents",
  "arguments": {
    "query": "project documentation",
    "limit": 10
  }
}
{
  "name": "outline_create_document",
  "arguments": {
    "title": "New Project Plan",
    "text": "# Project Overview\n\nThis document outlines...",
    "collectionId": "collection-id-here",
    "publish": true
  }
}
{
  "name": "outline_update_document",
  "arguments": {
    "id": "document-id-here",
    "title": "Updated Project Plan",
    "text": "# Updated Project Overview\n\nThis document has been updated..."
  }
}

Development

Project Structure

src/
├── index.ts           # Main MCP server implementation
├── outline-client.ts  # Outline API client

Scripts

  • npm run build - Compile TypeScript to JavaScript
  • npm run dev - Build and run the server
  • npm run watch - Watch for changes and rebuild
  • npm start - Run the compiled server

Building

npm run build

The compiled JavaScript will be output to the dist/ directory.

Configuration with MCP Clients

To use this server with an MCP client, you'll need to configure it to run this server. The exact configuration depends on your client, but generally you'll need to:

  1. Specify the command to run: node /path/to/outline-mcp-server/dist/index.js
  2. Set the environment variables for your Outline instance
  3. Configure the client to use stdio transport

Client Configuration Examples

Claude

For clients like Claude that use a JSON configuration file, you can add the following to your mcp-servers.json:

{
  "mcpServers": {
    "outline": {
      "command": "node",
      "args": ["/path/to/your/projects/outline-mcp-server/dist/index.js"],
      "env": {
        "OUTLINE_API_KEY": "your-secret-api-token",
        "OUTLINE_BASE_URL": "https://your-outline-instance.com"
      }
    }
  }
}

Make sure to replace the args path with the absolute path to the index.js file in your project, and fill in your actual credentials in the env block.

Cursor

For clients like Cursor, you can typically set environment variables directly within the client's settings or by launching the client from a terminal where you have already exported the variables.

export OUTLINE_BASE_URL="https://your-outline-instance.com"
export OUTLINE_API_KEY="your-secret-api-token"

# Then launch Cursor from this terminal
/path/to/Cursor.app/Contents/MacOS/Cursor

API Rate Limits

Be aware that Outline may have API rate limits. The server doesn't implement rate limiting internally, so you may need to handle this at the client level if you're making many requests.

Error Handling

The server includes comprehensive error handling and will return descriptive error messages for common issues like:

  • Missing or invalid API credentials
  • Network connectivity problems
  • Invalid document IDs
  • API rate limit errors

Security Notes

  • Store your API token securely using environment variables
  • Never commit your API token to version control
  • Consider using restricted API tokens with minimal required permissions
  • Be cautious when allowing others to use your MCP server as it has full access to your Outline instance

License

MIT License - see LICENSE file for details.

Contributing

Contributions are welcome! Please feel free to submit issues and pull requests.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选