
Notion公式MCPサーバを使ってどんなことができるか試してみた
お疲れさまです。とーちです。
Notionの公式MCPサーバーが登場したということで、どんなことができるのか実際に試してみました。今回はMCPクライアントとしてClaude Desktopを使用します。
今回の検証には以下の環境が必要です
- Notionのアカウント
- Claude Desktopがインストール済み
まだ準備ができていない方は、これらを先に用意しておきましょう。
Notionの設定
まずは操作の対象となるワークスペースをNotionで作成していきます。
Notionの画面左上にあるワークスペースの切り替えメニューを開きます。以下のような画面が表示されるので、適当に選択します。今回は「私生活での使用」⇒「一人で使用する場合」⇒「スキップ」と選択しました。
ワークスペースが作成できたら、次にNotionAPIを使用するためのシークレットを取得する必要があります。そのためにNotionインテグレーションを作成します。
Notionインテグレーションのページ へアクセスし、新しいインテグレーションを選択します。
適当にインテグレーション名をつけ、関連ワークスペースに先ほど作成したワークスペースを指定します。種類は内部(Internal)を指定します。InternalとPublicの違いについてはこちらのページに記載がありますが、簡単に言うとPublicは名前の通りインターネット上で広くNotionAPIを公開する際に使うものです。
インテグレーションが作成されると以下の画面が表示されますので、内部インテグレーションシークレットを控えておきます。このシークレットは後ほどClaude Desktopの設定で使用します。
内部インテグレーションの場合、NotionAPIがアクセスできるワークスペース内のページは手動で許可する必要があります。とりあえず最初に表示された「使ってみる」というページに以下の手順で作成したインテグレーションを追加しました。これでこのページの配下のページも操作できるようになります。
Claude DesktopへのNotion MCPサーバーの追加
実は最初はCline(VS Code LM API:Claude 3.5 Sonnet)で試したんですが、応答がそっけない印象でした。
特にMCPサーバーを使った処理を行うときに何を行っているのかメッセージを表示してくれなかったので、Claude Desktopで改めて確認することにしました。
設定は、Claude Desktopの設定ファイル /Users/<username>/Library/Application Support/Claude/claude_desktop_config.json
に以下の記載を追加するだけです。ntn_***
の部分には上記で取得したNotionの内部インテグレーションシークレットを入力します。
"notionApi": {
"timeout": 60,
"command": "<npxコマンドのフルパス>",
"args": [
"-y",
"@notionhq/notion-mcp-server"
],
"env": {
"OPENAPI_MCP_HEADERS": "{\"Authorization\": \"Bearer ntn_***\", \"Notion-Version\": \"2022-06-28\" }"
},
"transportType": "stdio"
}
Claude Desktopを再起動すると、かなり多くのツールが追加されていました。これらのツールを使ってNotionを操作できるようになります。
試してみる
実際にどんなことができるか試してみましょう。
プロジェクト管理の自動化
Notionにプロジェクトページがあることを想定して、プロジェクトの管理タスクをAIにまかせてみます。
下準備として、Notionでインテグレーションを追加したページの配下に以下のようなコンテンツを作りました(生成AIに作ってもらいました)。
プロジェクト管理用メインページ:
プロジェクト概要ページ:
タスク管理データベース:
この状態でClaude Desktopから以下のような指示を出してみます。
notionで今週期限の優先度「高」のタスクをすべてリストアップして
すると以下の回答が返ってきました。
API-post-searchでインテグレーションされたページの中からデータベースを探し出し、API-post-database-queryでデータベースのレコードを取得しています。何回かレコードを絞るためのクエリを発行したもののいずれもエラーとなっており、全件取得したデータの中からLLMが判断して、今週期限の優先度「高」のタスクを見つけ出したようです。
続いて以下の指示をしてみます。
「四半期報告書の準備」というタイトルで、優先度「高」、期限「2025年12月15日」のタスクをデータベース「タスク」に追加して
結果は以下です。
お、ちゃんと追加できたみたいですね。レコードの追加はAPI-post-pageで行っているのがわかります。
Notion上にも追加されていました。これはすごい!
こんな指示も出してみましょう。
ホームページデザインのモックアップのタスクの優先度を「中」に更新して
結論からいうとこの指示は失敗しました。タスクの特定自体は出来ていますが、優先度プロパティの修正がどの方法でもうまくいかなかったようです。
ナレッジベースの検索
次はNotion上にナレッジベースがあると仮定して、そのナレッジの検索と要約を試してみたいと思います。
追加で以下のコンテンツをNotion上に用意しました(あくまでも架空のコンテンツです)。
以下のような内容のページを3つほど作っています。
この状態で以下プロンプトで、ナレッジの検索をしてみます。
notionの中から「Google PageSpeed スコア」を向上させる方法を検索し、調査結果を要約してください
結果が以下です。
「Google PageSpeed スコア」というキーワードから目的のページを探し出しているのがすごいですね。目的のページまでは探せているのですが、ページのコンテンツを取得するところで何度やってもClaudeの応答が中断されてしまいました。
こちらのページを見ると、無料プランの場合、コンテキスト ウィンドウと 1 日のメッセージ制限は需要に応じて変動とのことなので、このあたりに引っかかっているのかなと想像します。ともあれ、目的のページまでは探し出せているので、このあと要約するのはAIにとっては容易でしょう。
「Google PageSpeed スコア」というキーワードはノート自体には含まれているのでこれがダイレクトに検索出来ないのはNotionAPIの仕様が関係しているのかなと想像します。
以下がNotionAPIの公式ページなんですが、SearchのAPIは Search by title
しかなさそうなんですよね。Returns all pages or databases, excluding duplicated linked databases, that have titles that include the query param.
とあるようにこのAPIでは、ページタイトルでしか検索出来ないのだと思います。(Notionに詳しい方、もし間違いでしたらご指摘頂けると幸いです)
ちなみにCline(VS Code LM API:Claude 3.5 Sonnet)で同じ質問を試したところ以下の結果でした。モデルの差なのかな?
議事録の作成
最後にメモを元にNotion上に議事録を作成してもらいましょう。
プロンプトは以下です。
以下のメモからnotionの「タスク管理データベース」に議事録ページを作成してください:
日付: 2023年12月12日
会議: ウェブサイトリニューアル週次ミーティング
参加者: 山田、佐藤、鈴木、高橋
議題:
- デザインモックアップレビュー - トップページはOK、商品ページは修正必要
- CMS移行スケジュール - API連携の問題で1週間延期の可能性あり
- モバイルパフォーマンスの懸念 - 3G接続での読み込み時間が目標の3秒を超過
- コンテンツ移行計画の進捗 - 約40%完了、予定通り
アクションアイテム:
- 佐藤: 商品ページデザインの修正 (12/15まで)
- 高橋: API統合問題の調査と解決策提案 (12/14まで)
- 鈴木: モバイル最適化案の作成 (12/16まで)
次回: 12月19日 10:00-11:30
結果は以下の通りでした。
若干想定とは違った結果ですが、ちゃんと議事録ページは作成されています。面倒くさがって、タスク管理データベースに議事録ページを作成してもらおうとしたのですが、AIのほうで、タスク管理データベースではなく、会議議事録データベースを勝手に作ってしまいました。
また、会議議事録データベースにレコードを登録しようとしたけれども失敗し、最終的にはプロジェクト管理トップページの配下に新規でノートを作っていますね。
しかし議事録のページ自体はしっかり作られていました。
まとめ
以上、Notionの公式MCPサーバーを試してみました。NotionとLLMが接続されることでいろんなことができそうですね。可能性が膨らみます!
実際に試してみて、以下のようなことが分かりました
- タスク管理の自動化: タスクの検索や追加が自然言語で指示できる
- ナレッジベースの検索: 情報の検索と要約が可能(ただしAPIの制約あり)
- 議事録作成: メモから構造化された議事録を自動作成できる
一方で、Notion統合先のページはよく検討して必要な情報だけに絞ったほうが良質な成果が得られそうにも感じました。例えばタスクの追加をお願いしたときに統合先ページの配下に複数のタスク管理DBがあれば、どこのDBに追加するのかのコンテキストが必要になると思います。
ナレッジ検索なども必要なページのみを検索させたほうが効率が良さそうです。また、インテグレーションシークレットによる認証という部分も難しい部分ですね。以下のような形でのリモートMCPサーバーの仕組みが今後は重要になりそうです。
NotionとAIの連携はまだ発展途上ですが、今後の進化が楽しみな分野です。皆さんもぜひ試してみてください!
以上、とーちでした。