notion-mcp について
notion-mcpは、Notionワークスペースを検索し、ページ内容をMarkdownで入出力するMCPサーバーです。ページ作成、コメント、画像にも対応し、OAuthやワークスペース管理者の承認ではなく、ブラウザーから取得した認証情報を使います。
主な機能
- 01ワークスペースの全文検索
- 02ページのMarkdownエクスポート
- 03Markdownのインポートと追記
- 04子ページの作成
- 05画像のアップロードと参照
- 06コメントの一覧表示と返信
活用シーン
- 01Notionワークスペース内のページ検索
- 02ページ内容をMarkdownのワークフローに出力
- 03ローカルのMarkdownファイルをページに書き込み・追記
- 04ページ作成とディスカッションへの参加
MCP 対応
検索、ページのインポートとエクスポート、ページ作成、画像、コメントのツールをMCPクライアントに提供し、セットアップ用プロンプトとガイドリソースも備えています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @shck-dev/notion-mcpNOTION_TOKENシークレットNotion token_v2 cookie value from browser DevToolsNOTION_USER_IDNotion user ID from x-notion-active-user-headerNOTION_SPACE_IDNotion workspace ID from API request bodyローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
13掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| limit | number | いいえ | 返す結果の最大数(デフォルト:10) |
| query | string | はい | 検索クエリ(ページのタイトルと内容に一致) |
詳細
@shck-dev/notion-mcp
Notion MCP サーバー — ページを検索、エクスポートし、Markdown としてインポート
ワークスペース管理者は不要です。OAuth もページ共有も必要ありません。
ブラウザーから3つの値を貼り付けるだけです。
機能
- 検索 — ワークスペース全体を全文検索します
- エクスポート — 任意のページを整形された Markdown としてダウンロードします(見出し、リスト、ToDo、コードブロック、テーブル、リンク、閲覧可能な URL 付き画像)
- インポート — 文字列またはローカルファイルから Notion ページに Markdown を書き込みます(既存の内容を置き換えます)
- 追記 — 既存の内容に触れず、ページの末尾に 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 | Notion ページに Markdown を書き込みます — 既存の内容をすべて置き換えます |
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 を開き、DevTools(F12)→ Network に移動します。notion.so/api/v3/… へのリクエストをクリックし、右クリックして Copy as cURL を選択します。コピーした内容を貼り付け、Ctrl-D を押してください。トークン、ユーザー ID、ワークスペース ID が抽出され、~/.notion-mcp/config.json に保存されます。次にサーバーを登録します。env ブロックは不要です。
claude mcp add notion -- npx @shck-dev/notion-mcp
3 つの値を手動で設定したい場合は、以下の手順に従ってください。
1. ブラウザーから認証情報を取得する
- Chrome で notion.so を開きます
- F12 → Application → Cookies →
www.notion.soを開きます token_v2Cookie の値をコピーして、NOTION_TOKENに設定します- F12 → Network タブを開き、Notion で何か操作を行います
api/v3/*への POST リクエストを見つけてクリックします- Request Headers から
x-notion-active-user-headerをコピーして、NOTION_USER_IDに設定します - Request Body(Payload)から
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
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。