项目简介

Notion API MCP服务器是一个实现了Model Context Protocol (MCP) 的服务器,它将 Notion API 转化为一系列可被大型语言模型 (LLM) 客户端调用的工具。通过此服务器,LLM应用可以安全、可扩展地与Notion进行交互,实现内容的读取、创建、编辑等功能。

主要功能点

  • 资源访问: 通过标准化的MCP协议,LLM客户端可以访问Notion中的页面、数据库等资源。
  • 工具集成: 将Notion API的各种操作封装成工具 (Tools),例如:
    • 搜索页面 (v1/search)
    • 添加评论 (v1/comments)
    • 创建页面 (v1/pages)
    • 获取页面内容 (v1/pages)
  • 易于集成: 提供简单的安装和配置步骤,可以快速集成到支持MCP协议的LLM客户端,如 Cursor 编辑器、Claude 桌面应用等。
  • 基于OpenAPI: 基于Notion API的 OpenAPI 规范自动生成 MCP 工具,保证了工具的全面性和与API同步。

安装步骤

  1. 安装 npm 包: 无需手动下载,此 MCP 服务器通过 npm 包 '@notionhq/notion-mcp-server' 发布和运行。

  2. 配置 MCP 客户端: 在您的 MCP 客户端配置文件中(例如 '.cursor/mcp.json' 或 'claude_desktop_config.json'),添加 Notion API MCP 服务器的配置信息。

服务器配置

以下是在 MCP 客户端配置文件中添加 Notion API MCP 服务器的配置信息,客户端将根据此配置连接到服务器。

{
  "mcpServers": {
    "notionApi": { // 服务器名称,客户端用此名称引用
      "command": "npx", // 启动服务器的命令,这里使用 npx 运行 npm 包
      "args": ["-y", "@notionhq/notion-mcp-server"], // 命令参数,-y 表示自动安装,@notionhq/notion-mcp-server 是 npm 包名
      "env": { // 环境变量配置
        "OPENAPI_MCP_HEADERS": "{\"Authorization\": \"Bearer YOUR_NOTION_API_TOKEN\", \"Notion-Version\": \"2022-06-28\" }" //  设置请求头,YOUR_NOTION_API_TOKEN 需要替换为您的 Notion API 密钥
      }
    }
  }
}

配置参数说明:

  • '"mcpServers"': MCP 服务器配置的根节点。
  • '"notionApi"': 自定义的服务器名称,例如 "notionApi",在客户端指令中会用到。
  • '"command"': 启动 MCP 服务器的命令,通常为 'npx' 或 'node'。
  • '"args"': 传递给 'command' 的参数,用于指定要运行的 npm 包或脚本。
  • '"env"': 环境变量配置,用于传递 API 密钥等敏感信息。
    • '"OPENAPI_MCP_HEADERS"': 以 JSON 字符串格式设置 HTTP 请求头。
      • '"Authorization": "Bearer YOUR_NOTION_API_TOKEN"': 必须配置,替换 'YOUR_NOTION_API_TOKEN' 为您在 Notion 开发者后台生成的 API 密钥。
      • '"Notion-Version": "2022-06-28"': 指定 Notion API 版本,通常无需修改。

基本使用方法

配置完成后,您可以在支持 MCP 协议的 LLM 客户端中使用自然语言指令来操作 Notion。以下是一些示例:

  1. 在页面上添加评论:

    Comment "Hello MCP" on page "Getting started"

    LLM 会调用 'v1/search' 和 'v1/comments' 工具来实现评论功能。

  2. 添加新的页面到指定页面下:

    Add a page titled "Notion MCP" to page "Development"

    LLM 会调用相应的工具在 "Development" 页面下创建名为 "Notion MCP" 的新页面。

  3. 获取页面内容:

    Get the content of page 1a6b35e6e67f802fa7e1d27686f017f2

    LLM 会直接调用页面内容获取工具,通过页面 ID 获取内容。

注意: 请确保您已在环境变量 '"OPENAPI_MCP_HEADERS"' 中正确配置了您的 Notion API 密钥。

信息

分类

生产力应用