Claude Codeの仕組み講座(講師のためのエンジニア水準)

区分3 拡張の仕組み★★★

No.11 MCP(つなぐ約束事の中身)

MCP は、AIと外のサービスをつなぐ「共通の差し込み口の規格」です。受講生の「Slack や Notion とどうつながっているの」に、登場人物・つなぎ方・出せる物の3点で答えられるようになります。この単元はしっかりやります。数字は2026年10月時点の公式ドキュメントのものです。
目次
  1. 第0章 前提知識
  2. 第1章 つなぎ方は2種類
  3. 第2章 サーバーが出せる物は3つ
  4. 第3章 道具の説明は、コンテキストに入る
  5. 第4章 範囲と信頼
  6. 確認問題

第0章 前提知識

① MCP :外のサービスとつなぐ共通の規格

MCP は Model Context Protocol の略です。 「モデル(AI)に文脈や道具を渡すための、約束事」という意味です。

事務所で考えると分かりやすいです。 取引先が10社あって、会社ごとに連絡の方法がばらばらだと、担当者は大変です。 そこで「全社この形式のFAXで連絡する」と決めておけば、新しい取引先が増えても、担当者のやり方は変わりません。 MCP は、この「全社共通の連絡形式」にあたります。

② 登場人物は3つ 必ず覚える

MCP の公式の説明では、登場人物は3つです。

呼び名 何か 事務所のたとえ
ホスト AIアプリ本体。Claude Code など あなたの事務所
クライアント サーバーとの1対1の接続を持つ部品 取引先ごとの専用電話回線
サーバー 道具や資料を提供するプログラム 取引先の窓口

ホストは、サーバーの数だけクライアントを作ります。サーバー1つにつき、専用のクライアントが1つ付きます。

つまり、ホスト(Claude Code)が自分の中にクライアントという接続部品を持ち、その先に道具を出すサーバーがいます。事務所のたとえで「窓口」と呼ぶのは、サーバー側だけです。

ここで言う「サーバー」は、遠いコンピューターという意味ではありません。自分のMacで動くプログラムでも、MCPのサーバーと呼びます。

③ 言葉の整理

第1章 つなぎ方は2種類

① 運び方(トランスポート)が2つある 必ず覚える

MCP は、メッセージの中身(JSON-RPC)と、それを運ぶ方法を分けて決めています。運び方は、公式の仕様で2つです。

運び方 動く場所 向いている物
stdio(標準入出力) 自分のMacの中。Claude Code が起動する 自分のファイルや、手元のプログラム
Streamable HTTP ネット上のサーバー。URLでつなぐ Notion や Slack のような、クラウドのサービス

stdio は、Claude Code がサーバーのプログラムを自分で起動して、文字の入出力で話す方法です。ネットワークを通らないので速く、基本は1つのクライアントだけが使います。

HTTP は、離れたサーバーに文字を送る方法です。多くのクライアントが同じサーバーを使え、ログインの仕組みも使えます。このログインの仕組みが OAuth で、「パスワードを渡さずに、このアプリに自分のデータを触る許可だけを与える」ための標準の方式です。Claude Code では /mcp を開いて画面の案内に沿えば済みます。

古い方式の SSE もありますが、公式は非推奨にしています。

② 追加のしかた 必ず覚える

Claude Code では、ターミナルで claude mcp add というコマンドを使います。

claude mcp add --transport http 名前 https://example.com/mcp
claude mcp add --transport stdio 名前 -- npx -y サーバーのパッケージ名

-- は、「ここから後ろは、サーバーを起動する命令」という区切りです。区切りがないと、サーバー側の設定が Claude Code の設定と混ざります。

つないだあとは、会話の中で /mcp と打つと、状態を確かめられます。ログインが要るサービスは、ここで済ませます。

③ 動く間の注意 さらっと

公式で確かめた動きです。

細かい数字は版で変わります。「切れたら /mcp で確かめる」だけ覚えておけば足ります。

第2章 サーバーが出せる物は3つ

MCP のサーバーは、次の3種類を提供できます(公式の言葉では、プリミティブ)。3つを分ける理由は、誰が使うかが違うことです。

① 3種類と、使う人 必ず覚える

