原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。评价和账户功能将在后续阶段推出。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

Notion MCP Server

作者:awkoy版本 3.3.1i★ 179i在你的电脑上运行
注册名称io.github.awkoy/notion-mcp-server

安装

概览

作者提供的说明(英文原文)

Token-auth Notion MCP: pages, databases, blocks, comments, files. Runs headless in CI and agents.

PopNx MCP 的三大支柱

这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

  • 连接方式: 在你的电脑上运行
  • 传输方式: stdio
  • 分类: 文档、表格与办公
  • 你需要填写:NOTION_TOKEN

安装

选择你使用的 AI 应用,然后复制设置。

安装之前

  • 基础检查:3 项中通过 3 项
  • 在你的电脑上运行,拥有你的用户账户的权限(文件、网络、应用)。
  • 需要你自己填写: NOTION_TOKEN, NOTION_PAGE_ID

标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。

你需要

  • npm已安装 Node.js(用于 npx 命令)

你用的是哪个应用?

在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。

打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json

{
  "mcpServers": {
    "notion": {
      "command": "npx",
      "args": [
        "-y",
        "notion-mcp-server"
      ],
      "env": {
        "NOTION_TOKEN": "your-value",
        "NOTION_PAGE_ID": "your-value"
      }
    }
  }
}

在终端中运行这条命令

claude mcp add notion --env NOTION_TOKEN=your-value --env NOTION_PAGE_ID=your-value -- npx -y notion-mcp-server

