notion
GitHub通过 Notion MCP 服务器与 Notion 进行交互,支持搜索、读取、创建和更新页面及数据库内容。涵盖连接管理、OAuth 认证流程及工具调用规范。
Trigger Scenarios
Install
npx skills add win4r/MuseAI-Skills --skill notion -g -y
SKILL.md
Frontmatter
{
"icon": "notion",
"name": "notion",
"metadata": {
"includeInPrompt": false
},
"description": "Search, read, create, and update Notion pages via the Notion MCP."
}
Notion
Purpose
Interact with Notion pages, databases, and workspace content via the hosted
Notion MCP server (https://mcp.notion.com/mcp).
Tooling
Use exec to run:
notion-cli <subcommand> [options]
Connection management
notion-cli status
notion-cli authorize-url
notion-cli exchange-code --code <code> [--redirect-uri <url>]
notion-cli refresh
notion-cli disconnect
MCP operations
notion-cli list-tools
notion-cli call-tool --name <tool> --arguments-json '<json-object>'
--arguments-json must be a JSON object; arrays or scalars are rejected. Use
list-tools first to discover the tool catalogue and each tool's
input_schema.
Auth
OAuth is handled by authd via Dynamic Client Registration + PKCE (S256). The
access token is stored at $JARVIS_HOME/user/auth/notion.json. Do not hand-edit
this file.
First-use setup flow
- Run
notion-cli status. - If status is
not_connected, runnotion-cli authorize-url. Whenconnect_urlis present, replace<connect_url>with the returned URL and share exactly this Markdown link:[Connect Notion](<connect_url>); do not paste the raw URL separately. Wait for the user to complete authorization. - After the user authorizes, the browser is redirected via the Muse relay back to this VM, and authd completes the code exchange automatically. The agent resumes once the token lands.
- Re-run
notion-cli status. When status flips toconnectedthe output also includes the discovered MCP tool catalogue.
For manual environments where the relay is not wired up, call
notion-cli exchange-code --code <auth-code> after receiving the code.
Operating Rules
- Run
notion-cli statusbefore any MCP work. If notconnected, complete the setup flow first. - Call
list-toolsbeforecall-toolunless you already know the tool name and its argument shape. Never guess tool names. arguments-jsonmust be a JSON object; wrap every argument appropriately.- Confirm user intent before tool calls that mutate Notion pages, databases, or blocks.
- Token refresh happens automatically on 401. If
call-toolkeeps failing withunauthorized, runnotion-cli refreshexplicitly or ask the user to re-authorize. - Read results preserve Notion's raw date fields and add semantic UTC and user-local forms for record creation/edit times and timed date properties. Date-only properties remain dates.
Version History
- 38bbb45 Current 2026-10-18 15:48


