カテゴリー / VS Code・Git・ツール連携

Claude CodeとNotionの連携手順|MCP追加から認証と権限設定まで

この記事の目次

Claude CodeとNotionの接続設定は、ターミナルで claude mcp add --transport http notion https://mcp.notion.com/mcp を実行してNotionのMCPサーバー登録を行い、Claude Codeの中で /mcp を開いてブラウザでNotionにサインインすれば完了する。サインイン後に claude mcp list を実行し、notion の横に ✔ Connected と表示されれば接続できている。このコマンドはClaude Code公式ドキュメントのMCPページに、Notionへ接続する実例としてそのまま載っているものだ。claude.aiでNotionコネクタをすでに追加していれば、claude.aiのサブスクリプションでログインしたClaude Codeから同じコネクタを使う道もある。

この記事では、登録から認証、接続確認、書き込みを毎回確認させる権限ルール、つながらないときの切り分けまでを、公式ドキュメントの記述に沿って順に説明する。MCPという仕組みそのものの説明はClaude CodeのMCP解説記事に任せ、ここではNotion連携に必要な部分だけを扱う。

Claude CodeとNotionを連携すると何ができるのか

公式ドキュメントのMCPページは、別のツールからチャットへデータをコピーしていると気づいたときがMCPサーバーをつなぐ合図だと説明している。接続後のClaudeは、貼り付けられた内容ではなく、そのシステムを直接読んで操作できる。

Notion側でどんな操作ツールが使えるかは、この記事では扱わない。接続後に /mcp でサーバーを選ぶとツール一覧が表示されるので、そこで確かめる。

NotionのMCPサーバーはどのコマンドで登録するのか

登録は1行で済む。公式のMCPページはリモートのMCPサーバーにはHTTPトランスポートを推奨しており、Notionの例もHTTPで書かれている。

claude mcp add --transport http notion https://mcp.notion.com/mcp

notion の部分はClaude Code内でのサーバー名で、後述する権限ルールの名前にもこの文字列が使われる。成功すると Added ... で始まる行が表示される。

何も指定しないと登録先は local スコープになり、~/.claude.json の中にそのプロジェクトのパスの下で保存される。登録したプロジェクト(Gitリポジトリならリポジトリのルート単位)以外では、Notionは出てこない。登録スコープは次の3種類だ。

スコープ 読み込まれる範囲 チームとの共有 保存先
local(既定) 現在のプロジェクトのみ しない ~/.claude.json
project 現在のプロジェクトのみ バージョン管理で共有 プロジェクト直下の .mcp.json
user 自分のすべてのプロジェクト しない ~/.claude.json

どのリポジトリでもNotionを参照したい個人利用なら、コマンドに --scope user を付けて登録すると、プロジェクトごとに登録し直す手間がなくなる。チーム全員に同じ設定を配りたい場合は --scope project で .mcp.json に書き、リポジトリにコミットする。project スコープのサーバーは、対話セッションで使う前に承認を求められる。承認の選択をやり直したいときは claude mcp reset-project-choices を実行する。

OAuth認証はどこで、どう済ませるのか

公式のMCPクイックスタートは、Sentry、Linear、NotionのようなホスティングされたサービスはMCPサーバーをOAuthの背後で動かしていると説明している。URLを登録したあと、ブラウザでサインインする手順が必要になるということだ。

サインインして接続を承認すると、ClaudeはこのサーバーをとおしてNotionの内容を直接読んで操作できるようになる。公式ドキュメントは接続前に各サーバーを信頼できるか確認するよう警告しているので、承認の前に claude mcp get notion で登録したURLを表示し、公式の例と同じ https://mcp.notion.com/mcp であることを確かめる。Notionのページへの書き込みを毎回確認させたい場合は、後述の節にある ask ルールを承認より前に settings.json へ入れておくと、接続した直後から確認が出る。

登録直後に claude mcp list を実行すると、notion の横に ! Needs authentication と出る。これは失敗ではなく、まだサインインしていないという想定どおりの表示だ。続けてClaude Codeを起動し、次のコマンドでMCPパネルを開く。

/mcp