运行前请先填写空着的值。

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "notion": {
      "command": "npx",
      "args": [
        "-y",
        "notion-mcp-server"
      ],
      "env": {
        "NOTION_TOKEN": "your-value",
        "NOTION_PAGE_ID": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "notion": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "notion-mcp-server"
      ],
      "env": {
        "NOTION_TOKEN": "your-value",
        "NOTION_PAGE_ID": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。

你的选择通过 Cookie 保存在这台设备上,无需账户。

需要你填写的值

  • NOTION_TOKEN 机密 必填 env
    Notion Personal Access Token (ntn_...) or Internal Integration Secret. Create at https://app.notion.com/developers/tokens
  • NOTION_PAGE_ID env
    Optional default parent page ID used by create_page / create_database when no parent is passed.

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

它能做什么

它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过 GitHub 账户 awkoy 验证,该账户拥有此仓库

  • ✓ 通过

    仍在维护

    代码最后更新于3天前

  • ✓ 通过

    有许可证

    使用 MIT

  • – 不适用

    端点有响应

    它在你的电脑上运行,没有互联网端点

  • – 不适用

    使用 OAuth 登录

    在你的电脑上运行,改用本地设置

  • … 尚未检查

    工具描述中没有隐藏指令

    它在你的电脑上运行;我们只能读取互联网端点的工具列表

与“文档、表格与办公”中的其他服务器比较i

  • 星标数多于此分类中其他 2188 个服务器的 100%
  • 发布到注册中心的时间比此分类中其他 2188 个服务器的 94% 更新
  • 基础检查结果等于或优于此分类中其他 2188 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

Notion MCP Server 安全吗?

它在 3 项适用的基础检查中通过了 3 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

你需要填写:NOTION_TOKEN

它在我的电脑上运行还是在云端?

它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。

它还在维护吗?

GitHub 仓库最后更新于3天前,最新版本(3.3.1)于昨天进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js, Docker。

有什么可以替代它?

同一分类中有:Agent-Native Calendar, Excel MCP Server, MCP Server for Excel

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

Agent-Native Calendar

作者:BuilderIO

Agent-Native Google Calendar - manage events, sync, and public booking

在云端运行★ 7,620MIT2个月前更新
安装

Excel MCP Server

作者:haris-musa

Create and edit Excel files with AI: charts, PivotTables, formulas. No Excel needed.

在你的电脑上运行★ 4,276MIT6天前更新
安装

MCP Server for Excel

作者:sbroenne

Excel automation for AI - Sheets, Power Query, DAX, VBA, Tables, Ranges and more. Windows only.

在你的电脑上运行★ 847MIT3天前更新
安装

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

Notion MCP Server — Connect Claude, Cursor, VS Code & Codex to Notion

notion-mcp-server is a Model Context Protocol (MCP) server that gives Claude Code, Claude Desktop, Cursor, VS Code, Codex and any other MCP client read/write access to Notion with one token. Your AI can search, create and edit pages, query databases, comment and upload files, in plain language.

  • Token auth on every Notion plan, Free included. No browser sign-in, so it also runs headless: in CI, cron jobs, background agents and on your own server.
  • Light on context. Its three tools cost 1,005 tokens at connection, against 17,163 for Notion's open-source server, and page reads come back 82% smaller. Benchmark →
  • Built for agents. Batched writes with atomic rollback and idempotency keys, retry on rate limits, markdown in and out, and errors that tell the model how to fix the call.

Quick start

1. Get a Notion token. Open [app.notion.com/developers/tokens](https://app.notion.com/developers/tokens) → + New token → name it, pick your workspace → Create token → copy the ntn_… value. A Personal Access Token sees everything *you* can see, with no per-page sharing. Can't create one? See the other token option.

2. Install it.

npx add-mcp notion-mcp-server --env NOTION_TOKEN=ntn_paste_your_token_here

add-mcp finds the MCP clients on your machine and writes the config for the ones you pick: Claude Code, Claude Desktop, Cursor, VS Code, Codex, Gemini CLI, Cline, Windsurf, Zed and more. Add -g to install for your user instead of the current project.

Keep the --env flag. Without it the entry is written without a token, and every call fails with an auth error.

Or install in one click:

%22%2C%22password%22%3Atrue%7D%5D&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22notion-mcp-server%22%5D%2C%22env%22%3A%7B%22NOTION_TOKEN%22%3A%22%24%7Binput%3Anotion_token%7D%22%7D%7D)

  • Cursor: replace YOUR_NOTION_TOKEN in the generated entry.
  • VS Code (Copilot agent mode): it asks for the token and stores it as a secret.
  • Claude Desktop: double-click the .mcpb file (or drag it into Settings → Extensions) and paste your token. No Node.js needed. New to all this? The step-by-step walkthrough assumes nothing.

Using Claude Code? Install it as a plugin instead. The plugin bundles the server with a Notion workflow skill, which teaches Claude when to search, how to filter a database with where, and how to batch writes. Claude Code asks for the token when you install it (or later with /plugin configure notion-mcp-server@awkoy) and keeps it in your system keychain:

/plugin marketplace add awkoy/notion-mcp-server

/plugin install notion-mcp-server@awkoy

The plugin runs the npm release that matches its own version and needs Node.js 22 or later. It also offers a default parent page and a read-only switch; the plugin's README has the details.

Manual setup: JSON config, Claude Code, Codex, Gemini CLI, Docker

Any client that reads an `mcpServers` block (Cursor's ~/.cursor/mcp.json, Claude Desktop's claude_desktop_config.json, Cline, Zed, Continue…):

{

"mcpServers": { "notion": { "command": "npx", "args": ["-y", "notion-mcp-server"], "env": { "NOTION_TOKEN": "ntn_paste_your_token_here" } } } }

Claude Code:

claude mcp add notion -s user -e NOTION_TOKEN=ntn_paste_your_token_here -- npx -y notion-mcp-server

Codex (~/.codex/config.toml):

[mcp_servers.notion]

command = "npx" args = ["-y", "notion-mcp-server"] env = { NOTION_TOKEN = "ntn_paste_your_token_here" }

Gemini CLI: gemini extensions install https://github.com/awkoy/notion-mcp-server asks for the token once and keeps it in your system keychain.

Docker (Podman, OrbStack and colima take the same flags; -i is required for stdio):

claude mcp add notion -s user -e NOTION_TOKEN=ntn_paste_your_token_here \

-- docker run --rm -i -e NOTION_TOKEN ghcr.io/awkoy/notion-mcp-server:latest

3. Try it. In a new chat:

*"Use Notion to make a page called 'Hello from my agent' and add a checklist of three things to try today."*

Your AI calls notion_write and replies with a link to the new page.

What you can ask

  • *"Find every row in my Tasks database where Status is 'Doing' and tell me which are overdue."*
  • *"Rename these 50 pages to the new convention."* One batched call, not 50.
  • *"Create a page from my 'Weekly review' template and fill in this summary."*
  • *"Rewrite that spec page: fix the headings and add a code sample."* The page round-trips as markdown.
  • *"Comment on yesterday's meeting notes with a one-paragraph summary."*
  • *"Upload this diagram to the design page."*
  • *"Look at the screenshot on that bug report and tell me what's wrong."* The model gets the image itself.

Which Notion MCP should you use?

Best forAuthHeadless / CINotes
[Notion hosted MCP](https://developers.notion.com/guides/mcp/get-started-with-mcp) (mcp.notion.com)Interactive chat in claude.ai, ChatGPT, Cursor; Notion AI featuresOAuth on every plan. MCP tokens on Business and Enterprise, created by workspace ownersBusiness and Enterprise onlyFirst-party and the largest tool set (meeting notes, SQL across data sources, Custom Agents); several tools need a paid plan or Notion AI
[Notion open-source server](https://github.com/makenotion/notion-mcp-server)—Token✅Notion calls it deprecated and "no longer actively maintained"
This serverAgents, automation, CI, self-hosting, long sessionsToken, every plan✅Actively maintained; 3 tools, batched and idempotent writes

To chat with Notion in claude.ai or ChatGPT, Notion's hosted connector is one click. Use this server when an agent runs unattended, when your plan has no MCP tokens, when context cost matters, or when you want it on your own host. Detailed comparison →

Configuration

Token: PAT or internal integration

Both go in the same NOTION_TOKEN env var; only where you get them differs.

Personal Access Token (recommended)Internal Integration (scoped)
Whereapp.notion.com/developers/tokens → + New tokenapp.notion.com/developers/connections → + New connection
ScopeEverything you can seeOnly pages where you clicked • • • → Connect → \
Use whenDefault: personal and team workspacesYou can't create a PAT, or an admin wants explicit per-page scoping
  • Who can create a PAT. Workspace owners always can. On Free and Business plans only owners can by default, on Plus every member can, and admins can change the policy on Business and Enterprise. Guests can't.
  • Expiry and revoking. You pick the lifetime when you create it, a year at most. Revoke it on the same tokens page; it stops working immediately. Details: Notion's PAT guide.
  • `object_not_found` on a page you can see? That's an Internal Integration that was never Connected to the page. Connect it, or switch to a PAT.
Environment variables
Env varRequiredDefaultMeaning
NOTION_TOKEN✅—PAT (ntn_…) or Internal Integration secret
NOTION_PAGE_ID——Default parent for create_page / create_database when no parent is passed (page URL or id)
NOTION_RATE_LIMIT—3Requests per second (Notion's documented limit)
NOTION_READ_ONLY——true disables every write operation
NOTION_ALLOWED_OPERATIONS / NOTION_BLOCKED_OPERATIONS——Allowlist / blocklist of operations, see Restricting operations
NOTION_CONFIRM_DESTRUCTIVE——true asks you before a destructive operation runs
NOTION_UPLOAD_ROOT——Directory upload_file's local path source is confined to (/ for no limit). Unset: refused over HTTP, dot-named paths and system and app-data folders refused over stdio, see Files
NOTION_UPLOAD_MAX_BYTES—1073741824 (1 GiB)Largest file upload_file accepts from any source
NOTION_UPLOAD_URL_TIMEOUT_MS—30000Time limit for fetching a url source, redirects and body included
NOTION_UPLOAD_ALLOW_PRIVATE_URLS——true lets a url source reach private, loopback and link-local addresses
NOTION_FILE_URLS—fullref swaps Notion's long signed file URLs for short refs, see Files
HTTPS_PROXY / HTTP_PROXY——Send all outbound traffic through a proxy
NOTION_DAILY_LOG_PAGE_ID——Only used by the daily-log MCP prompt

HTTP variables are in Remote / HTTP transport. Upgrading from v1 or v2? Every env var still works; the tool names changed, see MIGRATION.md.

Restricting operations

NOTION_READ_ONLY=true turns off every write. For finer control, NOTION_ALLOWED_OPERATIONS and NOTION_BLOCKED_OPERATIONS take comma-separated operation names or presets: read, write, destructive (archive, trash and delete), or a family (pages, blocks, databases, data_sources, views, comments, users, files). The blocklist wins.

{ "env": { "NOTION_ALLOWED_OPERATIONS": "read" } }                       // read-only

{ "env": { "NOTION_BLOCKED_OPERATIONS": "destructive" } } // everything except removals { "env": { "NOTION_ALLOWED_OPERATIONS": "read,append_blocks,add_page_comment" } }

Disabled operations disappear from the tool schemas, so the model never sees them. The server prints what resolved at startup, for example Operation access: 22/48 enabled (allow=read; block=(none)).

To be asked instead of blocked, set NOTION_CONFIRM_DESTRUCTIVE=true: before a destructive operation runs, your client shows a yes/no dialog naming the target. The client has to support MCP elicitation. The full rules, the per-operation list and the limits of per-operation control are in docs/configuration.md.

Files

upload_file accepts base64, a public URL or a local path, up to NOTION_UPLOAD_MAX_BYTES (1 GiB by default). Since the model picks the source, the server guards the two it reads itself:

  • Local paths. Set NOTION_UPLOAD_ROOT to the directory uploads may come from; paths outside it are refused, symlinks included.

只显示了开头部分;其余内容请在仓库中阅读

问 PopNx