mcpField
N
notion-mcp

notion-mcp

本地服务
github.com/shck-dev生产力218 周前更新

关于 notion-mcp

notion-mcp 是用于搜索 Notion 工作区并以 Markdown 导入、导出页面内容的 MCP 服务。它还支持创建页面、处理评论和图片,使用从浏览器获取的凭据,无需 OAuth 或工作区管理员审批。

主要功能

  1. 01全文搜索工作区
  2. 02将页面导出为 Markdown
  3. 03导入或追加 Markdown
  4. 04创建子页面
  5. 05上传或引用图片
  6. 06列出评论并回复

适用场景

  1. 01查找 Notion 工作区中的页面
  2. 02将页面内容导出到 Markdown 工作流
  3. 03将本地 Markdown 文件写入或追加到页面
  4. 04创建页面并参与讨论

MCP 相关

向 MCP 客户端提供 Notion 搜索、页面导入和导出、页面创建、图片及评论工具,并附带设置提示词和指南资源。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"shck-dev-notion": {
"command": "npx",
"args": [
"-y",
"@shck-dev/notion-mcp"
],
"env": {
"NOTION_TOKEN": "<NOTION_TOKEN>",
"NOTION_USER_ID": "<NOTION_USER_ID>",
"NOTION_SPACE_ID": "<NOTION_SPACE_ID>"
}
}
}
}
启动命令npx -y @shck-dev/notion-mcp
需要配置的环境变量
NOTION_TOKEN密钥Notion token_v2 cookie value from browser DevTools
NOTION_USER_IDNotion user ID from x-notion-active-user-header
NOTION_SPACE_IDNotion workspace ID from API request body

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@shck-dev/notion-mcp0.5.2

工具

13

收录的工具列表 · 更新于 2 周前

参数类型必填说明
limitnumber否要返回的最大结果数(默认值:10)
querystring是搜索查询(匹配页面标题和内容)

详细介绍

MCP Badge

@shck-dev/notion-mcp

Notion MCP 服务 — 搜索、导出和导入 Markdown 页面

npm version npm downloads license

无需工作区管理员权限。无需 OAuth。无需共享页面。
只需从浏览器中复制 3 个值,即可开始使用。

博客文章 | GitHub | npm


功能

  • 搜索 — 在整个工作区中进行全文搜索
  • 导出 — 将任意页面下载为整洁的 Markdown(标题、列表、待办事项、代码块、表格、链接、带可查看 URL 的图片)
  • 导入 — 将 Markdown 写入 Notion 页面(替换内容),支持字符串或本地文件
  • 追加 — 将 Markdown 添加到页面末尾,不影响现有内容
  • 创建 — 新建子页面,可选择用 Markdown 字符串或文件预填内容
  • 图片 — 将本地图片上传到页面,或引用外部 URL
  • 评论 — 列出未结束的讨论、添加新评论、回复讨论串
  • 一条命令完成设置 — npx @shck-dev/notion-mcp init:粘贴浏览器中的“Copy as cURL”,即可提取并保存凭据
  • 提示词和资源 — 提供 notion_setup 提示词和 notion://guide 资源,方便在客户端中完成入门设置
  • 零设置障碍 — 使用与 Notion 网页应用相同的内部 API;只要能在浏览器中看到内容,此服务就能访问

工具

工具描述
notion_search在工作区的所有页面中进行全文搜索
notion_export_page将任意 Notion 页面导出为 Markdown;图片链接会解析为可查看的 CDN URL(传入 image_dir 可改为将图片下载到本地)
notion_import_page将 Markdown 写入 Notion 页面 — 替换所有现有内容
notion_import_page_from_file将本地 .md 文件写入页面 — 替换所有内容
notion_append_to_page将 Markdown 追加到页面末尾(不会破坏现有内容)
notion_append_to_page_from_file将本地 .md 文件追加到页面末尾(不会破坏现有内容)
notion_create_page创建新的子页面,可选择预填 Markdown 内容
notion_create_page_from_file根据本地 .md 文件创建新的子页面
notion_add_image在页面末尾添加图片 — 本地文件会上传到 Notion,http(s) URL 则按原样引用
notion_list_comments列出页面上未结束的讨论串
notion_add_comment开始新讨论 — 可添加行内评论(锚定到文本)或块级评论
notion_reply_comment回复现有讨论串
notion_init粘贴浏览器中的“Copy as cURL”以提取并保存凭据

为什么不使用官方 Notion API?

此 MCP 服务官方 Notion API
设置从 DevTools 中复制 3 个值创建集成、获得管理员批准、共享页面
页面访问权限你能看到的所有内容仅限明确共享的页面
Markdown双向支持(导出 + 导入)只读的块 API
身份验证Cookie(token_v2)OAuth / 集成令牌

权衡:内部 API 未公开文档,可能会发生变化。令牌会定期过期(需从浏览器中重新获取)。

快速开始

最简单:交互式设置
npx @shck-dev/notion-mcp init

在 Chrome 中打开 Notion → 开发者工具(F12)→ 网络 → 点击任意一个 notion.so/api/v3/… 请求 → 右键 → 复制为 cURL,然后粘贴并按 Ctrl-D。系统会提取你的令牌、用户 ID 和工作区 ID,并保存到 ~/.notion-mcp/config.json。然后注册服务——无需 env 块:

claude mcp add notion -- npx @shck-dev/notion-mcp

想手动设置这三个值?请看下面的步骤。

1. 从浏览器获取凭据
  1. 在 Chrome 中打开 notion.so
  2. 按 F12 → 应用程序 → Cookie → www.notion.so
  3. 复制 token_v2 Cookie 值 → NOTION_TOKEN
  4. 按 F12 → 网络选项卡,在 Notion 中执行任意操作
  5. 找到一个发往 api/v3/* 的 POST 请求,点击它
  6. 从请求标头中复制 x-notion-active-user-header → NOTION_USER_ID
  7. 从请求正文(载荷)中找到 spaceId → NOTION_SPACE_ID
2. 配置 MCP 客户端
Claude Code
claude mcp add notion -- env NOTION_TOKEN=your_token NOTION_USER_ID=your_user_id NOTION_SPACE_ID=your_space_id npx @shck-dev/notion-mcp
Claude Desktop / Cursor / 任意 MCP 客户端

添加到你的 MCP 配置中(claude_desktop_config.json、.cursor/mcp.json 等):

{
  "mcpServers": {
    "notion": {
      "command": "npx",
      "args": ["@shck-dev/notion-mcp"],
      "env": {
        "NOTION_TOKEN": "your_token_v2_value",
        "NOTION_USER_ID": "your_user_id",
        "NOTION_SPACE_ID": "your_space_id"
      }
    }
  }
}

要求

  • Node.js ≥ 18(用于 npx)——或使用 Bun。发布的服务已编译为兼容 Node.js 的 JS,因此运行时不再需要 Bun。

限制

  • 内部 API——未公开文档,可能会随 Notion 更新而失效
  • 令牌过期——token_v2 会定期过期;身份验证失败时,请从浏览器重新获取
  • 数据库——数据库/集合页面尚不能导出行;子页面会呈现为链接,这类页面会返回说明性提示,而非空输出
  • 块粒度——导入会替换所有内容,追加会添加到末尾(无法就地编辑单个块)
  • 有损 Markdown——转换期间,某些复杂格式可能会简化(例如,导入时嵌套列表会扁平化)
  • 外部图片——通过 notion_add_image 添加(或嵌入 Markdown 中)的 http(s) 图片 URL 会原样引用,不会重新上传到 Notion

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。