一覧から notion を選んでEnterを押し、Authenticate を選ぶ。ブラウザでNotionのサインイン画面が開くので、表示された内容を確かめてから接続を承認する。Claude Codeに戻ると、サーバーの接続状態が接続済みに変わる。

シェルから済ませたい場合は claude mcp login notion でも同じOAuthの流れを実行できる(公式の書式は claude mcp login <name>)。このコマンドはSSHセッションなどローカルのブラウザがない環境を検出すると認証用のURLを表示するので、手元のブラウザで開き、アドレスバーに出たリダイレクト先のURL全体を貼り戻す。

認証まわりで知っておくと困らない点は次のとおり。

  • 認証トークンは安全に保存され、自動で更新される
  • ブラウザが自動で開かないときは、表示されたURLをコピーして手で開く
  • 認証後にブラウザのリダイレクトが接続エラーになったときは、アドレスバーのコールバックURL全体を、Claude Codeに表示される入力欄へ貼り付ける
  • claude -p で動かす非対話の実行には /mcp パネルがないため、OAuthはその場では実行できない。先に対話セッションの /mcp か claude mcp login notion でサインインを済ませておく

接続できたかはどう確認するのか

確認と管理に使うコマンドは公式のMCPページにまとまっている。最後の remove は登録と保存済みのOAuthトークンを消すので、一時的に止めたいだけなら後述の /mcp パネルでのオフ切り替えを使う。

claude mcp list
claude mcp get notion
claude mcp remove notion

claude mcp list は登録済みサーバーごとに ✔ Connected、! Needs authentication、✘ Failed to connect のような状態を表示する。claude mcp get notion はnotionの詳細を表示し、接続に失敗している場合は Issue: の行にHTTPステータスやエラーコード、サーバーが返したエラー文が出る。

✔ Connected になったら、Notionの内容が必要な依頼を出してみる。出力のツール呼び出しに notion というサーバー名が付いていれば、Notion経由で動いている。

設定は残したまま一時的に止めたいだけなら、/mcp パネルでサーバーをオフに切り替えればよい。連携をやめるときは claude mcp remove notion を実行する。リモートのサーバーを削除すると、Claude Codeはそのサーバー用に保存したOAuthトークンとクライアント登録も合わせて削除する。

claude.aiのNotionコネクタとはどう使い分けるのか

公式のMCPページによれば、claude.aiのアカウントでClaude Codeにログインしている場合、claude.aiで追加したMCPサーバー(コネクタ)は自動でClaude Codeからも使える。コネクタの追加は claude.ai/customize/connectors で行い、必要な認証もclaude.aiで済ませる。Claude Codeの /mcp では、claude.ai由来であることを示す表示付きで並ぶ。TeamプランとEnterpriseプランでは、コネクタを追加できるのは管理者だけだ。

比較点 claude mcp add で登録 claude.aiのコネクタ
追加する場所 ターミナル claude.ai/customize/connectors
認証する場所 Claude Codeの /mcp または claude mcp login claude.ai
読み込まれる範囲 登録時のスコープで決まる /mcp で現在のプロジェクトだけオンオフできる
同じURLを両方に設定したとき こちらが優先される hidden として表示される

注意したいのは、コネクタが読み込まれる条件だ。公式ドキュメントによれば、claude.aiのコネクタを取得するのは有効な認証方式がclaude.aiのサブスクリプションログインのときだけで、ANTHROPIC_API_KEY、ANTHROPIC_AUTH_TOKEN、apiKeyHelper のどれかが有効だと読み込まれない。claude.aiでNotionを追加したのに /mcp に出てこないときは、/status で今の認証方式を確かめ、該当する環境変数や設定を外してから /login でclaude.aiアカウントを選び直す。APIキーまわりはClaude CodeのAPIキー解説記事で扱っている。

同じURLを両方に設定すると、/mcp にはコネクタが hidden と表示され、重複の外し方も案内される。どちらか一方に寄せておくと、どちらのNotionにつながっているのか迷わずに済む。

Notionへの書き込みを毎回確認させるにはどう設定するのか

仕様や議事録など、上書きされたくないNotionのページを扱う場合は、書き込みの前に確認を挟むとよい。公式の権限ページのとおり、Claude Codeでは、MCPのツールにも通常のツールと同じ権限ルールを書ける。ルールは3種類で、allow は確認なしで実行、ask は使うたびに確認、deny は使用を禁止する。

