Notion MCP Server について
Notion MCP Server は、Notion API への標準化されたインターフェースを提供する MCP サーバーで、Claude Desktop などの MCP クライアントに対応しています。Notion ワークスペースの内容をアシスタントに読み書きさせたい利用者を対象としており、httpx による非同期処理と Pydantic v2 モデルで実装されています。
主な機能
- 01Notion データベースの一覧取得と検索
- 02ページの作成と更新
- 03ワークスペース全体の検索
- 04データベースの詳細とブロックの子要素の取得
- 05httpx による非同期実装
- 06Pydantic v2 による型検証されたモデル
活用シーン
- 01アシスタントからの Notion データベースのレコード照会
- 02アシスタント経由での Notion ページの作成や更新
- 03ワークスペース内のページとデータベースの検索
MCP 対応
本プロジェクトは、Notion のデータベース、ページ、検索の操作を Claude Desktop などの MCP クライアントに公開する MCP サーバーです。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Notion MCP サーバー
Notion と連携するための Model Context Protocol(MCP)サーバー実装です。Notion の API とやり取りするための標準化されたインターフェースを提供します。Claude Desktop やその他の MCP クライアントと互換性があります。
機能
- Notion データベースの一覧表示とクエリ
- ページの作成と更新
- Notion ワークスペース全体の検索
- データベースの詳細とブロックの子要素の取得
- httpx による完全な async/await サポート
- Pydantic v2 モデルによる型安全性
- 詳細なログ記録を伴う適切なエラー処理
- MCP 1.6.0 との互換性
インストール
Smithery 経由でのインストール
Smithery 経由で Notion Integration Server を Claude Desktop に自動インストールするには:
npx -y @smithery/cli install @ccabanillas/notion-mcp --client claude
手動インストール
- リポジトリをクローンします:
git clone https://github.com/ccabanillas/notion-mcp.git
cd notion-mcp
- 仮想環境を作成し、依存関係をインストールします(uv を使用):
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv pip install -e .
または、標準の venv を使用します:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -e .
- プロジェクトのルートに
.envファイルを作成します:
NOTION_API_KEY=your_notion_integration_token
使用方法
- サーバーをテストします(エラーなく実行されるはずです):
python -m notion_mcp
- Claude Desktop で使用するには、
claude_desktop_config.jsonファイルを編集します(macOS では~/Library/Application Support/Claude/claude_desktop_config.jsonにあります):
{
"servers": {
"notion-mcp": {
"command": "/Users/username/Projects/notion-mcp/.venv/bin/python",
"args": ["-m", "notion_mcp"],
"cwd": "/Users/username/Projects/notion-mcp"
}
}
}
/Users/username/ を実際のホームディレクトリのパスに置き換えてください。
開発
プロジェクト構成
notion-mcp/
├── src/
│ └── notion_mcp/
│ ├── models/
│ │ ├── __init__.py
│ │ └── notion.py # Pydantic models for Notion objects
│ ├── __init__.py
│ ├── __main__.py # Entry point
│ ├── client.py # Notion API client
│ └── server.py # MCP server implementation
├── .env # Environment variables (add your Notion API key here)
├── .gitignore
├── pyproject.toml # Project dependencies
└── README.md
テストの実行
pytest
設定
このサーバーには Notion インテグレーショントークンが必要です。設定するには:
- https://www.notion.so/my-integrations にアクセスします
- 適切な機能(必要に応じて読み取り/書き込み)を備えた新しいインテグレーションを作成します
- インテグレーショントークンをコピーします
- プロジェクトのルートディレクトリにある
.envファイルに追加します:
NOTION_API_KEY=your_notion_integration_token
- Notion データベースをインテグレーションと共有します(データベースの「Share」メニューから)
コントリビューション
- リポジトリをフォークします
- 機能ブランチを作成します(
git checkout -b feature/amazing-feature) - 変更をコミットします(
git commit -m 'Add some amazing feature') - ブランチにプッシュします(
git push origin feature/amazing-feature) - プルリクエストを作成します
ライセンス
MIT ライセンス - 自己責任でご利用ください
トラブルシューティング
よくある問題
- 接続エラー:Notion API キーが正しいこと、およびインターネットに接続されていることを確認してください
- 権限エラー:アクセスしようとしているデータベースへのアクセス権がインテグレーションに付与されていることを確認してください
- Claude Desktop との連携:Claude Desktop が接続できない場合は、設定ファイルのパスが正しく、サーバーが stdout にログを出力せずに実行されていることを確認してください
謝辞
- Claude Desktop やその他の MCP クライアントで動作するように構築されています
- Notion の API を使用しています(最新の互換バージョンは 2022-02-22)
- MCP 1.6.0 との互換性を維持しています
- danhilse に特別な感謝を申し上げます。notion-mcp-server プロジェクトを参考にしました
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。