Skip to main content
Glama

Notion MCP Server

by suekou

Notion MCP サーバー

Notion API用のMCPサーバー。LLMとNotionワークスペースの連携を可能にします。さらに、Markdown変換を採用することでLLMとの通信時のコンテキストサイズを削減し、トークンの使用を最適化し、より効率的なインタラクションを実現します。

設定

上記の手順の詳細については、次の記事を参照してください。

  1. Notion統合を作成する:

    • Notion の統合ページにアクセスしてください。

    • 「新しい統合」をクリックします。

    • 統合に名前を付け、適切な権限(「コンテンツの読み取り」、「コンテンツの更新」など)を選択します。

  2. 秘密鍵を取得する:

    • 統合から「内部統合トークン」をコピーします。

    • このトークンは認証に使用されます。

  3. ワークスペースに統合を追加する:

    • Notion で統合によりアクセスするページまたはデータベースを開きます。

    • 右上の「···」ボタンをクリックします。

    • 「接続」ボタンをクリックし、上記の手順 1 で作成した統合を選択します。

  4. Claude Desktop を構成する: claude_desktop_config.jsonに以下を追加します。

{ "mcpServers": { "notion": { "command": "npx", "args": ["-y", "@suekou/mcp-notion-server"], "env": { "NOTION_API_TOKEN": "your-integration-token" } } } }

または

{ "mcpServers": { "notion": { "command": "node", "args": ["your-built-file-path"], "env": { "NOTION_API_TOKEN": "your-integration-token" } } } }

環境変数

  • NOTION_API_TOKEN (必須): Notion API 統合トークン。

  • NOTION_MARKDOWN_CONVERSION : 試験的なMarkdown変換を有効にするには、「true」に設定します。これにより、コンテンツ閲覧時のトークン消費量が大幅に削減されますが、ページコンテンツの編集時に問題が発生する可能性があります。

コマンドライン引数

  • --enabledTools : 有効にするツールのカンマ区切りリスト(例:"notion_retrieve_page,notion_query_database")。指定すると、リストされたツールのみが利用可能になります。指定しない場合は、すべてのツールが有効になります。

読み取り専用ツールの例 (コピー アンド ペーストしやすい):

node build/index.js --enabledTools=notion_retrieve_block,notion_retrieve_block_children,notion_retrieve_page,notion_query_database,notion_retrieve_database,notion_search,notion_list_all_users,notion_retrieve_user,notion_retrieve_bot_user,notion_retrieve_comments

詳細設定

マークダウン変換

デフォルトでは、すべてのレスポンスはJSON形式で返されます。トークンの消費量を削減するために、実験的なMarkdown変換を有効にすることができます。

{ "mcpServers": { "notion": { "command": "npx", "args": ["-y", "@suekou/mcp-notion-server"], "env": { "NOTION_API_TOKEN": "your-integration-token", "NOTION_MARKDOWN_CONVERSION": "true" } } } }

または

{ "mcpServers": { "notion": { "command": "node", "args": ["your-built-file-path"], "env": { "NOTION_API_TOKEN": "your-integration-token", "NOTION_MARKDOWN_CONVERSION": "true" } } } }

NOTION_MARKDOWN_CONVERSION"true"に設定されている場合、レスポンスは Markdown 形式に変換されます( formatパラメータが"markdown"に設定されている場合)。これにより、人間にとってより読みやすくなり、トークンの消費量が大幅に削減されます。ただし、この機能は試験的なため、変換時に元の構造が失われるため、ページコンテンツを編集する際に問題が発生する可能性があります。

ツール呼び出しでformatパラメータを"json"または"markdown"に設定することで、リクエストごとにフォーマットを制御できます。

  • コンテンツを表示する場合は、読みやすさを向上させるために"markdown"を使用します

  • 返されるコンテンツを変更する必要がある場合は"json"を使用します

トラブルシューティング

権限エラーが発生した場合:

  1. 統合に必要な権限があることを確認します。

  2. 統合が関連するページまたはデータベースに招待されていることを確認します。

  3. claude_desktop_config.jsonでトークンと構成が正しく設定されていることを確認します。

プロジェクト構造

このプロジェクトは、保守性と可読性を向上させるためにモジュール方式で構成されています。

./ ├── src/ │ ├── index.ts # Entry point and command-line handling │ ├── client/ │ │ └── index.ts # NotionClientWrapper class for API interactions │ ├── server/ │ │ └── index.ts # MCP server setup and request handling │ ├── types/ │ │ ├── index.ts # Type exports │ │ ├── args.ts # Tool argument interfaces │ │ ├── common.ts # Common schema definitions │ │ ├── responses.ts # API response type definitions │ │ └── schemas.ts # Tool schema definitions │ ├── utils/ │ │ └── index.ts # Utility functions │ └── markdown/ │ └── index.ts # Markdown conversion utilities

