MCP 2026アップデート後、MCP Serverのコード変更は必要?旧版移行ガイドと互換性チェック

MCP 2026の仕様変更、自作Serverのコード変更の要否、旧版からの移行手順、互換性チェックリスト、トランスポートとJSON Schema検証のポイント。

私たちの記事を読んでいただければ、MCPサーバーのランキングとレビューいくつかの公式サーバーをインストールしたら、次のステップは多くの場合、内部システムをラップするか、フォークされたコミュニティ サーバーを維持することです。 2026 年の変更は次の 3 つの領域に集中します。オープンガバナンス,トランスポートの統合 (Streamable HTTP)、 そしてより厳密なツール/リソース スキーマ.

良いニュースは、既存 API を公式 SDK で tools/list + tools/call として公開する「薄いラッパー」型 Server の多くは、ビジネスロジックの書き直しは不要ということです。依存関係のアップグレードと回帰テストで足りることが多く、非推奨のプロトコル詳細や独自のトランスポート/ハンドシェイクに依存している場合だけ、実質的なコード変更が必要になります。

2026 年に実際に何が変わったのか

エリア2024 ~ 2025 年の一般的な慣行2026 年の推奨プラクティスサーバーコードへの影響
ガバナンスAnthropic が主導した初期のスペックAgentic AI Foundation オープンガバナンス、マルチベンダー変更ログを確認してください。 SDK メジャー バージョンをピン留めする
輸送stdio + 初期 SSEstdio (ローカル) + ストリーミング可能 HTTP (リモート)リモート展開には新しいトランスポートが必要です。純粋な stdio: 影響が少ない
能力のネゴシエーション緩い機能フィールドより明確な 初期化 ハンドシェイク、統一されたエラー コードカスタム ハンドシェイク ロジックは新しい SDK と一致する必要があります
ツールの説明inputSchema のサブセットが変化しましたJSON スキーマ に近い。説明の方が重要ですスキーマフィールドに入力してサンプルを検証する
安全分散した構成、広範な権限OAuth、ホスト の最小特権標準サーバー上のスコープを制限します。プロトコルよりも構成が重要

ほとんどの開発者にとって、実際の作業は、SDK のアップグレード、スキーマのチェック、回帰の実行です。— ツールの実装を書き換えるのではありません。これは次のレイヤリングと一致します。AI Agent と MCP の技術進化: MCP は、ビジネス API ではなく、接続と説明を変更します。

コードの変更が必要ですか: デシジョン ツリー

  1. 公式 @modelcontextprotocol/sdk を使っていますか?
    はい → 2026 の安定メジャー版に上げ、下のチェックリストを実行。ビジネスコードは通常そのまま。
    いいえ → 公式 SDK への移行コストを見積もる。プロトコルを自前で維持するより安いことが多い。
  2. カスタムトランスポート(手動のSSE/WebSocket)を実装しましたか?
    はい → Streamable HTTP に適応するか、SDK 組み込みトランスポートを使用します。
    いいえ (stdio のみ) → おそらく依存関係のアップグレードのみ。
  3. 非公開の JSON-RPC フィールドを解析しますか?
    はい → 変更する必要があります。 SDK パブリック API を使用します。
    いいえ→続行します。
  4. ツールの inputSchema に type / properties / description が欠けていませんか?
    はい → Schema を補完(JSON Toolbox でローカル検証)。実行ロジックの変更は不要。
    いいえ → 回帰テストを中心に。
  5. ホスト のアップグレード後: ツール リストが空ですか、それとも呼び出しが失敗しましたか?
    はい → 移行手順ごとにデバッグ 初期化 と機能を実行します。
    いいえ → ピンのバージョン。 CI 煙テストを追加します。

結論:自作サーバーの約 70% は「SDK のアップグレード + スキーマの修正 + 設定の調整」が必要です。大幅なコード変更が必要なのは、詳細なトランスポートのカスタマイズまたは非推奨のフィールドのみです。

互換性チェックリスト

テスト環境では、サーバーをターゲット ホスト (カーソル / クロード デスクトップ / VS コード) に接続し、各項目を確認します。

#チェック合格基準
1プロセスの開始stdio はクラッシュしません。ログにキャッチされない例外はありません
2initializeサーバー情報、機能を返します。プロトコルバージョンエラーなし
3tools/listツール名、説明、inputSchema が表示されます
4tools/call (read)有効な引数は JSON を返します。無効な引数は構造化エラーを返します
5tools/call (write)アクセス許可の拒否は明示的な失敗であり、サイレントな失敗ではありません
6リソース (ある場合)resources/list, resources/read work
7大きな結果切り詰めまたはページネーション。 ホスト コンテキストを破らないでください
8同時実行性呼び出しを繰り返しても状態は破壊されない
9アップグレード前/後同じテスト ケースは、古いホスト と新しいホストで一貫して動作します。
10スキーマの検証サンプル入出力パスローカル JSON スキーマ 検証

項目 3 ~ 5 を CI の JSON フィクスチャとして修正します。モック Host リクエストとアサート応答の形状とスキーマ — API コントラクト テストと同じ考え方です。

従来の移行手順

フェーズ 1: インベントリ (半日)

  • 現在の SDK バージョン、ノード/Python ランタイム、トランスポート (stdio / HTTP) を記録します。
  • Export a JSON snapshot of current tools/list as diff baseline
  • Confirm Host MCP config (mcp.json / Cursor settings): command and env

フェーズ 2: 依存関係のアップグレード (1 日)

