mcpField
N
Notion MCP Client

Notion MCP Client

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

Notion MCP Client について

Notion MCP Client は Notion API を通じてページやデータベースを操作し、AI ツールから Notion を管理するためのクライアントです。非同期処理、再試行、同時実行制御に対応し、MCP が利用できない場合は HTTP に切り替えます。

主な機能

  1. 01Notion API の非同期操作
  2. 02再試行と同時実行制御
  3. 03環境変数と JSON による設定
  4. 04MCP が使えない場合の HTTP 切り替え

活用シーン

  1. 01Notion ページの URL フィールドを入力
  2. 02設定に基づく Notion データベース操作
  3. 03MCP 非対応環境から HTTP で呼び出し

MCP 対応

AI ツールが接続して Notion を操作できる MCP サーバーとして実行できます。MCP が利用できない場合は標準 HTTP サーバーに切り替えます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"notion-mcp-phoenine": {
"command": "uvx",
"args": [
"notion-mcp"
],
"env": {
"NOTION_TOKEN": "<NOTION_TOKEN>",
"ROOT_PAGE_ID": "<ROOT_PAGE_ID>"
}
}
}
}
起動コマンドuvx notion-mcp
設定が必要な環境変数
NOTION_TOKENシークレット
ROOT_PAGE_ID

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypinotion-mcp

ツール

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

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

詳細

Notion MCP クライアント

Notion API と連携するための Model Context Protocol(MCP)クライアントです。このクライアントは、MCP による機能拡張をサポートする Claude などの最新の AI ツールで使用することを想定しています。

特長

  • リトライロジックを備えた非同期 API 操作
  • Notion API のレート制限を守るための並行処理制御
  • 環境変数に基づく設定
  • JSON に基づく操作設定
  • MCP をサポートする柔軟なサーバー実装
  • MCP が利用できない場合は標準 HTTP API にフォールバック

インストール

pip install notion-mcp

または、ソースからインストールします。

git clone https://github.com/yourusername/notion-mcp.git
cd notion-mcp
pip install -e .

MCP をサポートするには、MCP エクストラを指定してインストールします。

pip install notion-mcp[mcp]

設定

Notion API の認証情報と設定を含む .env ファイルを作成します。

NOTION_TOKEN=your_notion_token_here
ROOT_PAGE_ID=your_root_page_id_here
MAX_RETRIES=3
RETRY_DELAYS=1,3,5
CONCURRENCY_LIMIT=5
TIMEOUT_MS=30000

使用方法

コマンドライン

デフォルト設定で実行します。

notion-mcp

カスタム JSON 設定ファイルを指定して実行します。

notion-mcp config.json
サーバー

サーバーを起動します(利用可能な場合は MCP をサポートします)。

notion-mcp-server --host 0.0.0.0 --port 8000

サーバーは、利用可能な場合は MCP プロトコルを使用しようとします。利用できない場合は、/notion への POST リクエストを受け付ける標準 HTTP サーバーにフォールバックします。

HTTP API

HTTP API を使用する場合は、JSON ボディを指定して /notion に POST リクエストを送信します。

{
  "root_page_id": "your_page_id_here",
  "database_filter": ["Articles", "Resources"],
  "operation": {
    "type": "fill_web_url",
    "params": {
      "web_field": "网址"
    }
  }
}

curl を使用した例:

curl -X POST http://localhost:8000/notion \
  -H "Content-Type: application/json" \
  -d '{"root_page_id": "your_page_id_here", "operation": {"type": "fill_web_url"}}'
JSON 設定

動作をカスタマイズするには、JSON 設定ファイルを作成します。

{
  "root_page_id": "your_page_id_here",
  "database_filter": ["Articles", "Resources"],
  "operation": {
    "type": "fill_web_url",
    "params": {
      "web_field": "网址"
    }
  }
}

Claude での使用

この MCP クライアントを Claude で使用するには、サーバーを設定した後、Claude がそれを使用するように設定します。設定例は次のとおりです。

{
  "mcp_configurations": [
    {
      "name": "notion",
      "endpoint": "http://localhost:8000/notion",
      "description": "Access and manipulate Notion databases and pages"
    }
  ]
}

その後、Claude との会話で、次のように Notion の操作を依頼できます。

Claude, please use the notion MCP to fill the web URL field in all pages of my Articles database.

他のフレームワークとの統合

NotionRequestHandler クラスを使用すると、さまざまなフレームワークと柔軟に統合できます。

from notion_mcp.handler import notion_handler

# Create an adapter for your framework
async def my_framework_handler(request):
    # Extract data from your framework's request object
    input_data = await request.json()
    
    # Process with Notion handler
    result = await notion_handler.handle_request(input_data)
    
    # Return in your framework's response format
    return MyFrameworkResponse(json=result)

利用可能な操作

  • fill_web_url:ページ内の URL フィールドを検索し、その値を指定した対象の URL フィールドにコピーします
  • 今後、さらに操作を追加予定です!

開発

このプロジェクトに貢献するには:

  1. リポジトリをフォークします
  2. 仮想環境を作成します:python -m venv venv
  3. 環境を有効化します:source venv/bin/activate(Linux/Mac)または venv\Scripts\activate(Windows)
  4. 開発用の依存関係をインストールします:pip install -e ".[dev]"
  5. 変更を加えます
  6. テストを実行します:pytest
  7. プルリクエストを送信します

ライセンス

MIT

コメント

MCP は初めてですか?

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

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