ディレクトリの説明

  • index.ts : アプリケーションのエントリポイント。コマンドライン引数を解析し、サーバーを起動します。

  • client/ : Notion APIとの通信を担当するモジュール。

    • index.ts : NotionClientWrapper クラスはすべての API 呼び出しを実装します。

  • server/ : MCP サーバーの実装。

    • index.ts : Claude から受信したリクエストを処理し、適切なクライアント メソッドを呼び出します。

  • types/ : 型定義モジュール。

    • index.ts : すべてのタイプのエクスポート。

    • args.ts : ツール引数のインターフェース定義。

    • common.ts : 共通スキーマの定義 (ID 形式、リッチ テキストなど)。

    • responses.ts : Notion API レスポンスの型定義。

    • schemas.ts : MCP ツール スキーマの定義。

  • utils/ : ユーティリティ関数。

    • index.ts : フィルタリング対応ツールのような機能。

  • markdown/ : Markdown 変換機能。

    • index.ts : JSON 応答を Markdown 形式に変換するためのロジック。

ツール

すべてのツールは次のオプション パラメータをサポートしています。

  • format (文字列、「json」または「markdown」、デフォルト:「markdown」):レスポンスの形式を制御します。人間が読める形式での出力には「markdown」、元のデータ構造へのプログラム的なアクセスには「json」を使用します。注:Markdown変換は、環境変数NOTION_MARKDOWN_CONVERSIONが「true」に設定されている場合にのみ機能します。

  1. notion_append_block_children

    • 親ブロックに子ブロックを追加します。

    • 必要な入力:

      • block_id (文字列): 親ブロックの ID。

      • children (配列): 追加するブロックオブジェクトの配列。

    • 戻り値: 追加されたブロックに関する情報。

  2. notion_retrieve_block

    • 特定のブロックに関する情報を取得します。

    • 必要な入力:

      • block_id (文字列): 取得するブロックの ID。

    • 戻り値: ブロックに関する詳細情報。

  3. notion_retrieve_block_children

    • 特定のブロックの子を取得します。

    • 必要な入力:

      • block_id (文字列): 親ブロックの ID。

    • オプション入力:

      • start_cursor (文字列): 次の結果ページのカーソル。

      • page_size (数値、デフォルト: 100、最大: 100): 取得するブロックの数。

    • 戻り値: 子ブロックのリスト。

  4. notion_delete_block

    • 特定のブロックを削除します。

    • 必要な入力:

      • block_id (文字列): 削除するブロックの ID。

    • 戻り値: 削除の確認。

  5. notion_retrieve_page

    • 特定のページに関する情報を取得します。

    • 必要な入力:

      • page_id (文字列): 取得するページの ID。

    • 返される値: ページに関する詳細情報。

  6. notion_update_page_properties

    • ページのプロパティを更新します。

    • 必要な入力:

      • page_id (文字列): 更新するページの ID。

      • properties (オブジェクト): 更新するプロパティ。

    • 返される値: 更新されたページに関する情報。

  7. notion_create_database

    • 新しいデータベースを作成します。

    • 必要な入力:

      • parent (オブジェクト): データベースの親オブジェクト。

      • properties (オブジェクト): データベースのプロパティ スキーマ。

    • オプション入力:

      • title (配列): リッチ テキスト配列としてのデータベースのタイトル。

    • 返される値: 作成されたデータベースに関する情報。

  8. notion_query_database

    • データベースをクエリします。

    • 必要な入力:

      • database_id (文字列): クエリするデータベースの ID。

    • オプション入力:

      • filter (オブジェクト): フィルター条件。

      • sorts (配列): ソート条件。

      • start_cursor (文字列): 次の結果ページのカーソル。

      • page_size (数値、デフォルト: 100、最大: 100): 取得する結果の数。

    • 戻り値: クエリの結果のリスト。

  9. notion_retrieve_database

    • 特定のデータベースに関する情報を取得します。

    • 必要な入力:

      • database_id (文字列): 取得するデータベースの ID。

    • 返される値: データベースに関する詳細情報。

  10. notion_update_database

  • データベースに関する情報を更新します。

  • 必要な入力:

    • database_id (文字列): 更新するデータベースの ID。

  • オプション入力:

    • title (配列): データベースの新しいタイトル。

    • description (配列): データベースの新しい説明。

    • properties (オブジェクト): プロパティ スキーマが更新されました。

  • 返される値: 更新されたデータベースに関する情報。

  1. notion_create_database_item

  • Notion データベースに新しい項目を作成します。

  • 必要な入力:

    • database_id (文字列): アイテムを追加するデータベースの ID。

    • properties (オブジェクト): 新しいアイテムのプロパティ。これらはデータベーススキーマと一致する必要があります。

  • 返される値: 新しく作成されたアイテムに関する情報。

  1. notion_search

  • タイトルでページまたはデータベースを検索します。

  • オプション入力:

    • query (文字列): ページまたはデータベースのタイトルで検索するテキスト。

    • filter (オブジェクト): 結果をページのみ、またはデータベースのみに制限するための基準。

    • sort (オブジェクト): 結果を並べ替える基準

    • start_cursor (文字列): ページネーションの開始カーソル。

    • page_size (数値、デフォルト: 100、最大: 100): 取得する結果の数。

  • 返される値: 一致するページまたはデータベースのリスト。

  1. notion_list_all_users

  • Notion ワークスペース内のすべてのユーザーを一覧表示します。

  • 注意: この機能を使用するには、Notion エンタープライズ プランにアップグレードし、権限エラーを回避するために組織 API キーを使用する必要があります。

  • オプション入力:

    • start_cursor (文字列): ユーザーを一覧表示するためのページ区切り開始カーソル。

    • page_size (数値、最大: 100): 取得するユーザーの数。

  • 戻り値: ワークスペース内のすべてのユーザーのページ区切りリスト。

  1. notion_retrieve_user

  • Notion で user_id によって特定のユーザーを取得します。

  • 注意: この機能を使用するには、Notion エンタープライズ プランにアップグレードし、権限エラーを回避するために組織 API キーを使用する必要があります。

  • 必要な入力:

    • user_id (文字列): 取得するユーザーの ID。

  • 返される値: 指定されたユーザーに関する詳細情報。

  1. notion_retrieve_bot_user

  • Notion 内の現在のトークンに関連付けられているボット ユーザーを取得します。

  • 返されるもの: 統合を承認した人物の詳細を含む、ボット ユーザーに関する情報。

  1. notion_create_comment

  • Notion でコメントを作成します。

  • 統合には「コメントの挿入」機能が必要です。

  • parentオブジェクトをpage_idまたはdiscussion_idのいずれかで指定します。両方は指定できません。

  • 必要な入力:

    • rich_text (配列): コメントの内容を表すリッチ テキスト オブジェクトの配列。

  • オプション入力:

    • parent (オブジェクト): 使用する場合は、 page_idを含める必要があります。

    • discussion_id (文字列): 既存のディスカッション スレッド ID。

  • 返される値: 作成されたコメントに関する情報。

  1. notion_retrieve_comments

  • Notion ページまたはブロックから未解決のコメントのリストを取得します。

  • 統合には「コメントを読む」機能が必要です。

  • 必要な入力:

    • block_id (文字列): コメントを取得するブロックまたはページの ID。

  • オプション入力:

    • start_cursor (文字列): ページネーションの開始カーソル。

    • page_size (数値、最大: 100): 取得するコメントの数。

  • 戻り値: 指定されたブロックまたはページに関連付けられたコメントのページ区切りリスト。

