mcpField
N
Notion MCP Server

Notion MCP Server

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

Notion MCP Server について

Notion MCP Server は、Claude などの LLM から Notion ワークスペースを操作するためのサーバーです。ページやデータベースを扱う MCP ツールを提供します。

主な機能

  1. 01ワークスペース内の検索
  2. 02ページ内容の取得
  3. 03ページの作成と更新
  4. 04データベースの作成と検索
  5. 05データベース行の追加と更新

活用シーン

  1. 01ワークスペース内の議事録検索
  2. 02Notion ページの閲覧や編集
  3. 03タスク管理データベースの作成
  4. 04ステータスによるデータベース項目の絞り込み

MCP 対応

Notion の検索、ページ、データベース操作を MCP クライアント向けのツールとして公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Notion MCP サーバー

Notion 連携用の Model Context Protocol サーバーです。Claude やその他の LLM が Notion ワークスペースを操作できます。

機能

  • Notion を検索: Notion ワークスペース全体を検索します
  • ページを取得: 指定した Notion ページのコンテンツを取得します
  • ページを作成: Notion ワークスペースに新しいページを作成します
  • ページを更新: 既存のページのコンテンツやタイトルを更新します
  • データベースを作成: カスタムプロパティを指定して新しいデータベースを作成します
  • データベースをクエリ: フィルターや並べ替えを指定してデータベースをクエリします
  • データベースエントリーを更新: データベースエントリーのプロパティを更新します
  • データベース行を作成: カスタムプロパティを指定して既存のデータベースに新しい行を追加します

セットアップ

  1. このリポジトリをクローンします

  2. 依存関係をインストールします

    npm install
    
  3. Notion API キーを設定します

    • Notion Developers ポータルでインテグレーションを作成します
    • API キーをコピーします
    • 次のいずれかの方法で設定できます。
      • .env ファイルを編集し、your_notion_api_key_here を実際の API キーに置き換えます。または、
      • Claude for Desktop の設定に直接渡します(推奨。詳細は以下を参照してください)
  4. サーバーをビルドします

    npm run build
    
  5. サーバーを起動します

    npm start
    

Claude for Desktop でのセットアップ

  1. Claude for Desktop をインストールします(まだインストールしていない場合)。

  2. Claude for Desktop アプリの設定を開きます。

    • macOS の場合:~/Library/Application Support/Claude/claude_desktop_config.json
    • ファイルが存在しない場合は作成します
  3. 設定に Notion サーバーを追加します。

    {
      "mcpServers": {
        "notion": {
          "command": "node",
          "args": [
            "/Users/shaheerahmad/Documents/notion-mcp-server/dist/index.js",
            "--notion-api-key=YOUR_ACTUAL_API_KEY_HERE"
          ]
        }
      }
    }
    

    次の値を置き換えます。

    • /Users/shaheerahmad/Documents/notion-mcp-server をプロジェクトディレクトリのフルパスに置き換えます
    • YOUR_ACTUAL_API_KEY_HERE を実際の Notion API キーに置き換えます
  4. Claude for Desktop を再起動します

サーバーの使用

Claude for Desktop に接続すると、次のような質問を Claude にすることでサーバーを使用できます。

  • 「Notion ワークスペースで会議メモを検索して」
  • 「プロジェクト計画ページのコンテンツを取得して」(ページ ID が必要です)
  • 「タスクのリストを含む新しいページを Notion に作成して」
  • 「ID が 1aaada269d1b8003adceda69cf7bcd97 の Notion ページを更新して、コンテンツに『ページに追加する新しいコンテンツです。』を設定して」
  • 「ID が 1aaada269d1b8003adceda69cf7bcd97 の Notion ページに新しいデータベースを作成して」
  • 「ID が 1aaada269d1b8003adceda69cf7bcd97 の Notion データベースで、ステータスが『Completed』の項目をクエリして」

Claude はリクエストに応じて適切なツールを自動的に使用します。

