Notion MCP Server について
Notion のページ、データベース、ブロック、コメントの操作と検索を行う Python 製 MCP サーバーです。Notion API を通じてコンテンツを読み書きする MCP クライアント向けです。
主な機能
- 01ページの取得・作成・更新
- 02データベースの検索・変更
- 03ブロックの読み取り・編集
- 04コメントの作成・取得
- 05Notion オブジェクトの検索
- 06stdio と SSE のトランスポート
活用シーン
- 01Notion ワークスペース内の検索
- 02ページやデータベースの作成・更新
- 03ページブロックの追加・変更
- 04Notion コメントの取得・作成
MCP 対応
ページ、データベース、ブロック、コメント、検索などの Notion API 操作をツールとして MCP クライアントに公開します。stdio と SSE のトランスポートに対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Notion MCP サーバー
Notion API と連携するための Model Context Protocol(MCP)サーバーです。
概要
このプロジェクトは、Notion API と連携する MCP サーバーを実装し、AI モデルが Notion のドキュメントやデータとやり取りできるようにします。Model Context Protocol の仕様に準拠し、公式の MCP Python SDK を使用しています。
要件
- Python 3.12 以上
- パッケージ管理用の
uv
インストール
# Clone the repository
git clone https://github.com/flyer103/notion-mcp.git
cd notion-mcp
# Install dependencies using uv
uv venv
source .venv/bin/activate
uv pip install -e ".[dev]"
設定
Notion MCP サーバーを使用する前に、Notion インテグレーションを設定し、API キーを取得する必要があります。
- https://www.notion.so/my-integrations にアクセスします
- 新しいインテグレーションを作成します
- API キーを環境変数として設定します。
export NOTION_API_KEY="your_api_key_here"
- Notion のコンテンツをインテグレーションと共有します。
- アクセスする Notion ページを開きます
- 右上の「...」メニューをクリックします
- 「Add connections」を選択します
- 一覧からインテグレーションを探して選択します
- これで、インテグレーションはこのページとすべてのサブページにアクセスできるようになります
使用方法
Notion MCP サーバーは、次の 2 つのトランスポート方式に対応しています。
1. 標準入力/出力(stdio)
これはデフォルトのモードで、Claude for Desktop やその他の MCP 対応 LLM クライアントで使用されます。
python -m notion_mcp.server
2. サーバー送信イベント(SSE)
ウェブベースのインテグレーションでは、SSE トランスポートを使用できます。
python -m notion_mcp.server --transport sse --host 0.0.0.0 --port 8000
サーバーは http://localhost:8000/sse で利用できます。
利用可能なツール
Notion MCP サーバーでは、次の機能をツールとして利用できます。
ページ操作
get_page:ID を指定して Notion ページを取得しますupdate_page:Notion ページのプロパティを更新しますcreate_page:新しい Notion ページを作成します
データベース操作
get_database:ID を指定して Notion データベースを取得しますquery_database:Notion データベースをクエリしますcreate_database:新しい Notion データベースを作成しますupdate_database:Notion データベースを更新します
ブロック操作
get_block:ID を指定して Notion ブロックを取得しますupdate_block:Notion ブロックの内容を更新しますlist_blocks:ブロックの子要素を一覧表示しますappend_blocks:ブロックの子要素にブロックを追加しますdelete_block:Notion ブロックを削除します
コメント操作
create_comment:新しい Notion コメントを作成しますget_comment:ID を指定して Notion コメントを取得します
検索操作
search:Notion のオブジェクトを検索します
コマンドラインオプション
usage: python -m notion_mcp.server [-h] [--port PORT] [--host HOST] [--transport {stdio,sse}] [--debug]
Notion MCP Server
options:
-h, --help show this help message and exit
--port PORT Port to listen on for SSE transport
--host HOST Host to bind the server to
--transport {stdio,sse}
Transport type (stdio or sse)
--debug Enable debug mode
Claude for Desktop でのテスト
この MCP サーバーを Claude for Desktop で使用するには、設定ファイルを作成する必要があります。
-
次の場所に
claude_desktop_config.jsonというファイルを作成します。- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
- macOS:
-
次の設定をファイルに追加します(必要に応じてパスを調整してください)。
{
"mcpServers": {
"notion-mcp": {
"command": "/ABSOLUTE/PATH/TO/YOUR/uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/YOUR/notion-mcp",
"run",
"-m",
"notion_mcp.server"
],
"env": {
"NOTION_API_KEY": "your_notion_api_key"
}
}
}
}
/ABSOLUTE/PATH/TO/YOUR/uvを、uv実行ファイルの絶対パスに置き換えます/ABSOLUTE/PATH/TO/YOUR/notion-mcpを、notion-mcp のインストール先の絶対パスに置き換えますyour_notion_api_keyを Notion API キーに置き換えます(システム環境変数として設定済みの場合は、env セクションを省略できます)- ファイルを保存し、Claude for Desktop を再起動します
MCP 関連の問題がないか、Claude のログを確認できます。
# Check Claude's logs for errors
tail -n 20 -f ~/Library/Logs/Claude/mcp*.log
これで Claude から Notion MCP サーバーにアクセスし、Notion のドキュメントとやり取りできるようになります。「Notion でページを作成して」や「自分の Notion ワークスペースを検索して」などの操作を Claude に依頼できます。
設定の確認
Claude が Notion MCP サーバーを正しく使用できるよう設定されているか確認するには、Claude に次のように尋ねます。 「アクセスできるツールを一覧表示できますか?」または「自分の Notion ワークスペースに新しいページを作成できますか?」
接続に問題がある場合は、次の点を確認してください。
- 設定ファイルの形式が正しく、適切な場所にあること
- 設定内のパスが正しいこと
- Notion インテグレーションに適切な権限があること
よくある問題のトラブルシューティング
「spawn uv ENOENT」エラー
このエラーが発生した場合:
spawn uv ENOENT {"context":"connection","stack":"Error: spawn uv ENOENT\n at ChildProcess._handle.onexit (node:internal/child_process:285:19)\n at onErrorNT (node:internal/child_process:483:16)\n at process.processTicksAndRejections (node:internal/process/task_queues:82:21)"}
これは、Claude Desktop が PATH 内で uv 実行ファイルを見つけられないことを意味します。修正するには:
-
uv実行ファイルの絶対パスを確認します:# On macOS/Linux which uv # On Windows where uv -
設定に絶対パスを指定します:
{ "mcpServers": { "notion-mcp": { "command": "/ABSOLUTE/PATH/TO/YOUR/uv", "args": [ "--directory", "/ABSOLUTE/PATH/TO/YOUR/notion-mcp", "run", "-m", "notion_mcp.server" ], "env": { "NOTION_API_KEY": "your_notion_api_key" } } } } -
ファイルを保存し、Claude Desktop を再起動します。
ライセンス
このプロジェクトは Apache License 2.0 の下でライセンスされています。詳細については LICENSE ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。