67
35

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

生成AIAdvent Calendar 2024

Day 5

MCPを使ってnotionをClaude Desktopから操作する!

Last updated at Posted at 2024-11-30

はじめに

先日、MCPがAnthropicから発表されましたが、実際何ができるの?と疑問を持たれた方もいると思います。
この記事では一例としてMCPを使って、Claude Desktopからnotionを操作する方法を紹介します!

背景

実は、mcp serverにnotion serverを実装したPRを出していて、これがマージされたら解説記事を出そうかなと考えていました。しかしmcpではスケーラビリティの観点からサーバーを一元管理するのではなく、個々でホストする方向に向かいそうなので、最悪クローズされても、誰かに使ってもらいたという思いからこの記事を書きました。(該当のdiscussion)

準備

MCP Notion Serverのセットアップ

すぐ使えるようにリポジトリを作ったので、こちらをクローンしてください。

git clone https://github.com/suekou/mcp-notion-server.git

次に以下のコマンドを実行してください

cd notion
npm run build
npm link

実行後に、notion/build/index.jsが作成できていたら大丈夫です。

Notion API トークンの準備

MCP serverがnotionにアクセスできるようにnotionのapiトークンを発行します。
integrationsページから、New Integrationsを選択してください。
そうすると、フォームが出てくるので、インテグレーション名を記入し、ワークスペースを選択してください。TypeはデフォルトのInternalのままで大丈夫です。
作成が完了すると、作成したインテグレーションの詳細画面に行けるので、そこで
image.png
Show → Copyでトークンを持っていてください。

claude_desktop_config.jsonを編集

code ~/Library/Application\ Support/Claude/claude_desktop_config.json

から、claude_desktop_config.jsonを編集します。
以下のように、argsにはbuildしたnotion/build/index.jsのパス(例: /Users//Desktop/mcp-notion-server/notion/build/index.js)と、NOTION_API_TOKENには先程取得したトークンをペーストしてください。

{
  "mcpServers": {
    "notion": {
      "command": "node",
      "args": [
        "buildしたファイルのパス"
      ],
      "env": {
        "NOTION_API_TOKEN": "先程取得したトークン"
      }
    }
  }
}

他にもサーバーを設定している場合は、以下のようになります。

{
  "mcpServers": {
    "sqlite": {
      "command": "uvx",
      "args": [
        "mcp-server-sqlite",
        "--db-path",
        "/Users/USER_NAME/test.db"
      ]
    },
    "notion": {
      "command": "node",
      "args": [
        "/Users/USER_NAME/Desktop/mcp-notion-server/notion/build/index.js"
      ],
      "env": {
        "NOTION_API_TOKEN": "API_TOKEN"
      }
    }
  }
}

インテグレーションと接続

先程インテグレーションを設定したワークスペース内に適当なページを作ってください。
そうしたら右上の詳細ボタンを押し、Connect toから先程作成したインテグレーションを選択してください。
image.png

次に、現在いるページのurlからpageのidを取得します。
https://www.notion.so/mcp-test-notion1234server567apiintegration890 のように後ろに32字のアルファベットと数字の文字列があるので、これをコピーしておいてください。こちらの例で言うと、notion1234server567apiintegration890がpageのidです。

実際に使ってみよう!

記事を保存してみよう

既にClaude Desktopを開いている場合は、再起動してください。
起動後にトンカチマークを押してみて、

image.png

From serverにnotionの名前があったら使える状態です。

image.png

まずは、適当な記事を書いてもらいます。

image.png

記事ができたら
"この内容をnotionの<先程コピーしたpage id>に保存したい"と送信してください。
そうすると、以下のようにtoolの使用許可を求められるので許可してください。

image.png

実行後に、以下のようにページに記事の内容が保存されているはずです。
image.png

DBを使ってみよう

今度は適当なDBを作ってもらいましょう。
私の場合は、映画についてのDBを作ってもらいました。

image.png

ページを確認すると、ちゃんと出来上がってます!

image.png
image.png

できたDBに適当な情報を挿入します。

image.png

次にClaudeに"評価が⭐️⭐️⭐️⭐️⭐️の映画を教えて"と聞いてみます。
そうすると、、、

image.png

評価が⭐️⭐️⭐️⭐️⭐️の映画をリストできました!!

最後に

今回この記事で紹介しているのは3つの機能だけですが、他にもNotion MCP Serverには、たくさん機能を実装したので、ぜひいっぱい触ってみてください!!
例えばpdfやパワポをまとめさせて、notionに転記させるなど工夫次第で活用方法は多くあると思います。
さらにソースコードを改変すれば、もっと多様なユースケースにも対応できると思います。改変したものや、こんなのもできた!などありましたら、後学のためにも報告していただけるとありがたいです🙇
最後まで読んでいただきありがとうございました👋

67
35
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
67
35

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?