9-1 Claude Code の MCP とは|外部ツール連携の仕組みを理解する
MCP(Model Context Protocol)は AI と外部ツールをつなぐ共通規格。なぜ必要なのか、何ができるのか、claude mcp add での追加方法とセキュリティの基本姿勢まで、非エンジニア向けにやさしく解説します。
このレッスンでわかること
ここまでのレッスンで、Claude Code が手元のファイルを読み書きしたり、資料を作ったりできることを学んできました。ただ、実際の仕事で使い始めると、こんな場面にぶつかります。
「議事録は Notion にある」「最新の売上データは Google Drive のスプレッドシートにある」「タスクは GitHub で管理している」——つまり、仕事に必要な情報の多くはパソコンの中ではなく、クラウド上のツールの中にあるのです。
この章で学ぶ MCP(Model Context Protocol) は、その壁を越えるための仕組みです。このレッスンでは、次の3つを身につけます。
- MCP とは何か、なぜ必要なのか
- MCP で何ができるようになるのか(具体例)
- 接続方式の型(ローカル型/リモート型、OAuth/APIキー)と、事前に用意するもの
- MCP サーバーを追加する方法と、安全に使うための基本姿勢
専門用語は最小限に絞ります。「Claude Code に新しい手足を生やす仕組み」というイメージで読み進めてください。
MCP とは:AIの「手」を増やすUSBポートのような共通規格
MCP(Model Context Protocol)は、AI と外部のツール・データソースをつなぐためのオープンな共通規格です。Anthropic が公開し、現在では多くの企業・開発者が対応ツールを提供しています。
たとえ話で説明しましょう。パソコンには USB ポートがあります。マウスでもキーボードでも外付けディスクでも、USB という共通規格に対応してさえいれば、差し込むだけで使えます。メーカーごとに専用ポートを用意する必要はありません。
MCP はこれの AI 版です。
- パソコン本体 にあたるのが Claude Code
- USBポート にあたるのが MCP という共通規格
- USB機器(マウスやキーボード) にあたるのが「MCP サーバー」と呼ばれる接続部品
Notion、Google Drive、GitHub、Slack など、各社がそれぞれの MCP サーバーを提供しています。Claude Code にそれらを「差し込む」と、Claude Code が Notion のページを読んだり、Slack のメッセージを検索したりできるようになるのです。
ひとつ注意したいのが「サーバー」という言葉です。ここでの MCP サーバーは、大きな機械やデータセンターのことではありません。「Claude Code と外部ツールの間に立つ通訳プログラム」程度の意味で、多くは自分のパソコンの中で静かに動く小さなプログラムです。身構える必要はありません。
なぜ MCP が必要なのか:コピペ往復からの解放
MCP がない状態で「Notion の議事録を要約したい」と思ったら、作業はこうなります。
- ブラウザで Notion を開く
- 議事録のページを探して開く
- 本文をコピーする
- Claude Code に貼り付けて「要約して」と頼む
- できた要約をコピーして、また Notion に貼り付ける
AI を使っているのに、人間が「運び屋」をやっている状態です。ページが10件あれば、この往復を10回繰り返すことになります。
MCP で Notion をつないでいれば、指示は1行で済みます。
Notion にある今週の議事録を全部読んで、決定事項だけを一覧にまとめてください。
探す・開く・コピーする・貼り付ける、という人間の手作業がすべて消えます。これが MCP の本質的な価値です。AI に「目」と「手」を与えて、人間はコピペ係から指示役に戻る——そう捉えてください。
MCP でできることの例
代表的な MCP サーバーと、できることの例を挙げます。
| つなぐツール | できることの例 |
|---|---|
| Notion | ページの検索・読み取り、議事録の要約、新しいページの作成 |
| Google Drive | ファイルの検索、ドキュメントやスプレッドシートの内容の読み取り |
| GitHub | Issue(タスク)の確認・作成、変更内容(PR)の確認 |
| Slack | メッセージの検索、長いスレッドの要約 |
| データベース | 「先月の売上は?」のような質問でデータを照会 |
ポイントは、これらを 組み合わせられる ことです。たとえば「Slack の議論を要約して、Notion に議事録ページとして保存する」のように、複数のツールをまたいだ作業を1回の指示で頼めるようになります。具体的な活用例は、次の 9-2・9-3 のレッスンで詳しく扱います。
接続方式を理解する:2つの「型」と2つの「認証」
MCP サーバーの追加でつまずく人の多くは、コマンドの書き方ではなく「そのサーバーがどういう型なのか」を把握していないことが原因です。逆に型さえ分かれば、事前に何を用意すればよいかが決まります。
覚えることは2つだけです。サーバーがどこで動くかと、どうやって本人確認するかです。
型その1:サーバーがどこで動くか
ローカル型(stdio) は、自分のパソコンの中で MCP サーバーのプログラムが起動する方式です。プリンターを USB ケーブルで直接つなぐイメージに近いものです。npx(Node.js に付属する、プログラムを取り寄せて実行するコマンド)や Docker で起動するものが多く、その前提ソフトを自分のパソコンに入れておく必要があります。「stdio」は「標準入出力」という技術用語の略ですが、ここでは「自分のPCの中で動くほう」と覚えれば十分です。
リモート型(HTTP) は、提供元があらかじめ用意しているサーバーに、URL を指定して接続する方式です。自分のパソコンでは何も動きません。ブラウザで Web サイトを開くのに近く、URL さえ分かれば始められます。
いまはリモート型が主流で、Claude Code でもこちらが推奨されています。このレッスンの後半で実際に試す claude-code-docs も、リモート型です。
少し古い資料には SSE という3つ目の方式が出てくることがあります。これはリモート型の旧方式で、現在は非推奨となり HTTP へ統一が進んでいます。これから新しくつなぐときに SSE を選ぶ理由はありません。
型その2:どうやって本人確認するか
OAuth(オーオース) は、ブラウザが開いて「Claude Code にアクセスを許可しますか?」と確認される方式です。Web サービスで「Google でログイン」を押すときと同じ体験だと考えてください。利用者が長い文字列を発行したり保管したりしなくてよいのが最大の利点で、いま主流の方式です。
APIキー・トークン は、サービスの管理画面で自分専用の長い文字列を発行し、それを Claude Code に渡す方式です。その文字列そのものが鍵になるので、渡し方と保管に気をつける必要があります(この節の最後で扱います)。
組み合わせで「事前に用意するもの」が決まる
型と認証の組み合わせで、準備の重さが変わります。
| 型 × 認証 | 事前に用意するもの | 追加したあとにやること | 難しさ |
|---|---|---|---|
| リモート型 × OAuth | 接続先の URL だけ | ブラウザで「許可」を押す | もっとも易しい |
| リモート型 × トークン | URL と、発行したトークン | トークンを接続情報に添えて渡す | やや易しい |
| ローカル型 × OAuth | Node.js や Docker などの前提ソフト | ブラウザで「許可」を押す | ふつう |
| ローカル型 × APIキー | 前提ソフトと、発行した APIキー | キーを環境変数として渡す | 重い |
つなぎたいサービスに選択肢があるなら、リモート型 × OAuth を選ぶのが基本です。用意するものが URL 1つで済みます。
コマンドは型によって変わる
claude mcp add の書き方は、型によって次のように変わります。どちらもターミナルに入力します。
# リモート型(HTTP):--transport http のあとに接続先の URL を書く
claude mcp add --transport http github https://api.githubcopilot.com/mcp/
# ローカル型(stdio):-- のあとに「サーバーを起動するコマンド」を書く
claude mcp add --transport stdio airtable \
--env AIRTABLE_API_KEY=YOUR_KEY \
-- npx -y airtable-mcp-server
見分け方はシンプルです。--(ハイフン2つ)より前が Claude Code への指示、後ろがサーバーを起動するコマンドです。リモート型は自分のPCで起動するものがないので、-- 以降がありません。
トークンを添えて渡す場合は、次のように書きます。
claude mcp add --transport http secure-api https://api.example.com/mcp \
--header "Authorization: Bearer your-token"
OAuth のサーバーなら、追加したあとに対話画面で /mcp と入力すればブラウザが開いて認証できます。ターミナルから claude mcp login <名前> と入力しても同じです。解除は claude mcp logout <名前> です。
どこまでの範囲で使えるようにするか(スコープ)
追加したサーバーを「どこで有効にするか」も選べます。これを スコープ と呼び、3種類あります。
| スコープ | 有効範囲 | 使いどころ |
|---|---|---|
local(既定) | いま作業しているプロジェクトだけ・自分だけ | まず試すとき |
project | いま作業しているプロジェクト・チーム全員 | チームで同じ構成を共有したいとき |
user | 自分のすべてのプロジェクト | どこでも使う定番サーバー |
claude mcp add --transport http --scope project shared-server https://example.com/mcp
ここが大事な点です。project スコープを選んだときに、設定が書き出される先が次の節で説明する .mcp.json です。つまり .mcp.json は「チーム共有用スコープの実体」だと理解してください。なお project スコープの .mcp.json を初めて読み込むときは、Claude Code から「このファイルを信頼してよいか」を確認するプロンプトが出ます。
APIキーを設定ファイルに直接書かない
.mcp.json はチームで共有し、Git で管理できるファイルです。ここに APIキーをそのまま書き込むと、鍵がチーム全員に配られ、しかも変更履歴に残り続けます。これは事故のもとです。
.mcp.json では ${変数名} という書き方で、環境変数(パソコン側にあらかじめ設定しておく値)を参照できます。
{
"mcpServers": {
"api-server": {
"type": "http",
"url": "${API_BASE_URL:-https://api.example.com}/mcp",
"headers": { "Authorization": "Bearer ${API_KEY}" }
}
}
}
${API_KEY} は「ここに環境変数 API_KEY の値を入れる」という意味です。${API_BASE_URL:-https://api.example.com} のように :- を挟むと、変数が設定されていないときに右側が既定値として使われます。ファイルに残るのは変数名だけなので、鍵そのものを共有せずに済みます。
そもそも OAuth で認証できるサーバーを選べば、鍵を発行することも保管することもありません。鍵の管理をしなくてよい選択肢があるなら、それを選ぶのがいちばん安全です。
MCP サーバーの追加方法:概要をつかむ
Claude Code に MCP サーバーを追加する方法は、大きく2つあります。
方法1:claude mcp add コマンドで追加する
ターミナルに入力します(Claude Code の対話画面ではありません)。次の形式です。
claude mcp add <名前> <サーバーの起動コマンドや接続先>
「どのサーバーを、何という名前で登録するか」を Claude Code に教えるコマンドです。前の節で見たとおり、<サーバーの起動コマンドや接続先> にあたる部分は、リモート型なら URL、ローカル型なら -- に続く起動コマンド になります。
方法2:設定ファイル(.mcp.json)に書く
プロジェクトのフォルダに .mcp.json という設定ファイルを置く方法もあります。この方法の利点は、チームで設定を共有できることです。ファイルをチームメンバーに渡せば、全員が同じ MCP 構成で作業できます。
追加できたかの確認
確認する場所が2つあります。混同しやすいので、分けて覚えてください。
ターミナルから確認する
登録済みの MCP サーバーの一覧です。ターミナルに入力します。
claude mcp list
対話画面から確認する
Claude Code を起動した状態で /mcp と対話画面に入力すると、接続状態の確認や認証(ログイン)の操作ができます。「追加したのに動かない」と感じたら、まずここで接続状態を見るのが定石です。
ここまでで、接続の「型」——ローカル型かリモート型か、OAuth かキーか、どのスコープで有効にするか——は一通り押さえました。残るのは サーバーごとの固有情報 だけです。具体的には、接続先の URL、必要な前提ソフト、トークンの発行場所、絞れる権限の範囲の4つで、これらは提供元ごとに違い、変化も早い部分です。つなぐ前に各サーバーの公式ページで最新の値を確認してください。型を知っていれば、公式ページのどこを読めばよいかが分かります。
実際に1つつないでみる
ここまでは仕組みの話でした。手を動かして1つつないでみましょう。
最初に試すサーバーとして、Anthropic 公式が「最初のテストに向いている」として案内している Claude Code のドキュメントサーバーを使います。理由は3つです。
- アカウント登録が要らない(サインアップも API キーも不要)
- 追加のソフトが要らない(Node.js のような前提ソフトなしで動く)
- つながったかどうかがはっきり分かる
追加する
ターミナルに入力します(Claude Code の対話画面ではありません)。
claude mcp add --transport http claude-code-docs https://code.claude.com/docs/mcp
--transport http は「インターネット越しに接続する形式です」という指定、
claude-code-docs は自分でつける名前、最後が接続先です。
つながったか確認する
同じくターミナルに入力します。
claude mcp list
claude-code-docs の行に ✔ Connected と表示されれば成功です。
✘ Failed to connect の場合は、URL の打ち間違いがないか確認してください。
実際に使ってみる
Claude Code を起動して、対話画面にこう頼みます。
claude-code-docs サーバーを使って、MCP_TIMEOUT という設定が
何をするものか調べて教えてください。
返答の中に「どのサーバーの、どの機能を使ったか」が表示されます。 これが「MCP 経由で答えた」という証拠です。組み込みの Web 検索ではなく、 つないだサーバーから直接ドキュメントを引いています。
片付ける
不要になったら削除できます。ターミナルに入力します。
claude mcp remove claude-code-docs
Removed MCP server "claude-code-docs" と表示されれば完了です。
追加も削除もこの2コマンドだけ、というのが MCP 運用の基本の型です。
もう一歩進めたい方へ。 ブラウザを操作できる Playwright というサーバーもアカウント不要で試せます (
claude mcp add playwright -- npx -y @playwright/mcp@latest)。 ただし Node.js 18 以降が別途必要で、初回はダウンロードに時間がかかり 一時的に✘ Failed to connectと出ることがあります。少し待ってからclaude mcp listを やり直してください。実際にブラウザの窓が開いて動くので、「AI に手が生えた」実感は こちらのほうが強いはずです。
**※ コマンドの形式は変わることがあります。**うまくいかないときは、公式ドキュメント (code.claude.com/docs)で最新の書き方を確認するか、エラーメッセージをそのまま 対話画面に貼って聞いてください。
セキュリティの基本姿勢:便利さと引き換えのリスクを知る
MCP は Claude Code に「手」を与える仕組みです。手が増えるということは、触れるものが増えるということでもあります。使い始める前に、次の3つの基本姿勢を必ず覚えてください。
1. 信頼できる提供元のサーバーだけを使う
MCP サーバーは誰でも作って公開できます。便利そうに見えても、出どころの分からないサーバーを安易に追加するのは危険です。USB メモリを「道に落ちていたから」と差し込まないのと同じです。公式提供のもの、または提供元がはっきりしているものだけを使いましょう。
2. 与える権限は最小にする
多くの MCP サーバーは、接続時に「どこまでの操作を許可するか」を選べます。読み取りだけで足りる用途なら、書き込みや削除の権限まで与える必要はありません。「とりあえず全部許可」は禁物です。まず読み取り専用で始めて、必要になったら広げる、が安全な順序です。
3. 扱うデータの重みを意識する
MCP で社内の Notion や Drive をつなぐと、Claude Code はそこにある情報を読めるようになります。顧客情報や機密情報を含むツールをつなぐ場合は、会社のルール(情報の社外サービス利用に関する規程など)を事前に確認してください。「自分の権限で見られるものを、AI にも見せてよいか」は別問題として考える必要があります。
発展:MCP の設定を掘り下げる
トランスポートの種類、.mcp.json の書き方、スコープの使い分けなど、
設定面を詳しく知りたい場合は Claude Code MCPガイド を参照してください。
やってみよう
演習1:自分の仕事の1日を振り返り、「あるツールから情報をコピーして、別の場所に貼り付けている作業」を3つ書き出してみましょう。それが MCP で自動化できる候補です。
演習2:本文の手順どおりに claude-code-docs サーバーを実際に追加し、次の3つを自分で確認しましょう。
claude mcp listに✔ Connectedと表示される- 対話画面で質問すると、返答にサーバー名が表示される(=MCP 経由で答えている)
claude mcp removeで削除でき、一覧から消える
追加 → 確認 → 削除を一度通しておくと、以降どのサーバーでも同じ手順が使えます。
演習3:演習1で挙げた候補のうち1つについて、つなぎたいツールの名前と「MCP」で検索し、公式の MCP サーバーが提供されているかを調べてみましょう(この段階ではまだ追加しなくて構いません)。
まとめ
- MCP は AI と外部ツール・データソースをつなぐオープンな共通規格。「AI 版の USB ポート」とイメージするとよい
- MCP がないと人間がコピペの運び屋になる。MCP をつなぐと、探す・コピーする・貼り付ける作業が消える
- Notion・Google Drive・GitHub・Slack など、各社の MCP サーバーが提供されている
- 接続方式は「自分のPCで動くローカル型(stdio)」と「提供元のサーバーに URL でつなぐリモート型(HTTP)」の2つ。いまはリモート型が主流で推奨、SSE は非推奨
- 認証は「ブラウザで許可する OAuth」と「自分で発行したキーを渡す方式」の2つ。選べるなら OAuth のほうが管理の手間もリスクも小さい
- 追加は
claude mcp addコマンドか設定ファイル(.mcp.json)。確認はclaude mcp listや/mcp、削除はclaude mcp remove - スコープは
local/project/userの3つ。projectスコープの実体が.mcp.jsonで、チーム共有はこれを使う .mcp.jsonに APIキーを直接書かない。${API_KEY}のように環境変数を参照させ、鍵そのものはファイルに残さない- アカウント不要のサーバーで一度「追加 → 確認 → 削除」を通しておけば、他のサーバーでも同じ手順が使える
- 型を押さえたうえで、URL・前提ソフト・トークンの発行場所・絞れる権限というサーバー固有の情報だけを公式ページで確認する
- セキュリティの基本は「信頼できる提供元のみ」「権限は最小から」「扱うデータの重みを意識する」の3つ
理解度チェック
Q1. MCP(Model Context Protocol)の説明として、もっとも適切なものはどれでしょう?
- Claude Code 専用の有料オプション機能
- AI と外部ツール・データソースをつなぐためのオープンな共通規格
- パソコンを高速化するためのハードウェア
- プログラミング言語の一種
解答を見る
正解: 2
MCP は AI と外部ツール・データソースをつなぐオープンな共通規格です。Claude Code 専用ではなく、規格に対応していればさまざまな AI ツール・外部サービスの間で使えます。USB ポートのように「共通の差し込み口」を定めたもの、とイメージしてください。
Q2. MCP サーバーを使い始めるときのセキュリティの姿勢として、適切なものはどれでしょう?
- 便利になるよう、最初からすべての権限を許可しておく
- 人気がありそうなサーバーなら、提供元を確認せずに追加してよい
- まず読み取り専用など最小の権限で始め、必要に応じて広げる
- 社内の機密データを含むツールも、自分が見られるなら無条件でつないでよい
解答を見る
正解: 3
権限は「最小から始めて必要に応じて広げる」が基本です。選択肢1の全権限許可や、選択肢2の提供元未確認での追加は危険です。選択肢4についても、自分に閲覧権限があることと、AI 経由でアクセスさせてよいことは別問題であり、会社のルールの確認が必要です。
Q3. 会社のプロジェクトで使う MCP サーバーの設定を、チーム全員で共有したいと考えています。適切な進め方はどれでしょう?
projectスコープで追加し、.mcp.jsonにはキーを直接書かず${API_KEY}のように環境変数を参照させるlocalスコープで追加し、自分の設定ファイルをメールで全員に送る.mcp.jsonに APIキーをそのまま書き込み、Git で共有する- 全員がそれぞれ別々の名前でサーバーを追加する
解答を見る
正解: 1
チーム共有には project スコープを使い、その実体である .mcp.json をリポジトリに置きます。ただしこのファイルは全員が読めて履歴も残るため、APIキーを直接書くと鍵が配布されたのと同じ状態になります。${API_KEY} の記法で環境変数を参照させれば、ファイルに残るのは変数名だけで済みます。そもそも OAuth で認証できるサーバーなら、鍵を発行する必要すらありません。