第1章 「コネクタ」の正体 — MCPは道具の共通規格
📖 MCPサーバーを作って学ぶ AIに道具を持たせる入門 — はじめに・目次 ← 目次に戻る この章にコードは出てきません。「何を作ろうとしているのか」の地図を先に配ります。手を動かすのは第2章からです。
📱 Claude ではこう見える 🟢
Claude に GitHub や Google ドライブを繋いだことはありますか。設定から「コネクタ」を追加すると、それまで「私はファイルにアクセスできません」と言っていた Claude が、急にあなたのファイルを読めるようになります。
不思議なのは、Claude 自体は何もアップデートされていないことです。あなたが設定を1つ足しただけ。それなのに、できることが増えた。
つまり——AIの能力は、後から外付けできる。その外付けの規格が MCP(Model Context Protocol) です。
そして今回の主役はここです。
あなたが今から作るのは、その「外付けする側」です。
🤔 なぜ「規格」が要るのか 🟢
道具を持たせるだけなら、前作でやった
第3弾(CLIエージェント)の第3章を思い出してください。あそこでは、AIに「道具メニュー」を渡しました。ファイルを読む道具、コマンドを走らせる道具。AIに道具を持たせる方法は、もう知っているわけです。
では、なぜわざわざ MCP という規格が必要なのでしょう。
規格がないと、掛け算で増える
あなたが「メモを検索する道具」を作ったとします。素晴らしい。ではそれを——
- Claude Desktop で使いたい → Claude 用に書く
- ChatGPT でも使いたい → ChatGPT 用に書き直す
- Cursor でも使いたい → Cursor 用に書き直す
- 自作アプリでも使いたい → また書き直す
道具が5個、繋ぎたいAIが4つあったら、5 × 4 = 20回書くことになります。これを N×M問題 と言います。
規格があると、こうなります。
- 道具を作る人は「MCPの形」で1回作る
- AIを作る人は「MCPの形」を読めるように1回作る
- あとは、どれとどれでも繋がる
コンセントと同じです
日本の家電は、どのメーカーのものでも、同じ形のプラグが付いています。だから炊飯器メーカーは「ソニーの家用の炊飯器」を別に作らなくていい。形さえ合わせれば、どの家でも動く。
MCPはこれです。AIと道具のあいだの、プラグの形を決めたもの。それ以上でもそれ以下でもありません。
💡 だから覚えておいてください。MCPは賢くありません。 AIを賢くする魔法ではなく、「こういう順番で、こういう形の文字列をやりとりしましょうね」という約束事です。約束事だからこそ、誰でも作れます。
🛠 登場人物は3人 🟢
ここが初心者の最大の混乱ポイントなので、丁寧にいきます。MCPの話には3つの役が出てきます。
┌─────────────────────────────────────────────┐
│ ホスト(Claude Desktop) │
│ =あなたが実際にさわるアプリ │
│ │
│ ┌──────────────────┐ │
│ │ クライアント │ ←─ サーバー1つにつき1人 │
│ └────────┬─────────┘ │
└────────────┼────────────────────────────────┘
│ ← ここでMCPの会話が行われる
↓
┌────────────────────┐
│ サーバー │ =あなたが作るプログラム
│ (メモを検索する等) │
└────────────────────┘
| 役 | 正体 | 誰が作る? |
|---|---|---|
| ホスト | Claude Desktop そのもの。人間と話す側 | Anthropic |
| クライアント | ホストの中にいる「サーバーとの通訳係」 | Anthropic(第2部ではあなたが作ります) |
| サーバー | 道具の実体。メモを検索したりする小さなプログラム | あなた ←★今回の主役 |
第1部(第2章〜第9章)では、いちばん下のサーバーだけを作ります。第2部(第10章〜)で、真ん中のクライアントを自分で作って、自作アプリに繋ぎます。
サーバーが提供できるものは3種類
あなたが作るサーバーは、ホストに対して3種類のものを差し出せます。
| 種類 | ひとことで | 例 |
|---|---|---|
| ツール(tools) | AIが実行するもの | メモを検索する、メモを書く |
| リソース(resources) | AIが読むもの | メモそのものの中身 |
| プロンプト(prompts) | 人間が選ぶ定型の頼み方 | 「今週のメモを要約して」 |
この教材では、まずツールだけを扱います(第2章〜第6章)。3種類の使い分けは第7章でまとめます。最初から全部やろうとしないでください。 ツールだけで、じゅうぶん実用的なものが作れます。
🔧 で、どうやって話しているのか 🔧
背骨②に関わる、この教材でいちばん大事な話です。軽く聞いておくだけでOKですが、第3章でここに戻ってきます。
Claude Desktop があなたのサーバーと話すとき、いちばん普通のやり方は stdio(標準入出力) といいます。乱暴に言うとこうです。
- Claude Desktop が、あなたのプログラムを起動する(裏でこっそり)
- Claude Desktop が、そのプログラムのキーボード入力の口(標準入力)に文字を流し込む
- あなたのプログラムは、画面出力の口(標準出力)に返事を書く
- 用が済んだら、Claude Desktop がプログラムを終了させる
つまり——あなたのサーバーの「画面」は、Claude との会話チャンネルそのものなのです。
ここから、この教材で一番有名な罠が生まれます。
⚠️ 画面に文字を出すつもりで
console.log("started")と書くと、Claude との会話が壊れます。 その文字が、Claude との会話に混ざるからです。人間で言えば、通訳の会話に第三者が割り込んで叫んでいる状態。会話が乱れます。
これは初心者がほぼ全員ハマります。公式ドキュメントにも「stdioサーバーでは絶対に console.log() を使うな」と明記されているほどです。
そしてこの罠のいちばん厄介なところは、いつも派手に壊れてくれるわけではない、という点です。書き方によっては「なんとなく動いてしまう」ことがあります。動いてしまうと、あなたは原因に気づけません。数日後、まったく別の場所で不可解な不具合として現れます。第3章で、実際に自分の手で壊して、2通りの壊れ方を見てもらいます。壊れ方を知っていれば、怖くありません。
💡 話し方はもう1つ、HTTP というやり方もあります(第8章)。手元で動かすなら stdio、インターネットの向こうに置くなら HTTP、とざっくり覚えておいてください。
⚠️ ハマりどころ 🟢
①「サーバー」という言葉に惑わされない
MCPの「サーバー」は、Webサーバーではありません。
「サーバー」と聞くと、24時間動いていて、URLがあって、たくさんの人がアクセスするもの——を想像しますよね。違います。
MCPサーバーの正体は、あなたのパソコンの中で、Claudeに呼ばれたときだけ起動する、画面のない小さなプログラムです。URLもありません。公開もされていません。あなた専用です。
この誤解を持ったまま進むと、第2章で「サーバーを立てたのにブラウザで開けない」と混乱します。開けなくて正解です。
②「常駐している」と思わない
サーバーはあなたが起動するのではありません。Claude Desktop が必要なときに起動し、終わったら終了させます。だから——
設定ファイルを書き換えたら、Claude Desktop を再起動する必要があります。
これも全員が一度は忘れます。第2章で必ずやります。
③「MCPを入れればAIが賢くなる」と思わない
MCPは能力の配管であって、能力そのものではありません。ダメな道具をMCPで繋いでも、ダメな道具のままです。道具の良し悪しを決めるのは、あなたの設計です。
💡 いちばん大事なこと:AIが読むのは「説明文」だけ 🟢
先に種を撒いておきます。
あなたがサーバーに道具を1つ足すとき、こう書きます(イメージです。本物は第2章から)。
名前: search_notes
説明: メモを検索する
受け取るもの: キーワード(文字列)
そしてAIは——この3行しか見ていません。 中身のコードは1文字も読みません。
つまり、AIが道具を使ってくれるかどうかも、正しく使えるかどうかも、あなたが書いた説明文しだいということです。
- 説明が雑だと、AIは道具の存在に気づきません
- 説明が曖昧だと、AIは変な使い方をします
- 説明が正確だと、AIは驚くほど的確に使ってくれます
プログラミングの上手さより、説明の上手さが効く。 これがMCPの意外な特徴です。第2章でいきなりこれを体感してもらい、第5章・第6章でじっくり扱います。
🤖 AIに頼むなら 🟢
この教材を読みながら、AIコーディングツール(Claude / Cursor など)に手伝ってもらう人へ。
MCPは比較的新しい規格で、まだ動きが速い分野です。そのためAIは、古い書き方を自信満々に出してくることがあります。とくに——
- 少し前の書き方(古いAPIの名前)を出してくる
- 廃止された繋ぎ方(古いHTTPのやり方)を勧めてくる
なので、頼むときはこう言ってください。
「MCPの公式ドキュメント(modelcontextprotocol.io)の最新の書き方で」 「TypeScript の公式SDK(@modelcontextprotocol/sdk)を使って」
そして——動かなかったら、AIに聞く前に第4章(デバッグ)に戻ってください。 AIは、あなたのパソコンで何が起きているかを見られません。「どこで壊れているか」を掴んでから聞くほうが、何倍も速く解決します。
📗 ことばメモ
| ことば | よみ | 意味 |
|---|---|---|
| MCP | エムシーピー | Model Context Protocol。AIと道具をつなぐ共通規格 |
| ホスト | — | 人間がさわるアプリ本体(例:Claude Desktop) |
| クライアント | — | ホストの中にいる、サーバーとの通訳係 |
| サーバー | — | 道具の実体。あなたが作るもの。Webサーバーではない |
| ツール | — | AIが実行できる機能 |
| リソース | — | AIが読めるデータ |
| プロンプト | — | 人間が選ぶ、定型の頼み方 |
| stdio | エスティーディーアイオー/標準入出力 | プログラムの入力の口と出力の口。手元のサーバーとの会話に使う |
| N×M問題 | — | 規格がないと「AIの数 × 道具の数」だけ実装が要る、という困りごと |
➡️ 次へ
地図は配りました。次は実際に動かします。
第2章 まず公式のサンプルを動かす — 天気サーバーをClaudeに繋ぐ では、MCPの公式チュートリアルにある「天気サーバー」を、そのまま Claude Desktop に繋ぎます。自分で書く前に、まず他人の完成品が動くところを見る——これがいちばん近道です。
そして第2章の最後に、あなたはきっとこう思います。「あれ、東京の天気が出ない」。その理由こそが、第5章から自分のサーバーを作りはじめる動機になります。
関連ページ
- MCPサーバーを作って学ぶ AIに道具を持たせる入門 — はじめに・目次 — 目次
- 自作CLIエージェントで学ぶ AIエージェント開発入門 — はじめに・目次 — 第3弾。「道具を持たせる」基礎はこちら