使用说明

项目简介

Notion MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为大型语言模型 (LLM) 提供与 Notion 工作空间无缝集成的能力。通过此服务器,LLM 可以使用预定义的工具来搜索、读取、创建和更新 Notion 页面和数据库,从而实现更智能化的信息检索和内容管理。

主要功能点

  • 页面操作:支持在 Notion 工作空间中搜索页面、创建新页面(支持 Markdown 内容)、读取页面内容、更新现有页面以及管理页面评论。
  • 数据库操作:支持创建和管理数据库、添加和更新数据库条目、使用过滤器和排序进行数据库查询。
  • 增强的 Markdown 支持:在页面创建和更新中,支持包括多级标题、代码块、待办事项、引用、分割线和图片等丰富的 Markdown 格式。
  • 多种数据类型支持:数据库操作支持多种 Notion 属性类型,如标题、富文本、数字、选择、多选、日期、复选框等。

安装步骤

  1. 克隆仓库

    git clone https://github.com/v-3/notion-server.git
    cd notion-server
  2. 安装依赖

    npm install
  3. 配置 Notion API 密钥

    • 创建 '.env' 文件并将您的 Notion API 密钥添加到文件中:
      echo "NOTION_API_KEY=your_notion_api_key_here" > .env
      或者,您也可以直接导出环境变量:
      export NOTION_API_KEY=your_notion_api_key_here
      请务必替换 'your_notion_api_key_here' 为您在 Notion 官方网站上创建的集成密钥。 创建集成和获取密钥的步骤请参考仓库 README 文档的 "🔐 Setting Up Notion Access" 部分。
  4. 构建服务器

    npm run build

服务器配置

要将 Notion MCP Server 与 MCP 客户端(例如 Claude Desktop)连接,您需要在客户端的配置文件中添加服务器配置信息。以 Claude Desktop 为例,您需要编辑 'claude_desktop_config.json' 文件,添加如下配置:

{
    "mcpServers": {
        "notion": {  // 服务器名称,可以自定义
            "command": "node",  // 启动服务器的命令,这里使用 Node.js 运行
            "args": ["/absolute/path/to/notion-server/build/index.js"], // 服务器启动参数,指向构建后的 index.js 文件,请替换为您的实际路径
            "env": {
                "NOTION_API_KEY": "your_notion_api_key_here" //  Notion API 密钥,这里也可以直接配置,或者留空从系统环境变量中读取
            }
        }
    }
}

请注意:

  • '/absolute/path/to/notion-server/build/index.js' 需要替换为 'notion-server' 仓库在您本地机器上的 绝对路径
  • 'your_notion_api_key_here' 建议留空,让服务器从系统环境变量中读取 'NOTION_API_KEY',这样更安全。如果您选择在此处配置,请替换为您的 Notion API 密钥。
  • 配置完成后,重启 Claude Desktop 使配置生效。

基本使用方法

配置完成后,您的 MCP 客户端(如 Claude Desktop)应该能够检测到名为 "notion" 的 MCP 服务器。您可以通过客户端提供的界面或指令,调用 Notion MCP Server 提供的工具来与您的 Notion 工作空间进行交互。

例如,在 Claude Desktop 中,您可以使用 '@notion.工具名称' 的形式来调用工具,例如:

  • '@notion.search_pages query="您的搜索关键词"' // 搜索包含关键词的 Notion 页面
  • '@notion.read_page pageId="page_id"' // 读取指定 pageId 的页面内容
  • '@notion.create_page parentPageId="page_id" title="新页面标题" content="# 欢迎来到新页面"' // 在指定 pageId 下创建新页面,标题为 "新页面标题",内容为 Markdown 格式的欢迎信息

具体的工具名称和参数请参考仓库 README 文档的 "🛠️ Available Tools" 部分,以及代码中的 'TOOL_DEFINITIONS' 常量定义。

信息

分类

生产力应用