mcpField
N
Notion MCP Server

Notion MCP Server

ローカル
github.com/flyer103メモリ・ナレッジ082 週間前に更新

Notion MCP Server について

Notion のページ、データベース、ブロック、コメントの操作と検索を行う Python 製 MCP サーバーです。Notion API を通じてコンテンツを読み書きする MCP クライアント向けです。

主な機能

  1. 01ページの取得・作成・更新
  2. 02データベースの検索・変更
  3. 03ブロックの読み取り・編集
  4. 04コメントの作成・取得
  5. 05Notion オブジェクトの検索
  6. 06stdio と SSE のトランスポート

活用シーン

  1. 01Notion ワークスペース内の検索
  2. 02ページやデータベースの作成・更新
  3. 03ページブロックの追加・変更
  4. 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 キーを取得する必要があります。

  1. https://www.notion.so/my-integrations にアクセスします
  2. 新しいインテグレーションを作成します
  3. API キーを環境変数として設定します。
export NOTION_API_KEY="your_api_key_here"
  1. 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 で使用するには、設定ファイルを作成する必要があります。

  1. 次の場所に 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
  2. 次の設定をファイルに追加します(必要に応じてパスを調整してください)。

{
  "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"
      }
    }
  }
}
  1. /ABSOLUTE/PATH/TO/YOUR/uv を、uv 実行ファイルの絶対パスに置き換えます
  2. /ABSOLUTE/PATH/TO/YOUR/notion-mcp を、notion-mcp のインストール先の絶対パスに置き換えます
  3. your_notion_api_key を Notion API キーに置き換えます(システム環境変数として設定済みの場合は、env セクションを省略できます)
  4. ファイルを保存し、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 実行ファイルを見つけられないことを意味します。修正するには:

  1. uv 実行ファイルの絶対パスを確認します:

    # On macOS/Linux
    which uv
    
    # On Windows
    where uv
    
  2. 設定に絶対パスを指定します:

    {
      "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"
          }
        }
      }
    }
    
  3. ファイルを保存し、Claude Desktop を再起動します。

ライセンス

このプロジェクトは Apache License 2.0 の下でライセンスされています。詳細については LICENSE ファイルをご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。