# Node example: upgrade official SDK then restart Server
npm install @modelcontextprotocol/sdk@latest
# Pin minor to avoid production drift
npm pkg set dependencies.@modelcontextprotocol/sdk="^1.x"

Python projects: upgrade the mcp package similarly. Run unit tests before connecting a real Host.

フェーズ 3: 輸送 (必要に応じて)

  • ローカル stdio のみ:通常は変化がありません。 ホスト が実行可能エントリをまだ見つけていることを確認します
  • リモート共有:レガシー SSE から Streamable HTTP に移行します。 Bearer Token または OAuth を追加します。未認証のエンドポイントを決して公開しないでください

フェーズ 4: スキーマとエラー形式 (1 ~ 2 日)

  • Add description to every tool to reduce model misuse
  • ホスト の生のスタック トレースではなく、SDK が推奨する構造化エラーを使用します。
  • 各ツールの inputSchema と JSON ツールボックス の 2 ~ 3 のサンプル ペイロードを検証します。

フェーズ 5: ロールアウトとロールバック

  1. ステージングでの完全な回帰 → 最初に個々の開発者 → チームでのロールアウト
  2. 迅速なロールバックのために、古いサーバー ブランチまたは 1 ~ 2 バージョンの Docker イメージを保持します
  3. Monitor tools/call failure rate and “protocol” in Host logs

スキーマとツール定義のメモ

2026 Hosts are less forgiving of tool Schema: missing type: object, required, or field description leads to bad model args or Host refusing to register tools.

{
  "name": "query_orders",
  "description": "Query recent orders by user ID, read-only",
  "inputSchema": {
    "type": "object",
    "properties": {
      "user_id": { "type": "string", "description": "User UUID" },
      "limit": { "type": "integer", "description": "Row count, default 10", "default": 10 }
    },
    "required": ["user_id"]
  }
}

ツールが構造化された JSON を返す場合は、ダウンストリーム パイプラインが中断されないように、出力スキーマを定義します (または ホスト で検証します)。開発中にローカルで JSON Toolbox を使用します。データはブラウザーに残ります。

ホスト とサーバーのバージョンのマトリックス

シナリオコードの変更が必要ですか?おすすめ
公式 npx サーバー、固定されていないバージョン通常、あなたの問題ではありません構成でパッケージのバージョンを固定します。アップストリームのリリースノートを見る
公式 SDK を使用した内部 API の薄いラッパー通常はSDKのアップグレードのみスキーマの修正 + CI スモークテスト
フォークされたコミュニティ サーバー、6 か月以上古いおそらく上流の PR を比較するか、公式の代替品に切り替える
カスタムトランスポート + カスタムハンドシェイクはいSDK 組み込みトランスポートに移行します。プライベートプロトコルコードを削除する
ホストはアップグレードされ、サーバーは変更されません間接的に失敗する可能性があるペアでアップグレードします。最初にステージングで検証する

よくある質問

MCP は 2026 年にすべてのサーバーを書き換える必要があるほど大きく変わりましたか?

いいえ。基本的な tools/list および tools/call で公式 SDK を使用している場合は、通常、SDK をアップグレードして互換性チェックリストを実行するだけで十分です。非推奨のフィールド、カスタムトランスポート、または古い機能ネゴシエーションを使用するサーバーのみ、コードの変更が必要です。

サーバーではなく、ホスト (カーソル) をアップグレードした場合はどうなりますか?

典型的な症状: 接続障害、空のツール リスト、または通話時のプロトコル エラー。 ホスト とサーバーを一緒に最新の安定した SDK/ランタイムにアップグレードし、最初にステージングで検証します。

stdio と Streamable HTTP の両方が必要ですか?

ローカルでの個人使用: stdio は問題ありません。チーム共有または複数のクライアント: 認証付きの ストリーミング可能な HTTP (初期の SSE を置き換える) が 2026 年に推奨されます。展開シナリオによって両方をサポートできます。

ツールパラメータJSONスキーマが変更された場合はどうなりますか?

ツール定義を新しい SDK インターフェイスと比較します。 inputSchema が JSON Schema サブセットと一致することを確認します。サンプル ペイロードをローカルで検証し、Host tool_calls がまだ解析されていることを確認します。

サーバーに互換性があるかどうかをすぐに確認するにはどうすればよいですか?

5 つのステップを通過します: 初期化 ハンドシェイク → tools/list がデータを返す → 1 回成功した tools/call → 正しいエラー形式 → アップグレード後の回帰。上記の完全なチェックリストを参照してください。

コミュニティ npx サーバーを維持しますか?

ソースをフォークする必要はありませんが、バージョンを固定し、メンテナが 2026 SDK を追跡していることを確認し、CI で定期的にスモーク テストを実行します。本番環境での @latest ドリフトを回避します。

まとめ

MCP 2026 アップデートは、すべてのサーバーを書き直すことを意味するものではありません。まず、公式の SDK と標準トランスポートに依存しているかどうかを確認してください— その場合、主な作業は、依存関係をアップグレードし、JSON スキーマ を完成させ、互換性チェックリストを実行し、段階的にロールアウトすることです。大幅に書き換える必要があるのは、深くカスタマイズされたプロトコル コードまたは長期間メンテナンスされていないフォークのみです。

さらに読む:2026 MCP サーバーのランキングとレビュー選択のため。MCP と JSON スキーマ の技術進化フルスタック用。ツールのスキーマを検証し、ライブにする前に JSON Toolbox でローカルにデータをサンプリングします。