はじめに
先日、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のままで大丈夫です。
作成が完了すると、作成したインテグレーションの詳細画面に行けるので、そこで
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から先程作成したインテグレーションを選択してください。
次に、現在いるページのurlからpageのidを取得します。
https://www.notion.so/mcp-test-notion1234server567apiintegration890 のように後ろに32字のアルファベットと数字の文字列があるので、これをコピーしておいてください。こちらの例で言うと、notion1234server567apiintegration890がpageのidです。
実際に使ってみよう!
記事を保存してみよう
既にClaude Desktopを開いている場合は、再起動してください。
起動後にトンカチマークを押してみて、
From serverにnotionの名前があったら使える状態です。
まずは、適当な記事を書いてもらいます。
記事ができたら
"この内容をnotionの<先程コピーしたpage id>に保存したい"と送信してください。
そうすると、以下のようにtoolの使用許可を求められるので許可してください。
実行後に、以下のようにページに記事の内容が保存されているはずです。
DBを使ってみよう
今度は適当なDBを作ってもらいましょう。
私の場合は、映画についてのDBを作ってもらいました。
ページを確認すると、ちゃんと出来上がってます!
できたDBに適当な情報を挿入します。
次にClaudeに"評価が⭐️⭐️⭐️⭐️⭐️の映画を教えて"と聞いてみます。
そうすると、、、
評価が⭐️⭐️⭐️⭐️⭐️の映画をリストできました!!
最後に
今回この記事で紹介しているのは3つの機能だけですが、他にもNotion MCP Serverには、たくさん機能を実装したので、ぜひいっぱい触ってみてください!!
例えばpdfやパワポをまとめさせて、notionに転記させるなど工夫次第で活用方法は多くあると思います。
さらにソースコードを改変すれば、もっと多様なユースケースにも対応できると思います。改変したものや、こんなのもできた!などありましたら、後学のためにも報告していただけるとありがたいです🙇
最後まで読んでいただきありがとうございました👋