MCP(Model Context Protocol)は、AI アシスタントに外部のツールやデータをつなぐための共通規格です。Anthropic が 2024 年 11 月に公開し、いまでは OpenAI・Google・Microsoft も対応する事実上の標準になりました。本稿は「MCP とは何か」から、実際に動くサーバーの書き方、通信方式の選び方、認可とセキュリティまでを、はじめての人が読んでも分かるように図とともに整理します。
FIG.1 MCP は「1 度サーバーを作れば、対応するどのクライアントからも使える」共通の差込口
01MCP は「AI 用の USB-C」
MCP が登場する前は、AI に外部ツールをつなぐ方法がベンダーごとにバラバラでした。あるモデルの Function Calling 用に書いた連携コードは、別のモデルでは作り直し。ツール × クライアントの数だけ実装が増える、というのが悩みでした。
MCP は、その差込口を1 つの規格に統一します。USB-C ケーブルが 1 本あればノート PC でもスマホでも充電できるのと同じで、MCP サーバーを 1 度作れば、対応するどのクライアント(Claude、ChatGPT、各種 IDE など)からでも同じように呼び出せます。仕様の中身は JSON-RPC 2.0 でやり取りする、軽量なメッセージ規約です。
作るのはツールごとに 1 回。使えるのは 対応クライアントすべて。これが MCP の効きどころ。
02サーバーが提供できる 3 つの機能
MCP サーバーがクライアントに差し出せる「機能」は、大きく 3 種類です。役割がはっきり分かれているので、最初にここを押さえると設計が楽になります。
Tools(道具)
AI が実行できる関数。例:「DB を検索」「ファイルを書き込む」「外部 API を叩く」。副作用を伴う操作はここ。
Resources(資料)
AI が読み取れるデータ。例:「ファイル一覧」「最新ログ」「DB スキーマ」。URI で参照する読み取り専用の素材。
Prompts(雛形)
使い回せるプロンプトの型。例:「コードレビュー用チェックリスト」「議事録テンプレ」。ユーザーが選んで呼び出す。
迷いやすいのは Tools と Resources の境目です。「AI が能動的に呼んで何かをする」のが Tools、「文脈として読むだけ」のが Resources、と覚えると区別できます。実際の現場では Tools が主役で、Resources・Prompts は補助的に使われることが多いです。
03最小のサーバーを書く(TypeScript)
公式 SDK @modelcontextprotocol/sdk を使うと、サーバー本体は数十行で書けます。現在の推奨は、高レベル API の McpServer クラスと registerTool メソッドです。引数の検証には zod でスキーマを書くのが定番で、入力チェックを SDK 側に任せられます。