ライセンス

このMCPサーバーはMITライセンスに基づいてライセンスされています。つまり、MITライセンスの条件に従って、ソフトウェアを自由に使用、改変、配布することができます。詳細については、プロジェクトリポジトリのLICENSEファイルをご覧ください。

Deploy Server
A
security – no known vulnerabilities
-
license - not tested
A
quality - confirmed to work

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Notion API 用の MCP サーバー。Claude が Notion ワークスペースと対話できるようにします。

  1. 設定
    1. 環境変数
      1. コマンドライン引数
        1. 詳細設定
          1. マークダウン変換
        2. トラブルシューティング
          1. プロジェクト構造
            1. ディレクトリの説明
          2. ツール
            1. ライセンス

              Related MCP Servers

              • -
                security
                -
                license
                -
                quality
                A simple Model Context Protocol (MCP) server that integrates with Notion's API to manage my personal todo list through Claude.
                Last updated -
                202
                MIT License
              • A
                security
                -
                license
                A
                quality
                A high-performance MCP server that integrates Notion into AI workflows, enabling interaction with Notion pages, databases, and comments through a standardized protocol.
                Last updated -
                18
                24
              • A
                security
                -
                license
                A
                quality
                A Model Context Protocol (MCP) server that exposes the official Notion SDK, allowing AI models to interact with Notion workspaces.
                Last updated -
                28
                8
                Apache 2.0
                • Apple
                • Linux
              • A
                security
                -
                license
                A
                quality
                Notion MCP Server is a MCP server implementation that enables AI assistants to interact with Notion's API.
                Last updated -
                13
                305
                136
                MIT License

              View all related MCP servers

              MCP directory API

              We provide all the information about MCP servers via our MCP API.

              curl -X GET 'https://glama.ai/api/mcp/v1/servers/suekou/mcp-notion-server'

              If you have feedback or need assistance with the MCP directory API, please join our Discord server