ツールの使用例
Notion を検索
Search for "meeting notes" in my Notion workspace
ページのコンテンツを取得
Get the content of my Notion page with ID 1aaada269d1b8003adceda69cf7bcd97
新しいページを作成
Create a new page in Notion with title "Weekly Report" and content "This week we accomplished the following tasks..."
既存のページを更新
Update my Notion page with ID 1aaada269d1b8003adceda69cf7bcd97 with content "Adding this new information to the page."

タイトルも更新できます。

Update my Notion page with ID 1aaada269d1b8003adceda69cf7bcd97 with title "New Title" and content "New content to add."
新しいデータベースを作成
Create a new database in my Notion page with ID 1aaada269d1b8003adceda69cf7bcd97 with title "Task Tracker" and properties {
  "Task Name": { "title": {} },
  "Status": {
    "select": {
      "options": [
        { "name": "Not Started", "color": "red" },
        { "name": "In Progress", "color": "yellow" },
        { "name": "Completed", "color": "green" }
      ]
    }
  },
  "Priority": {
    "select": {
      "options": [
        { "name": "Low", "color": "blue" },
        { "name": "Medium", "color": "yellow" },
        { "name": "High", "color": "red" }
      ]
    }
  },
  "Due Date": { "date": {} }
}
データベースをクエリ
Query my Notion database with ID 1aaada269d1b8003adceda69cf7bcd97 with filter {
  "property": "Status",
  "select": {
    "equals": "Completed"
  }
}

並べ替えも指定できます。

Query my Notion database with ID 1aaada269d1b8003adceda69cf7bcd97 with sort {
  "property": "Due Date",
  "direction": "ascending"
}
データベースエントリーを更新

既存のデータベースエントリー(データベース内のページ)のプロパティを更新します。

{
  "tool_name": "update-database-entry",
  "tool_params": {
    "pageId": "page_id_of_database_entry",
    "properties": {
      "Status": {
        "select": {
          "name": "Completed"
        }
      },
      "Priority": {
        "select": {
          "name": "High"
        }
      },
      "Due Date": {
        "date": {
          "start": "2023-12-31"
        }
      }
    }
  }
}

properties パラメーターは、データベース内の各プロパティの種類に応じて、Notion API が想定する構造に一致させる必要があります。プロパティの種類(テキスト、セレクト、日付など)によって、必要な形式が異なります。

データベース行を作成

カスタムプロパティを指定して、既存のデータベースに新しい行を追加します。

{
  "tool_name": "create-database-row",
  "tool_params": {
    "databaseId": "your_database_id_here",
    "properties": {
      "Name": {
        "title": [
          {
            "text": {
              "content": "New Task"
            }
          }
        ]
      },
      "Status": {
        "select": {
          "name": "Not Started"
        }
      },
      "Priority": {
        "select": {
          "name": "Medium"
        }
      },
      "Due Date": {
        "date": {
          "start": "2023-12-15"
        }
      },
      "Notes": {
        "rich_text": [
          {
            "text": {
              "content": "This is a new task created via the API"
            }
          }
        ]
      }
    }
  }
}

properties パラメーターには、データベースで必須のすべてのプロパティを含め、各プロパティの種類に応じた Notion API の構造に従う必要があります。

トラブルシューティング

  • ツールが表示されない場合は、Claude for Desktop のログを確認してください。

    tail -n 20 -f ~/Library/Logs/Claude/mcp*.log
    
  • Notion API キーが正しく設定されていることと、連携対象のページへのアクセス権がインテグレーションに付与されていることを確認してください。

  • ログに「Unexpected token」エラーが表示される場合は、console.log ステートメントが MCP プロトコルに干渉している可能性があります。このバージョンのサーバーでは、この問題を回避するよう更新されています。

今後の改善

  • データベースのクエリ機能を追加する
  • コンテンツのフォーマットを改善する
  • より多くのブロックタイプをサポートする

コメント

MCP は初めてですか?

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

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