notion-mcp-server

by awkoy
Verified

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.

Integrations

  • Provides tools for reading, creating, and modifying Notion content through natural language interactions, including page operations (creation, archiving, restoration, searching), block operations (retrieval, appending, updating, deleting), and batch operations for efficient content management.

Notion MCP サーバー

Notion MCP Serverは、 AIアシスタントがNotionのAPIと連携できるようにするModel Context Protocol(MCP)サーバー実装です。本番環境で利用可能なこのサーバーは、自然言語によるインタラクションを通じてNotionコンテンツを読み取り、作成、変更するためのツールとエンドポイントを完備しています。

🚧活発な開発:データベースサポートが利用可能になりました!コメントとユーザー管理ツールが追加されました。このプロジェクトが役に立ったと感じたら、ぜひスターを付けてください。この作業がコミュニティにとって価値のあるものであると認識し、さらなる開発のモチベーションを高めるのに役立ちます。

📑 目次

🚀 はじめにと統合

セットアッププロセス

  1. Notion APIキーを取得する
  2. ページの統合を有効にする
    • Notionで既存のページを選択するか、新しいページを作成します
    • 右上隅の「…」メニューをクリックします
    • 「接続」へ移動
    • リストから統合を見つけて有効にします
  3. 統合方法を選択する
    • ご希望のMCPクライアントに応じて、以下の統合オプションのいずれかを選択してください。
  4. AIアシスタントにNotionと対話してもらう
    • 「今日のタスクを記載した新しいページを作成する」
    • 「Notionで会議メモを更新する」
    • 「会議メモページに箇条書きを追加する」
    • 「プロジェクトを追跡するための新しいデータベースを作成する」
    • 「タスクデータベースに新しいエントリを追加する」
    • 「プロジェクトページにコメントを追加する」
    • 「このドキュメントのすべてのコメントを表示」
    • 「ワークスペース内のすべてのユーザーを一覧表示する」
    • 「特定のユーザーに関する情報を取得する」

カーソル統合

方法1: mcp.jsonを使用する

  1. プロジェクト ディレクトリに.cursor/mcp.jsonファイルを作成または編集します。
{ "mcpServers": { "notion-mcp-server": { "command": "env NOTION_TOKEN=YOUR_KEY NOTION_PAGE_ID=YOUR_PAGE_ID npx", "args": ["-y", "notion-mcp-server"] } } }
  1. YOUR_KEYYOUR_PAGE_IDを実際の Notion API キーとページ ID に置き換えます。
  2. 変更を適用するにはカーソルを再起動してください

方法2: 手動モード

  1. カーソルを開いて設定へ移動します
  2. 「MCP」または「モデルコンテキストプロトコル」セクションに移動します
  3. 「サーバーを追加」または同等のボタンをクリック
  4. 適切なフィールドに次のコマンドを入力します。
env NOTION_TOKEN=YOUR_KEY NOTION_PAGE_ID=YOUR_PAGE_ID npx -y notion-mcp-server
  1. YOUR_KEYYOUR_PAGE_IDを実際の Notion API キーとページ ID に置き換えます。
  2. 設定を保存し、必要に応じてカーソルを再起動します。

クロードデスクトップ統合

  1. 構成ディレクトリにmcp.jsonファイルを作成または編集します。
{ "mcpServers": { "notion-mcp-server": { "command": "npx", "args": ["-y", "notion-mcp-server"], "env": { "NOTION_TOKEN": "YOUR_KEY", "NOTION_PAGE_ID": "YOUR_PAGE_ID" } } } }
  1. YOUR_KEYYOUR_PAGE_IDを実際の Notion API キーとページ ID に置き換えます。
  2. 変更を適用するには、Claude Desktopを再起動してください。

🌟 特徴

  • 📝 Notion との統合- Notion のデータベース、ページ、ブロックと連携
  • 🔌 ユニバーサル MCP 互換性- Cursor、Claude Desktop、Cline、Zed を含むすべての MCP クライアントで動作します
  • 🔍 データ取得- Notionのページ、ブロック、データベースから情報を取得します
  • ✏️ コンテンツ作成- Notionのページとブロックを作成および更新します
  • 📊 ブロック管理- Notionページ内でブロックを追加、更新、削除します
  • 💾 データベース操作- データベースの作成、クエリ、更新
  • 🔄 バッチ操作- 1回のリクエストで複数の操作を実行する
  • 🗑️ アーカイブと復元- Notion ページをアーカイブおよび復元します
  • 🔎 検索機能- Notionのページやデータベースをタイトルで検索
  • 💬 コメント管理- ページやディスカッションへのコメントを取得、作成、返信する
  • 👥 ユーザー管理- ワークスペースのユーザーとユーザー情報を取得する

