ZZ. 構成

この資料をどう組み立てたか

📅 作成: 2026-09-07 / 更新: 2026-09-07

この資料の内容

  1. 対象読者
  2. 章立ての意図
  3. 書き方の原則
  4. 確かめた環境
  5. 読み方

対象読者

項目前提理由
MCPまったく知らない用語から説明する。既に知っている人は 02 章から読める
JavaScript文法は分かるasyncawait・モジュール・分割代入は説明しない
AI コーディング CLI使ったことがあるただし MCP の登録は初めての前提
サーバー開発プロセスと標準入出力が分かるJSON-RPC は知らない前提で説明する

到達点

出発点 JS は書ける MCP は知らない 120 分 手を動かしながら 11 章 到達点 自分のサーバーが動いている 限界も分かっている
読み物ではなく、手を動かす前提で組んである。

章立ての意図

役割目安
01 背景用語を揃える。版が 1 つでないことを最初に伝える8 分
02 最小のサーバーこの資料の要。SDK 抜きで書き、中身を見せる15 分
03 SDK で書き直す02 と同じものを短く書き、何が省けたかを対比する10 分
04 ホストに登録する3 つの CLI の違い。切り分けの方法もここ12 分
05 3 つの提供物Tools・Resources・Prompts の使い分けと失敗の返し方13 分
06 ハンズオン①ここまでを使って作りきる。以降の章はこれを育てる12 分
07 HTTP に載せ替える中身を変えずに運び方だけ変える12 分
08 通知で伝えるできることとできないことの線を引く10 分
09 タスク新しい仕組みと、まだ使われていない現実10 分
10 プロセス共有1 本にまとめる方法と、その代償8 分
11 ハンズオン②危ないものを、危なくない形にして出す10 分

02 章を SDK より先に置いた理由

SDK から始めれば 20 行で動きます。それでも先に手書きを挟むのは、動かないときに切り分けられなくなるからです。

登録したのにツールが出てこない。このとき「プロセスは起きているか」「初期化まで進んだか」「一覧は渡ったか」を確かめられるかどうかで、解決までの時間が変わります。02 章で 1 往復させておけば、以降どの章で詰まっても同じやり方で調べられます。

01→05 06 メモ ハンズオン① 07 HTTP 08 通知 09 タスク 10 共有 11 総仕上げ 06 で作ったものを 07〜10 で育て、11 で別の題材に当てはめる
ハンズオンを 2 つに分け、間に応用の章を挟んである。

書き方の原則

原則中身
生のものを先にSDK より先に JSON-RPC を見せる。抽象の下に何があるかを知ってから使う
理由を先にconsole.log は禁止」ではなく「なぜ壊れるか」から書く
動かして終わる各節は実行結果で終える。出力は実際に動かしたものを貼る
実測を書く版・大きさ・所要時間はコマンドで確かめた値を書く
できないことも書くできることだけ並べると、できないことに時間を溶かす
ホストの差はバッジで3 つの CLI で違う箇所は明示する

載せているコードは全部動かしてある

資料に出てくるサーバーは docs/samples/ に置いてあり、テストで検証しています。

node --test --test-concurrency=1 tests/
ℹ tests 32
ℹ pass 32
ℹ fail 0

出力は実際に動かしたものです。この資料に貼ってある実行結果・エラーメッセージ・所要時間は、書き起こしではなく実行して得たものを写しています。バージョン番号も --version で確かめた値です。

図について

各章に図を 1 点以上入れています。引くための付録(A1・A2)は除きます。図はすべて SVG で、章のアクセント色を継いでいます。

確かめた環境

対象確かめ方
OSWindows 11
Node.jsv26.8.1node --version
npm11.19.0npm --version
@modelcontextprotocol/sdk1.30.0npm view @modelcontextprotocol/sdk version
zod4.5.4npm ls zod
Claude Code2.1.263claude --version
Codex0.153.4codex --version
Antigravity1.107.0antigravity --version
.NET Framework4.0.30319csc.exe の置き場

どこまで実測したか

対象範囲
Claude Code全章登録・呼び出し・進捗通知・elicitation・タスクの非対応まで確認
Codex一部接続と protocolVersion の確認まで
Antigravity登録コマンドの書式のみ
Claude Code 2.1.263 protocolVersion: 2025-11-25 roots ・ elicitation tasks は名乗らない Codex 0.153.4 protocolVersion: 2025-06-18 elicitation(form ・ url) roots は名乗らない 2026-09-07 時点。版が上がれば変わるので、自分の環境で確かめる
この違いに気づかず片方に合わせると、もう片方で動かなくなる。

読み方

目的読む順
ひととおり身に付けたい01 から順に。120 分
とにかく動かしたい03 → 04 → 06。35 分
中身を理解したい01 → 02 → 08。33 分
共有の構成を知りたい07 → 10。20 分
通知の限界を知りたい08 → 09。20 分
配る方法を知りたいA3
詰まったA2
書き方を忘れたA1

手を動かす準備

git clone <このリポジトリ>
cd 20260907-ai-mcp-servers-learn
npm install
node --test --test-concurrency=1 tests/

テストが全件通れば、資料に出てくるサーバーはすべて手元で動きます。

参考にした資料

資料使い方
MCP 仕様 2025-11-25これが正。この資料と食い違ったら仕様に従う
MCP 仕様(最新)先の変更を知りたいとき。今のホストは追いついていない
SDK の型定義node_modules/@modelcontextprotocol/sdk/dist/esm/**/*.d.ts

仕様のページは日付で分かれています。検索から辿り着いたページの URL に入っている日付を確かめてください。2026-07-28 のページは、この資料が扱う 2025-11-25 とは作りが違います。