my-notion-mcp
Run the standalone My-Notion MCP STDIO server so MCP clients can create, fetch, search, and update My-Notion documents.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Run the standalone My-Notion MCP STDIO server so MCP clients can create, fetch, search, and update My-Notion documents.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Guides My-Notion CLI setup, authentication, output formats, and safety. Invoke before using My-Notion CLI or when configuring PAT/API URL.
Uses My-Notion CLI to create, read, search, update, import, and export documents. Invoke when user asks an Agent to manage My-Notion docs.
Run the standalone My-Notion MCP STDIO server so MCP clients can create, fetch, search, and update My-Notion documents.
Guides My-Notion CLI setup, authentication, output formats, and safety. Invoke before using My-Notion CLI or when configuring PAT/API URL.
Uses My-Notion CLI to create, read, search, update, import, and export documents. Invoke when user asks an Agent to manage My-Notion docs.
Universal React UI framework for web and native. Use when building cross-platform apps with Tamagui,
| name | my-notion-mcp |
| description | Run the standalone My-Notion MCP STDIO server so MCP clients can create, fetch, search, and update My-Notion documents. |
Use this skill when an Agent or MCP-capable client needs direct tool access to My-Notion documents instead of shelling out to individual CLI commands.
my-notion-mcp binary must be installed, linked, or run from the monorepo.npm install -g @mynotion/mcp@latest; CLI auth install: npm install -g @mynotion/cli@latest; Agent Skills install: npx skills add @mynotion/cli -y -g.my-notion auth login; MY_NOTION_API_TOKEN is a legacy/CI fallback. MY_NOTION_API_URL is optional for the default online deployment.my-notion auth login --no-open, send the printed authorization URL as a clickable Markdown link, then retry after approval.contentMarkdown as the Agent-editable view.Development entry:
pnpm --filter @mynotion/mcp dev --transport stdio
Built entry:
pnpm --filter @mynotion/mcp build
node packages/my-notion-mcp/dist/index.js --transport stdio
Installed binary:
my-notion-mcp --transport stdio
Compatibility entry:
my-notion mcp serve --transport stdio
Only stdio transport is supported in the first version. Do not assume HTTP MCP or OAuth discovery exists.
Use this repository E2E when validating behavior with a real MCP SDK client:
pnpm e2e:mcp:client
This script uses @modelcontextprotocol/sdk Client + StdioClientTransport and verifies:
isError: true with structuredContent.errormy_notion_readme, my_notion_docs_search, my_notion_docs_fetch, my_notion_docs_create, and my_notion_docs_updateconfirmationRequired: true and explicit no-write textdryRun: falseMinimal SDK client shape:
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
const client = new Client({ name: "my-agent", version: "0.1.0" });
const transport = new StdioClientTransport({
command: "my-notion-mcp",
args: ["--transport", "stdio"],
});
await client.connect(transport);
const tools = await client.listTools();
const preview = await client.callTool({
name: "my_notion_docs_create",
arguments: {
title: "MCP Dry Run",
contentMarkdown: "# MCP Dry Run\n\nPreview only.",
dryRun: true,
},
});
await client.close();
my_notion_readmeReturn MCP server usage guidance, authentication source, content format contract, tool list, and safe write rules.
Input:
{}
Behavior:
my_notion_docs_searchSearch documents for the current PAT user.
Input:
{
"query": "roadmap",
"limit": 10
}
Behavior:
structuredContent.documents.query to list recent documents through the search endpoint.my_notion_docs_fetchFetch one document by id.
Input:
{
"id": "j57..."
}
Behavior:
structuredContent.document and structuredContent.markdown.structuredContent.markdown is serialized from internal BlockNote JSON and should be used for Agent edit round-trips.my_notion_docs_createCreate a new Markdown-backed document.
Input:
{
"title": "Project Plan",
"contentMarkdown": "# Project Plan\n\n...",
"dryRun": true
}
Behavior:
dryRun defaults to true.structuredContent.dryRun: true, structuredContent.confirmationRequired: true, inputFormat: "markdown", targetFormat: "blocknote-json", a preview document with id dry-run, and a text fallback saying no document was created.dryRun: false only when the user explicitly approved creating the document.my_notion_docs_updateUpdate a document title and/or Markdown content.
Input:
{
"id": "j57...",
"title": "Updated Title",
"contentMarkdown": "New section",
"mode": "append",
"dryRun": true
}
Behavior:
mode is append or overwrite; default is append.dryRun defaults to true.structuredContent.dryRun: true, structuredContent.confirmationRequired: true, inputFormat: "markdown", targetFormat: "blocknote-json", an update preview, and a text fallback saying no document was updated.mode: "overwrite".dryRun: false only after explicit user approval.Every tool returns:
structuredContent: machine-readable JSON for the MCP client.content: human-readable text fallback plus formatted JSON.Agents should parse structuredContent first and use the text fallback only when the client does not expose structured content.
Error results return:
isError: truestructuredContent.error.messagestructuredContent.error.codestructuredContent.error.requestIddryRun: true for create and update unless the user explicitly requested immediate execution.my-notion-shared and CLI auth/token commands instead.