📚 ドキュメント

利用可能なツール

サーバーは、Notion と対話するための次の統合ツールを提供します。

notion_pages

以下の内容を含むページ操作のための包括的なツール:

  • 指定されたコンテンツで新しいページを作成する
  • ページのプロパティを更新しています
  • ページをアーカイブする(ゴミ箱に移動)
  • 以前アーカイブしたページの復元
  • タイトルでページを検索する

操作例:

{ "payload": { "action": "create_page", // One of: "create_page", "archive_page", "restore_page", "search_pages", "update_page_properties" "params": { // Parameters specific to the chosen action } } }

notion_blocks

以下を含むブロック操作用の完全なツールキット:

  • ブロックコンテンツの取得
  • 子ブロックの取得
  • 親に新しいブロックを追加する
  • 既存のブロックの更新
  • ブロックの削除
  • バッチ操作(追加、更新、削除、混合)の実行

操作例:

{ "payload": { "action": "append_block_children", // One of: "append_block_children", "retrieve_block", "retrieve_block_children", "update_block", "delete_block", "batch_append_block_children", "batch_update_blocks", "batch_delete_blocks", "batch_mixed_operations" "params": { // Parameters specific to the chosen action } } }

notion_database

以下の内容を含むデータベースインタラクションのための強力なツール:

  • カスタムプロパティを使用して新しいデータベースを作成する
  • フィルターと並べ替えを使用してデータベースをクエリする
  • データベース構造とプロパティの更新

操作例:

{ "payload": { "action": "create_database", // One of: "create_database", "query_database", "update_database" "params": { // Parameters specific to the chosen action } } }

notion_comments

Notion コンテンツへのコメントを管理するためのツール:

  • ページとブロックからコメントを取得する
  • ページに新しいコメントを追加する
  • 既存のディスカッションに返信する

操作例:

{ "payload": { "action": "get_comments", // One of: "get_comments", "add_page_comment", "add_discussion_comment" "params": { // Parameters specific to the chosen action } } }

notion_users

ユーザー情報にアクセスするためのツール:

  • すべてのワークスペースユーザーを一覧表示する
  • 特定のユーザーの詳細を取得する
  • 現在のボットユーザーに関する情報を取得しています

操作例:

{ "payload": { "action": "list_users", // One of: "list_users", "get_user", "get_bot_user" "params": { // Parameters specific to the chosen action } } }

利用可能なリソース

サーバーは現在、リソースを公開しておらず、ツールベースの操作に重点を置いています。

🛠 開発

  1. リポジトリのクローンを作成する
    git clone https://github.com/awkoy/notion-mcp-server.git cd notion-mcp-server
  2. 依存関係をインストールする
    npm install
  3. 環境変数を設定する
    • 次の内容で.envファイルを作成します。
      NOTION_TOKEN=your_notion_api_key NOTION_PAGE_ID=your_notion_page_id
  4. プロジェクトを構築する
    npm run build
  5. インスペクターを実行する
    npm run inspector

🔧 技術的な詳細

  • TypeScript と MCP SDK (バージョン 1.7.0+) を使用して構築
  • 公式のNotion APIクライアント(@notionhq/client v2.3.0+)を使用します
  • モデルコンテキストプロトコル仕様に準拠
  • Notionページ、ブロック、データベースのCRUD操作用のツールを実装します
  • パフォーマンスの最適化のための効率的なバッチ操作をサポート
  • Zodスキーマで入力/出力を検証します

❓ トラブルシューティング

  • よくある問題
    • 認証エラー: Notionトークンに適切な権限があり、ページ/データベースの統合が有効になっていることを確認してください。
    • ページアクセスの問題: アクセスしようとしているページに統合が追加されていることを確認してください
    • レート制限: Notion API にはレート制限があります。バッチ操作を使用してリクエストを最適化してください。
  • ヘルプの取得

🤝 貢献する

貢献を歓迎します!お気軽にプルリクエストを送信してください。

  1. リポジトリをフォークする
  2. 機能ブランチを作成します( git checkout -b feature/amazing-feature
  3. 変更をコミットします ( git commit -m 'Add some amazing feature' )
  4. ブランチにプッシュする ( git push origin feature/amazing-feature )
  5. プルリクエストを開く

📄 ライセンス

このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細については LICENSE ファイルを参照してください。

ID: zrh07hteaa