Notion公式の MCP Serverがリリースされていたので試してみた。 makenotion/notion-mcp-server: Official Notion MCP Server

MCP Serverに使うNotionのintegration tokenは以下から生成できる。 ただし、管理者権限が必要なようだ。自分が管理権限のないWorkspaceではIntegrationを有効化できなかった。

My Creator Profile Notion

生成したinternal integration Secretを以下のJSONに含めて自分が使っているMCP Clientの設定に追加する。私はClineを使っている。なおGitHub Copilot AgentのMCPではなぜか「Failed to validate tool 2d9_API-post-database-query: TypeError: Cannot use ‘in’ operator to search for ‘type’ in true」というエラーになって使えなかった。

{
  "mcpServers": {
    "notionApi": {
      "command": "npx",
      "args": ["-y", "@notionhq/notion-mcp-server"],
      "env": {
        "OPENAPI_MCP_HEADERS": "{\"Authorization\": \"Bearer ntn_****\", \"Notion-Version\": \"2022-06-28\" }"
      }
    }
  }
}

Notionは以前使っていたけどしばらく管理者としてさわっていなかったため、知識が無くてハマったのだが、Notion APIで検索にヒットさせるようにするには、ページ単位でConnectしておく必要がある。

Notion公式の下記のページにも書いてある。

インテグレーションの追加と管理 – Notion (ノーション)ヘルプセンター

下記の画像のように、ページの三点リーダーの「Connections」から、先程作ったIntegrationを追加しておく必要がある。親ページだけやれば良く、その配下の子ページには設定が伝播するようだ。

Notion Connect

これでMCP Clientとやりとりする準備は整った。まずやりたいのはNotionの情報を引っ張ってきてコンテキストに含めることだ。 ページのリストの取得もできるし、検索もできる。

Notion Connect 2 Notion Connect 3 Notion Connect 4

コメントの追加もできた。

Notion Connect 5

できた事自体は「おぉ〜!」という驚きと喜びはあるけど、この1ステップのIntegrationだったらただのAPI連携だし、手動でやっても大した手間ではない。ここから、もうちょっと大きな粒度のタスクや自動化フローをまるっと任せることができてこそ意味があると思う。

そうなると、ClineとかClaude Desktopのような対話型インタフェースではなく、横で待機していて必要なときにフォローしてくれるようなAmbientなAgentがいいなあと思う。