MCPツールの名前は mcp__<server>__<tool> の形になる。サーバー名を notion で登録した場合、Notionの全ツールは mcp__notion__* で、1つのツールは mcp__notion__ の後ろに /mcp で確認したツール名を付けた形で指定できる。claude.aiのコネクタ経由の場合は mcp__claude_ai_<server>__<tool> の形になるので、/mcp に表示される名前を見て書く。

慎重に始めるなら、settings.json の permissions の ask に mcp__notion__* を入れておくと、Notionのツールが呼ばれるたびに確認が出る。注意点は評価の順番で、ルールは deny、ask、allow の順に見られ、一致する ask があれば、より具体的な allow が同時に一致しても確認が出る。読み取りだけは確認なしで通したくなったら、全体を ask で囲う書き方をやめ、/mcp のツール一覧で書き込み確認の対象となるツール名を確かめて、それらを個別に ask に入れる形に組み替える。

今どのルールが効いているかは /permissions で確認できる。この画面は、各ルールとそのルールがどの settings.json から来ているかを一覧で表示する。権限モードとの関係は権限モードの解説記事、設定ファイルの置き場所はsettings.jsonの解説記事にまとめた。

セキュリティ面で最初に押さえることは何か

公式ドキュメントは、接続前に各サーバーを信頼できるか確認するよう警告している。外部のコンテンツを取得するサーバーは、プロンプトインジェクションの危険にさらされうるからだ。公式のセキュリティページは、AnthropicはMCPサーバーのセキュリティ監査や管理はしていないとも明記している。

個人で今日からできる対策は3つある。サインイン時の承認画面で何を許可するのかを確かめてから承認すること、前の節の ask ルールで書き込みを人の確認に通すこと、使わなくなったら /mcp の Clear authentication でアクセスを取り消すか、claude mcp remove notion で登録と保存済みのOAuthトークンを削除することだ。リスクの全体像は個人向けセキュリティリスクの記事で整理している。

つながらないとき、何から確かめればよいか

まず claude mcp list で状態を見る。表示ごとの切り分けは、公式のMCPクイックスタートのトラブル対処に沿うと次のとおり。

表示・症状 意味 次に確かめること
! Needs authentication サーバーが401か403を返した(未サインインなど) /mcp で notion を選び Authenticate。リフレッシュトークンが拒否されたと通知されたら Re-authenticate
✘ Failed to connect / Connection error サーバーが起動していないか、URLが応答しない claude mcp get notion の Issue: 行を読む
MCP endpoint not found at <origin>... サーバーが404を返した claude mcp get notion で設定したURL全体を確認して公式のエンドポイントのパスと比べ、remove してから正しいURLで登録し直す
/mcp に No MCP servers configured 今のフォルダにサーバーが見つからない 別のプロジェクトで local 登録していないか。--scope user で登録し直す
MCP server notion already exists in local config 同じ名前・同じスコープで登録済み claude mcp remove notion で消すか、別の名前で登録する
起動時にタイムアウト 既定30秒の起動待ちを超えた 環境変数 MCP_TIMEOUT をミリ秒で指定して延ばす

URLに届いているかを確かめたいときは、公式ドキュメントが示す curl -I にNotionのMCP URLを渡して実行する。404か405が返ればサーバーは動いている(MCPのエンドポイントにはPOSTしか受け付けないものが多いため)。401か403ならサーバーは動いていて認証が必要、何も返らなければURLとネットワークを疑う。

ログインそのものができない、ネットワークエラーが続くといったNotion以外の原因はエラー対処法の記事から切り分けてほしい。

公式の記述が変わったときに見直すところ

この記事は、2026年10月19日に照合したClaude Code公式ドキュメント(MCP、MCPクイックスタート、権限、設定リファレンス、セキュリティの各ページ)に基づく。手順どおりに進まないときは、NotionのMCPサーバーのURL、claude.aiコネクタが読み込まれる条件、状態表示の文言の3点から公式ページと見比べるとよい。Notion側の操作ツール名やサインイン時の許可範囲の仕様は、この記事では扱っていない。

Obsidianとつなぐ場合はObsidian連携の記事を参照してほしい。