Claude Codeは、Model Context Protocol(MCP)という仕組みを使うことで、GitHubのIssueやPostgreSQLのデータベース、Notionのページといった外部ツールに直接つないで作業できる。結論から言うと、接続方法はHTTP・SSE・stdio・WebSocketの4種類があり、設定を保存する範囲(スコープ)はローカル・プロジェクト・ユーザーの3種類から選べる。この記事は公式ドキュメント(docs.claude.com)の内容にもとづき、実務でMCPを導入する際に押さえておきたい手順とセキュリティ上の注意点を整理する。
MCPはClaude Code専用の仕組みではなく、AIツールと外部システムをつなぐ共通規格として使われはじめている。Claude自体の基本的な使い方はClaudeの使い方ガイドで、Claude Codeそのものの操作はClaude Codeの使い方を初心者向けに解説した記事で扱っている。中小企業の担当者がSNS運用や業務効率化のためにAIツールを組み合わせて使う場面でも、接続の考え方を理解しておくと選択を誤りにくい。エンジニアがいない小規模なチームであっても、既に使っているクラウドサービスがMCPサーバーを提供していれば、追加の開発をせずにClaude Codeから直接そのサービスへ問い合わせられるようになる点は押さえておきたい。
MCP(Model Context Protocol)とは何か
MCPとは、AIアシスタントが外部のツールやデータベース、APIにアクセスするためのオープンな標準規格のことである。
公式ドキュメントによると、Claude CodeはMCPを通じて数百の外部ツールやデータソースに接続できるとされている。MCPサーバーをひとつ接続すれば、Claudeはそのツールやデータベース、APIに直接アクセスできるようになる。従来はIssueトラッカーや監視ダッシュボードの内容をコピーしてチャットに貼り付ける必要があったが、MCPサーバーを接続すれば、Claudeがそのシステムを直接読み取って操作できるようになる。詳細な設定方法は公式リファレンスのConnect Claude Code to tools via MCPで確認できる。MCPという規格自体の一次情報はModel Context Protocol公式サイトで公開されている。
Claude CodeでMCPを使うとできること
MCP経由でできることとは、外部システムの情報を読み取って要約させる、外部システムに対して直接操作を指示する、という2種類の使い方に大別できる。
公式ドキュメントは具体例として、Issueトラッカーに書かれた機能要望をもとにコードを実装してGitHubにプルリクエストを作る、監視ツールのデータを確認して不具合の影響範囲を調べる、社内のデータベースに問い合わせて対象ユーザーを抽出する、といった使い方を挙げている。さらに、Figmaで更新されたデザインをもとにメールテンプレートを直す、複数人にフィードバック依頼のメール下書きを作る、といった横断的な作業の例も示されている。加えて、MCPサーバー自体が外部からのイベント(チャットの新着メッセージやWebhookなど)をClaude Codeのセッションに送り込む「チャネル」としても機能する設計になっており、自分から質問しなくても外部で起きた出来事をきっかけにClaudeが動き出すという使い方も想定されている。これらはいずれも公式ドキュメントが挙げている例であり、実際に得られる効果は接続するサーバーや業務内容によって変わる。自分で使うMCPサーバーを探したい場合は、Anthropic Directory(claude.ai/directory)で審査済みのコネクタを閲覧でき、そこに掲載されているリモートサーバーはclaude mcp addコマンドでそのまま追加できるようになっている。AIエージェント全般の考え方はAIエージェントとは何かを解説した記事で整理している。ドキュメントをまとめて読み込ませたい場合はClaudeのプロジェクト機能の使い方もあわせて参考になる。
MCPサーバーを追加する4つの方法
MCPサーバーの追加方法とは、Claude Codeがサーバーとどう通信するかを決める転送方式(トランスポート)の指定のことである。
公式ドキュメントには4種類のトランスポートが記載されている。クラウド上のリモートサービスに接続する場合は、もっとも幅広く対応しているHTTPが推奨されている。SSE(Server-Sent Events)は非推奨とされており、HTTPに対応していない一部のサービスでのみ使う位置づけになっている。ローカルで動くプロセスに接続する場合はstdioを使い、サーバー側からイベントを継続的に送ってくる用途にはWebSocketを使う。WebSocketはOAuth認証や--transportオプションには対応していない点に注意が必要である。開発者向けの詳しい使い方はClaude Codeの使い方を開発者向けに解説した記事で扱っている。
| 方式 | 主な用途 | 特徴 | コマンド例 |
|---|---|---|---|
| HTTP | クラウド上のリモートサービス | 公式ドキュメントが推奨。もっとも幅広く対応する転送方式 | claude mcp add –transport http notion https://mcp.notion.com/mcp |
| SSE | HTTP未対応の一部リモートサービス | 非推奨(deprecated)。今後はHTTPへの移行が案内されている | claude mcp add –transport sse asana https://mcp.asana.com/sse |
| stdio | ローカルで動くプロセス | システムへの直接アクセスやカスタムスクリプト向き | claude mcp add –env AIRTABLE_API_KEY=YOUR_KEY –transport stdio airtable — npx -y airtable-mcp-server |
| WebSocket | 常時接続でイベントを送ってくるサーバー | 双方向の持続接続。OAuthや–transportフラグには非対応 | claude mcp add-json events-server ‘{“type”:”ws”,”url”:”wss://mcp.example.com/socket”}’ |
3つの設定スコープ(ローカル・プロジェクト・ユーザー)の使い分け
設定スコープとは、追加したMCPサーバーの情報をどの範囲・どこに保存するかを決める設定のことである。
公式ドキュメントによると、MCPサーバーは3つのスコープのいずれかで管理される。既定はローカルスコープで、追加したプロジェクトだけで有効になり、自分専用として~/.claude.jsonに保存される。プロジェクトスコープはプロジェクト直下の.mcp.jsonに保存され、このファイルをバージョン管理に含めればチーム全員が同じMCPサーバー設定を使える。ユーザースコープは自分が使うすべてのプロジェクトで有効になるが、他の人とは共有されない。プロジェクトスコープの.mcp.jsonから読み込まれるサーバーは、対話セッションで初回に承認を求められる仕組みになっており、リポジトリを共有しただけで無条件に実行されるわけではない。個人の実験用サーバーはローカルスコープ、チーム共通のツールはプロジェクトスコープ、自分がいつも使う汎用サーバーはユーザースコープ、というように用途で分けて考えると管理しやすい。スコープごとの挙動は公式リファレンスのMCP installation scopesの項に一覧で載っている。
| スコープ | 読み込まれる範囲 | チーム共有 | 保存先 |
|---|---|---|---|
| ローカル(既定) | 追加したプロジェクトのみ | されない(自分専用) | ~/.claude.json |
| プロジェクト | 追加したプロジェクトのみ | される(.mcp.jsonをバージョン管理) | プロジェクト直下の.mcp.json |
| ユーザー | 自分の全プロジェクト | されない(自分専用) | ~/.claude.json |
同じ名前のサーバーが複数のスコープにあるときの優先順位
優先順位とは、同じ名前のMCPサーバーがローカル・プロジェクト・ユーザーなど複数の場所で定義されていたときに、どの定義を使うかを決める規則のことである。
公式ドキュメントによると、同じ名前のサーバーが複数の場所で定義されている場合、Claude Codeはひとつだけを選んで接続し、複数の定義を足し合わせることはしない。優先順位は、ローカルスコープがもっとも高く、次いでプロジェクトスコープ、ユーザースコープ、プラグインが提供するサーバー、claude.aiのコネクタという順に並んでいる。さらに、組織が管理設定(managedMcpServers)を通じて配布するサーバーは、これらすべてより優先される。個人の検証用にローカルスコープで一時的に上書きしたい場合や、組織として特定のサーバーの接続先を固定したい場合は、この優先順位を踏まえて設定する必要がある。
GitHubと連携する手順(実務での使用例)
GitHub連携とは、GitHubが提供するリモートMCPサーバーにアクセストークンを渡して接続し、Issueやプルリクエストを直接操作できるようにする設定のことである。
公式ドキュメントの例では、GitHubの個人アクセストークン設定ページでリポジトリへのアクセス権を持つトークンを発行し、claude mcp add --transport http github https://api.githubcopilot.com/mcp/ --header "Authorization: Bearer YOUR_GITHUB_PAT"のようにヘッダー付きでサーバーを追加すると案内されている。追加コマンドは設定を保存するだけで認証情報を検証しないため、実際に接続できているかは/mcpコマンドで「connected」と表示されるかを確認する必要がある。トークンが誤っていれば「failed」と表示され、GitHub側が返したHTTPステータス(401など)が失敗の詳細として表示される。接続後は「プルリクエスト456番をレビューして改善点を提案して」「見つかった不具合の新しいIssueを作って」といった自然文で指示できることが例として示されている。コードレビューでの具体的な活用法はClaudeコードレビューの使い方で紹介している。
社内データベースに安全につなぐ手順
データベース連携とは、MCPサーバー経由でClaude Codeにデータベースへの問い合わせを行わせる設定のことである。
公式ドキュメントは、PostgreSQLに接続する例として、DBHub(@bytebase/dbhub)というstdio方式のMCPサーバーを挙げている。接続文字列は--dsnで渡し、claude mcp add --transport stdio db -- npx -y @bytebase/dbhub --dsn "postgresql://readonly:pass@prod.db.com:5432/analytics"のように指定する。ここで使われている接続文字列が読み取り専用ユーザー(readonly)になっている点が、公式ドキュメントの例における重要なポイントである。読み取り専用のデータベースユーザーを使えば、Claudeが実行する問い合わせによって本番データが書き換わる心配を減らせる。接続後は「今月の売上合計を教えて」「ordersテーブルのスキーマを見せて」のような問い合わせが例として示されている。プロジェクト全体の管理という観点ではClaudeプロジェクト管理術の記事も参考になる。
認証が必要なMCPサーバーへのOAuth接続
OAuth接続とは、クラウド型のMCPサーバーに対してブラウザ経由でログインし、Claude Codeにアクセスを許可する認証の仕組みのことである。
公式ドキュメントによると、Claude CodeはOAuth 2.0による認証に対応している。サーバーを追加したあとにセッション内で/mcpコマンドを実行するとブラウザでのログイン手順が案内され、認証が完了するとトークンは安全に保存され、以降は自動的に更新される。バージョンv2.1.186以降では、セッションを開かなくてもclaude mcp login <name>というコマンドをシェルから直接実行してOAuth認証を行えるようになっている。認証をやり直したい場合は、/mcpメニューの「Clear authentication」でその場でトークンを失効させられる。サーバーを削除した場合も、保存されていたOAuthトークンとクライアント登録情報はあわせて削除される。認証まわりの挙動は公式リファレンスのAuthenticate with remote MCP serversの項に詳しい。
環境変数を使ってAPIキーを安全に共有する
環境変数による設定共有とは、.mcp.jsonにAPIキーなどの値を直接書き込まず、${VAR}という参照だけを保存しておく方法のことである。
公式ドキュメントによると、.mcp.jsonでは${VAR}という書き方で環境変数の値を展開でき、${VAR:-default}と書けば変数が未設定のときの初期値も指定できる。この仕組みを使えば、チームで.mcp.jsonを共有しても、実際のAPIキーやパスは各自の環境変数から読み込まれるため、キーそのものをリポジトリに書き込まずに済む。さらに、ANTHROPIC_API_KEYやANTHROPIC_AUTH_TOKENといったClaude Code自身の認証情報、AWS_BEARER_TOKEN_BEDROCKのようなクラウド事業者の認証情報については、リモートサーバーのurlやheadersの中で参照しても値が展開されず空文字として扱われる仕様になっている。これは、.mcp.jsonやプラグインの設定を通じて、意図せず自分の認証情報が接続先のMCPサーバーへ送られてしまう事態を防ぐための仕組みである。
追加したMCPサーバーの状態を確認・管理するコマンド
状態確認とは、追加したMCPサーバーが実際に接続できているかどうかをコマンドで調べる作業のことである。
公式ドキュメントには、設定済みのサーバー一覧を表示するclaude mcp list、特定のサーバーの詳細を見るclaude mcp get <name>、サーバーを削除するclaude mcp remove <name>、セッション内でステータスを確認する/mcpという操作が案内されている。表示されるステータスには、正常に接続できている「Connected」、認証が必要な「Needs authentication」、接続に失敗した「Failed to connect」、プロジェクトスコープのサーバーでまだ承認していない「Pending approval」、一時的に無効化されている「Disabled for this project」がある。設定自体は残したまま接続だけを止めたい場合は、/mcpパネルでサーバーをオフに切り替えれば、設定情報を消さずに接続を止められる。プロジェクトスコープのサーバーが「Pending approval」のまま残っている場合は、claudeコマンドを対話的に起動して承認するか、承認状態そのものをやり直したいときはclaude mcp reset-project-choicesを使う。一度接続したことのあるリモートサーバーは、次回の起動時に前回の接続情報をもとにした「cached」という状態で表示されることがあり、この場合はClaudeが実際にそのサーバーのツールを呼び出した時点であらためて接続が行われる。
中小企業が気をつけたいセキュリティ上の注意点
セキュリティ上の注意点とは、MCPサーバーを接続する前に確認しておくべき信頼性とアクセス範囲の管理のことである。
公式ドキュメントは、外部コンテンツを取得するタイプのMCPサーバーはプロンプトインジェクションのリスクにつながる可能性があるとして、接続するサーバーを信頼できるかどうかを事前に確認するよう注意を促している。プロジェクトスコープの.mcp.jsonから読み込まれるサーバーについては、対話セッションで使用前に承認を求める仕組みになっており、リポジトリを共有された相手が気づかないうちに未知のサーバーへ接続してしまう事態を防ぐ設計になっている。データベースやAPIキーを扱うサーバーを接続する際は、前述のとおり読み取り専用の認証情報を使う、認証情報をバージョン管理に含めずローカルスコープで管理する、といった運用が公式ドキュメントの例からも読み取れる。このほか、設定ファイルの値に見えないタブや改行が紛れ込んでいる場合や、Claude Code組み込みのサーバーと同じ名前を使おうとした場合には、claude mcp listや/mcpの画面に警告が表示される仕組みも用意されており、コピーしてきた設定をそのまま使う際の事故に気づきやすくなっている。生成AIの情報漏えい対策の基本は生成AIの情報漏えい対策の記事にまとめている。
導入を始める前に確認したい社内ルール
社内ルールの整備とは、誰がどのMCPサーバーをどの権限で接続してよいかを、導入前に決めておく運用のことである。
MCPサーバーは一度接続すると、対象のツールやデータベースに直接アクセスできるようになるため、業務で使う前に社内での承認フローを決めておくと運用しやすい。仮の例として、(1)接続したいサービス名と用途を申請する、(2)本番データにつなぐ場合は読み取り専用の認証情報を用意する、(3)プロジェクトスコープで共有する設定は社内レビューを経てから.mcp.jsonをバージョン管理に含める、(4)使わなくなったサーバーはclaude mcp removeで削除し認証情報も失効させる、という4段階のチェックリストを社内で回覧してから導入する運用が考えられる。生成AIの業務活用にあたって確認すべき項目全般はAI事業者ガイドラインの記事もあわせて参照するとよい。Notion自体の活用法はNotion AIの使い方の記事で紹介している。
よくある質問(FAQ)
- Q1. MCPサーバーは誰が追加してもよいのか
- ローカルスコープであれば追加した本人だけの環境で完結するため、個人の検証用途では影響範囲が限られる。ただしプロジェクトスコープで
.mcp.jsonをチームに共有する場合は、接続先のサービスやアクセス範囲を確認したうえで追加することが、公式ドキュメントが案内する承認フローの前提になっている。 - Q2. HTTPとstdioはどちらを選べばよいか
- クラウド上のサービスに接続する場合は、公式ドキュメントが推奨するHTTPを使う。手元のパソコンで動くツールやスクリプトに接続する場合はstdioを使う、という使い分けが基本になる。
- Q3. 信頼できないMCPサーバーを追加するとどうなるのか
- 外部コンテンツを取得するサーバーは、プロンプトインジェクションのリスクにつながる可能性があると公式ドキュメントが注意を促している。接続前にそのサーバーの提供元や取得する情報の範囲を確認することが推奨されている。特に、設定ファイルをインターネット上からそのままコピーして使う場合は、記載されているコマンドや接続先が想定どおりの内容かを一度読んでから追加すると安心である。
- Q4. チームで同じMCPサーバー設定を共有するにはどうすればよいか
- プロジェクトスコープでサーバーを追加すると、プロジェクト直下の
.mcp.jsonに設定が書き込まれる。このファイルをバージョン管理に含めれば、チームの全員が同じMCPサーバー構成を使える。ただし接続先にAPIキーが必要な場合は、キーの値自体を書き込まず${VAR}形式の環境変数参照にしておくと、リポジトリに認証情報が残らずに済む。 - Q5. 追加したMCPサーバーが実際に動いているか確認する方法は
- セッション内で
/mcpコマンドを実行するか、シェルからclaude mcp listを実行すると、サーバーごとに「Connected」や「Failed to connect」といった状態が表示される。 - Q6. 認証が必要なサーバーに接続できないときはどうすればよいか
- まず
/mcpを開いて該当サーバーの状態を確認し、認証が必要な状態であれば案内に沿ってブラウザでログインする。ログインし直しても失敗する場合は「Clear authentication」で認証情報を一度リセットしてから再度ログインする方法が公式ドキュメントで案内されている。
まとめ
Claude CodeのMCP連携は、HTTP・SSE・stdio・WebSocketという4つの接続方式と、ローカル・プロジェクト・ユーザーという3つのスコープを理解しておけば、外部ツールやデータベースとの接続を段階的に広げていける仕組みである。GitHubやデータベースへの接続例からもわかるとおり、読み取り専用の認証情報を使う、プロジェクトスコープの設定は承認を経てから共有する、といった基本を押さえることが、業務での安全な活用につながる。まずはローカルスコープで小さく試し、チームで使う価値が確認できた段階でプロジェクトスコープへ広げていくという進め方が、公式ドキュメントが示す設計とも合っている。接続先が増えるほど管理する認証情報も増えるため、claude mcp listで今どのサーバーが有効になっているかを定期的に見直す習慣をあわせて持っておくと、使わなくなったサーバーや期限切れのトークンを放置してしまう事態を防ぎやすい。
