Notion MCPをCursorで使ってみる

MCPとは
アプリケーションがLLMにコンテキストを提供する方法を標準化するオープンプロトコル
モデルコンテキストプロトコル(MCP)- Anthropic
MCPはアプリケーションごとの異なるデータソース、ツールに接続するための標準的な方法の提供を行う
ざっくりと、様々なアプリケーションとAIをつなぐための標準的な規格がMCPなんだと捉えている(ドキュメント内ではUSB-Cで例えられている)。
MCPクライアントとNotion MCP Server
MCPはあくまで規格なのでそれで何かをするというわけではない。
MCPが搭載されているクライアントを使用して、MCPサーバーで実際にアプリケーションとの統合を行う必要がある。
もっと具体的に言うと、 MCPクライアント(Cursor、Claudeなど)がMCPという規定に沿ってJSONを生成し、MCP Serverが各種アプリケーションのAPIに変換・実行をする
というざっくりとこんな感じの解釈をしている。
要するに、MCPクライアントとMCPサーバーがあれば、アプリケーションごとのAPI仕様とかをクライアント側が意識せずとも自然言語で指示を出すだけでアプリケーションの操作がLLMを通して可能になるということ。
構築
実際にNotion MCPを使用してみる。
目的はMCPクライアントから自分のNotionのワークスペース内のファイルを参照させて、内容の整理や修正、要約を行わせること。
構築の流れは以下のNotion MCP ServerリポジトリのREADMEの内容の繰り返しになってしまうのでざっくりとしたものにする。
前提:
- Notionアカウントを持っている
- Cursorをダウンロード済み(課金有無はおそらく関係ない)
1. Notion Developerでインテグレーションの追加
MCP Serverにどんな権限を許可するかなどを設定
以下のページからインテグレーションを追加 https://www.notion.so/profile/integrations/form/new-integration
2. 作成したインテグレーションをNotionに接続
Notionで右上3点リーダから「接続」→ 検索ボックスにさきほど作成したインテグレーションを検索して接続
3. MCPクライアント側の設定
Cursorなら基本設定
> Cursor Settings
> MCP
からmcp.json
を作成。(mcp.json
の中身はREADME参照)
envプロパティにはインテグレーション作成時に生成されたシークレットを貼り付ける
これだけで完了
使ってみた感想
ページidや正確なDB名とか与えると読み取りに成功しやすく感じたので、割とプロンプトは丁寧にしないと思った出力が得られないことが多いかもしれない。
読み取りの性能は高く感じるが、修正は苦手に感じる。
プロンプトやモデルによる性能の違いの可能性もあるので何とも言えないが、書き直すというのがおそらく苦手で、新しい内容を新規作成という形で出力されたりするので、Notionのブロックの積み方はマシンリーダブルなものにしつつ、プロンプトもそこそこ丁寧に明示的にすることが大事なのかもしれない。
単純作業系は向いてないのかなと今のところは思うので、
積み上げてきた雑なメモとか文章とかを整理・要約させるっていう使い方でしばらく使ってみようかと思う。