種類 何か 使う人 例
道具(tools) AIが呼び出す機能。書き込みや送信もできる AI が必要だと思った時 メッセージを送る、予定を作る
資料(resources) 読み取り専用の情報。URIという住所で呼ぶ アプリ が選んで文脈に入れる ファイルの中身、データベースの構造
決まり文句(prompts) あらかじめ作ってある依頼の雛形 人 が選んで呼ぶ 「会議を要約して」の雛形

ここまでが、MCP の仕様の説明です。あなたの環境で使っている Addness や freee の操作は、「道具」として入っています。

② 資料と決まり文句を Claude Code で使う さらっと

資料は、プロンプトに @ を打つと、ファイルと並んで候補に出ます。@サーバー名:住所 の形で指定します(公式の例:@github:issue://123)。指定した資料は自動で取り込まれ、会話に添付されます。

決まり文句は、/ を打つと /サーバー名:決まり文句名 (MCP) として並びます。/mcp__サーバー名__決まり文句名 と打っても動きます。引数が要る物は、空白で区切って後ろに足します(公式の例:/mcp__github__pr_review 456)。選ぶのは人なので、AIが勝手には呼びません。

講師が答えられるように、受講生の疑問は次の3点で返せば足ります。

③ 道具の呼び出しの中身 必ず覚える

道具の呼び出しは、2回のやり取りでできています。

  1. 一覧を聞く(tools/list):サーバーが、道具の名前・説明・引数の形を返す
  2. 呼ぶ(tools/call):名前と引数を送ると、結果が返る

一覧に載る1つの道具は、name(名前)・description(説明)・inputSchema(引数の形)でできています。inputSchema は JSONスキーマ、つまり「どんな値をどの欄に入れるか」を決めた書式の定義です。

AIが道具を使うと決めたら、ホストの中のクライアントがサーバーに tools/call を送り、結果をAIに返します。AIはサーバーと直接は話しません。

Claude Code の中では、道具に mcp__サーバー名__道具名 という名前が付きます。たとえば Addness の道具は mcp__addness__… で始まります。この名前は、許可のルールやフックの matcher(No.10)で使います。

○ 受講生によく聞かれる質問:「MCP と、Claude の拡張機能やスキルは何が違うんですか」
→ 答え方:MCP は「外のサービスにつながる道具」を増やす仕組みで、スキルは「道具の使い方の手順」を教える仕組みです。両方を組み合わせるのが定番です。(例:MCP で社内DBにつなぎ、スキルで「このDBの調べ方」を教える)
○ 講義で使える図のたとえ:ホスト=事務所、クライアント=事務所の中にある取引先ごとの専用電話、サーバー=取引先の窓口です。窓口が「うちはこの3つの注文を受けます」と一覧を出すのが tools/list です。
○ 関係する単元:No.09 スキル、No.10 フック

第3章 道具の説明は、コンテキストに入る

① なぜ「入る」のが問題になるのか 必ず覚える

道具の定義(名前・説明・引数の形)を全部机に置くと、机が狭くなります。たとえばサーバーを10個つなぎ、各サーバーに道具が30個あれば、300個の定義が机に載ります。肝心の仕事に使える広さが減り、AIが道具を選ぶ精度も落ちます(公式のAPI文書では、道具が30〜50個を超えると選ぶ精度が下がるとされています)。

② 名前とサーバーの指示だけ置き、定義は検索で取り寄せる 必ず覚える

これを避けるために、Claude Code は「道具の検索(公式名:ツール検索)」という仕組みを、初期設定で使っています。流れは次の通りです。

  1. 起動時に机へ置かれるのは、道具の名前と、サーバーが付けた使い方の説明(サーバー側の指示)、それに検索用の道具(ToolSearch)だけ。各道具の説明と引数の形(JSONスキーマ)は置かれない
  2. AIは、机にある名前の一覧とサーバー側の指示を見て、使えそうな道具の当たりを付ける
  3. 使いたくなったら ToolSearch で検索する。検索は道具の名前・説明・引数の名前と説明に当たる(公式のAPI文書による)。一致した道具(初期は最大5件)の定義が、その時に机へ載る
  4. AIは、載った定義を見て道具を呼ぶ

つまり、AIが道具を選ぶ手がかりは、最初は名前とサーバー側の指示だけです。サーバーを作る人が、指示に「どんな仕事の道具か」を書く理由はここにあります。

環境変数(Claude Code に渡す設定値)の ENABLE_TOOL_SEARCH=false で、この仕組みを切って全部を最初から置くこともできます。サーバーごとに「常に最初から置く」(alwaysLoad)の指定もあります。机の使い方は、/context all と打つと、道具ごとに見られます。

③ 戻りの大きさにも上限がある さらっと

道具の返す結果が大きすぎると、それも机を埋めます。トークンは、AIが文章を数える単位です。公式は、トークンと文字数の換算を書いていません。

公式の初期値は、トークンの上限と文字数の上限が別々にあります。

第4章 範囲と信頼

① 3つの範囲 必ず覚える

サーバーの設定は、「誰に効くか」を3つの範囲から選べます。

範囲 効く所 保存先
local(初期値) その作業場の自分だけ ~/.claude.json
project その作業場の全員 作業場の .mcp.json
user 自分の全作業場 ~/.claude.json

「作業場」は、いま開いているフォルダ(公式では「プロジェクト」)です。

local と user は、どちらも自分のホームフォルダの ~/.claude.json に保存されます。違いは範囲です。local は、このファイルの中に「この作業場のパスの下」として入るので、他の作業場には現れません。user は作業場に関係なく全部に効きます。どちらも自分専用で、チームには共有されません(共有されるのは project だけです)。

同じ名前が複数あるときは、local → project → user → プラグイン、の順で強い方が使われます。設定の一部だけが混ざるのではなく、勝った方の設定が丸ごと使われます。他の機能を含めた強さの順番は、No.15 の比較表にまとめてあります(ここでは MCP の順番だけ書きます)。

MCP の設定は、settings.json ではなく、上の表の別の場所に入ります。

② 信頼できる物だけつなぐ 必ず覚える

MCP のサーバーは、あなたの権限で動き、外のサービスを読み書きします。 公式も「つなぐ前に、信頼できるか確かめる」ことを求めています。

特に注意するのは、外のネットの文章を取ってくるサーバーです。文章の中に紛れた「悪い指示」にAIが従う危険(プロンプトインジェクション)があります。

作業場の .mcp.json に書かれたサーバーは、対話の画面では、使う前に承認を求められます。ただし claude -p(画面を出さずに動かす方法)や Agent SDK(プログラムからClaude Codeを動かす部品)では、承認の確認なしで読み込まれます。 自動化で動かすときは、.mcp.json の中身を自分で確かめておく必要があります。

○ 受講生によく聞かれる質問:「MCP を入れすぎると、AIの返事が悪くなりますか」
→ 答え方:道具の説明が机を占める分だけ、他の用に使える広さは減ります。道具の検索で名前だけが置かれるので、昔ほどではありませんが、使わないサーバーは外します
○ 受講生によく聞かれる質問:「社内のDBにMCPでつなぐのは安全ですか」
→ 答え方:サーバーは受講生の権限で動くので、読み取り専用の権限だけを渡したサーバーにします。許可のルール(No.13)でも道具ごとに止められます
○ 講義で使える図のたとえ:道具の一覧は、事務所の電話帳です。全員分の詳しいプロフィールは、必要な時にだけ引き出します。
○ 関係する単元:No.05 コンテキストウィンドウの中身

MCP=ホスト(Claude Code)・クライアント(ホストの中の接続部品)・サーバー(道具を出す側)の3者。運び方は stdio と HTTP。出せる物は道具・資料・決まり文句。道具は名前とサーバーの指示だけ机に置かれ、定義は検索で取り寄せ。信頼できる物だけつなぐ。

確認問題

問1 Claude Code を MCP の「ホスト」と呼ぶとき、「クライアント」とは何ですか?

問2 自分のMacの中にある小さなプログラムをMCPのサーバーとして使いたい。向いている運び方は?

問3 MCP のサーバーを20個つないでも、会話の最初に机がいっぱいにならない主な理由は?

問4 同じ名前のMCPサーバーが local と user の両方に設定されています。使われるのは?

出典:Claude Code 公式ドキュメント「Connect Claude Code to tools via MCP」(https://code.claude.com/docs/en/mcp)/「Extend Claude Code」(https://code.claude.com/docs/en/features-overview)/API 公式「Tool search tool」(https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool)/MCP 公式「Architecture overview」(https://modelcontextprotocol.io/docs/learn/architecture)/「Understanding MCP servers」(https://modelcontextprotocol.io/docs/learn/server-concepts)