返回市场
大纲-MCP服务器

大纲-MCP服务器

作者:HelicopterHelicopter5 星标更新:2025-06-29

项目介绍

Outline MCP 服务器

这是一个用于 Outline 的模型上下文协议(MCP)服务器,它通过 Outline API 实现文档的读写功能。

功能

  • 读取文档:获取单个文档、搜索和列出文档
  • 写入文档:创建、更新和删除文档
  • 集合管理:列出并检索集合信息
  • 全文搜索:在你的 Outline 实例中搜索所有文档
  • Markdown 支持:使用完整的 Markdown 格式创建和编辑文档

安装

  1. 克隆或下载此仓库
  2. 安装依赖项:
    npm install
    
  3. 构建项目:
    npm run build
    

配置

在使用服务器之前,你需要设置你的 Outline API 凭证:

  1. 获取你的 Outline API 令牌

  2. 设置环境变量

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

使用

运行服务器

启动 MCP 服务器:

npm start

该服务器通过标准 I/O 通信,并与任何 MCP 客户端兼容。

可用工具

文档操作

  1. outline_get_document

    • 通过 ID 获取特定文档
    • 参数:id(字符串,必需)
  2. outline_search_documents

    • 在你的 Outline 实例中搜索文档
    • 参数:query(字符串,必需),limit(数字,可选,默认值:25)
  3. outline_list_documents

    • 列出文档,可选地按集合过滤
    • 参数:collectionId(字符串,可选),limit(数字,可选,默认值:25)
  4. outline_create_document

    • 创建新文档
    • 参数:
      • title(字符串,必需)
      • text(字符串,必需)- Markdown 内容
      • collectionId(字符串,可选)
      • parentDocumentId(字符串,可选)
      • publish(布尔值,可选,默认值:false)
  5. outline_update_document

    • 更新现有文档
    • 参数:
      • id(字符串,必需)
      • title(字符串,可选)
      • text(字符串,可选)- Markdown 内容
      • publish(布尔值,可选)
  6. outline_delete_document

    • 删除文档
    • 参数:id(字符串,必需)

集合操作

  1. outline_list_collections

    • 列出你的 Outline 实例中的所有集合
    • 参数:无
  2. outline_get_collection

    • 获取特定集合的信息
  • 参数:id(字符串,必需)

示例用法

这里是一些示例工具调用:

{
  "name": "outline_search_documents",
  "arguments": {
    "query": "项目文档",
    "limit": 10
  }
}
{
  "name": "outline_create_document",
  "arguments": {
    "title": "新项目计划",
    "text": "# 项目概述\n\n本文件概述了...",
    "collectionId": "collection-id-here",
    "publish": true
  }
}
{
  "name": "outline_update_document",
  "arguments": {
    "id": "document-id-here",
    "title": "更新项目计划",
    "text": "# 更新项目概述\n\n本文件已更新..."
  }
}

开发

项目结构

src/
├── index.ts           # 主 MCP 服务器实现
├── outline-client.ts  # Outline API 客户端

脚本

  • npm run build - 将 TypeScript 编译为 JavaScript
  • npm run dev - 构建并运行服务器
  • npm run watch - 监视更改并重新构建
  • npm start - 运行编译后的服务器

构建

npm run build

编译后的 JavaScript 将输出到 dist/ 目录。

使用 MCP 客户端配置

要使用此服务器与 MCP 客户端一起使用,你需要配置客户端以运行此服务器。具体配置取决于你的客户端,但通常你需要:

  1. 指定要运行的命令:node /path/to/outline-mcp-server/dist/index.js
  2. 设置你的 Outline 实例的环境变量
  3. 配置客户端使用标准 I/O 传输

客户端配置示例

Claude

对于像 Claude 这样的使用 JSON 配置文件的客户端,你可以在你的 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"
      }
    }
  }
}

确保替换 args 路径为你项目中 index.js 文件的实际绝对路径,并在 env 块中填写你的实际凭证。

Cursor

对于像 Cursor 这样的客户端,你通常可以直接在客户端的设置中设置环境变量,或者从已经导出这些变量的终端启动客户端。

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

# 然后从这个终端启动 Cursor
/path/to/Cursor.app/Contents/MacOS/Cursor

API 请求限制

请注意,Outline 可能有 API 请求限制。服务器内部没有实现请求限制,因此如果你发送大量请求,可能需要在客户端级别处理这个问题。

错误处理

服务器包括全面的错误处理,并会返回描述性错误消息,针对常见的问题如:

  • 缺失或无效的 API 凭证
  • 网络连接问题
  • 无效的文档 ID
  • API 请求限制错误

安全注意事项

  • 使用环境变量安全存储你的 API 令牌
  • 不要将你的 API 令牌提交到版本控制
  • 考虑使用具有最小必要权限的受限 API 令牌
  • 当允许其他人使用你的 MCP 服务器时要谨慎,因为它对你的 Outline 实例拥有完全访问权限

许可证

MIT 许可证 - 详情见 LICENSE 文件。

贡献

欢迎贡献!请随时提交问题和拉取请求。