Claude Media
MCPのSwift・PHP・Kotlin SDKは今どこまで使えるか

MCPのSwift・PHP・Kotlin SDKは今どこまで使えるか

MCP公式SDKのうちTier 3の3言語(Swift・PHP・Kotlin)の実装範囲とバージョンを、リリース日やREADMEの記述から具体的に比べます。

Swift・PHP・KotlinのMCP SDKは何が違うか

MCPの公式SDKは10言語に提供されており、Swift・PHP・KotlinはいずれもTier 3(実験的、または部分実装)に分類されています。ただし3言語の実態は一様ではありません。Tierの数字だけでは、どの仕様バージョンに対応し、どれくらいの頻度で更新されるかまでは分かりません。

3言語に共通するのは、パッケージのバージョンがまだ1.0に届いていない点です。Swiftは0.12系、PHPは0.8系、Kotlinは0.15系です。Tierの基準ページはStable Releaseを、-alphaや-betaなどの識別子が付かない1.0.0以上のバージョンと例示しています。Tier 3ではこの安定版が不要で、Tier 2に上がるには最低1回の安定版が要ります。

Tierの判定基準そのものはMCP SDK Tierシステムとはで扱っています。この記事では3言語の中身を、バージョン・対応環境・仕様追従・更新の動きから比べます。

3言語のスペック早見表

項目SwiftPHPKotlin
最新バージョンSwift0.12.1PHP0.8.1Kotlin0.15.0
対応環境SwiftApple各OS、Linux(glibc/musl)PHPPHP(Composer)KotlinJVM・Native・JS・Wasm
最小要件SwiftSwift 6.0+(Xcode 16+)PHPPHP 8.1+KotlinKotlin 2.2+、JVMは11+
書き方Swiftasync/awaitベースのAPIPHPPHP 8のAttribute(#[McpTool])Kotlinコルーチンベース
主なトランスポートSwiftstdio・Streamable HTTP・HTTPサーバー2種PHPSTDIO・HTTPKotlinstdio・Streamable HTTP・SSE・WebSocket

最新バージョンはGitHubのタグとPackagistの公開情報にもとづく値です。更新が速いので、実装前に各パッケージマネージャー(Swift Package Manager・Packagist・Maven Central)で最新値を引き直してください。

更新の動きを日付で並べると何が見えるか

同じTier 3でも、リリースの間隔はかなり違います。GitHubのタグとPackagistに載っている日付を並べると、直近のリリースは次のとおりです。

あゆみ

3言語の直近リリース日

  1. 2026年4月29日Swift 0.12.1

    Swiftの最新タグです。0.11.0は2026年2月19日、0.12.0は2026年3月24日でした。

  2. 2026年7月28日Kotlin 0.15.0

    0.12.0が2026年4月29日、0.13.0が6月2日、0.14.0が6月30日と、約1か月おきに出ています。

  3. 2026年8月29日PHP 0.8.1

    0.8.0は2026年8月24日、0.7.1は8月10日、0.7.0は7月14日です。初版の0.1.0は2025年11月20日でした。

PHPはPackagist上で12バージョンが並びます。一方、Swiftの最新タグ0.12.1は、READMEが「latest」と呼ぶ仕様2025-11-25の時代のものです。READMEの導入例もfrom: "0.11.0"のままで、最新タグより1つ古い値になっています。更新の動きが速いのはPHPとKotlin、間隔が空いているのはSwiftです。

自分の状況ならどの言語を選ぶか

くらべる

状況別の選び方

Apple製アプリに組み込む

Swift

Apple製アプリにMCPクライアントやサーバーを組み込む場合の選択肢です。認証まわりの記述が厚いのも特徴です。

既存のPHP資産をMCPにする

PHP

SymfonyやCakePHP、Drupalなどの上にMCPサーバーを足す場合に向きます。Attributeを付けるだけで公開できます。

JVMや複数ターゲットで書く

Kotlin

JVMを中心に、Native・JS・Wasmも1つのコードベースで狙う場合に向きます。トランスポートは4種類から選べます。

Swift SDK — Appleプラットフォーム前提の実装

Swift SDKはSwift 6.0以上(Xcode 16以上)を要求します。対応プラットフォームはmacOS 13以降・iOS/Mac Catalyst 16以降・watchOS 9以降・tvOS 16以降・visionOS 1.0以降です。加えて、glibcまたはmuslベースのLinux(Ubuntu・Debian・Fedora・Alpineが名指しされています)にも対応します。

ただし同じREADMEの中で、トランスポート別の対応欄は少し食い違います。プラットフォーム表はmuslを含めていますが、StdioTransportの対応欄は「Apple platforms, Linux with glibc」です。Alpineのようなmusl環境でstdioのサーバーを作るなら、この対応欄を個別に見る必要があります。HTTP系のトランスポートは「All platforms with Foundation」と書かれています。

サーバー側のHTTPトランスポートは2種類です。StatelessHTTPServerTransportはセッション管理もSSEストリーミングもない単純なリクエスト・レスポンス型で、サーバーレスやエッジ関数向けと説明されています。StatefulHTTPServerTransportは、セッション管理とSSEによるサーバーからの通知を備えます。ほかにテスト用のインメモリ、Apple専用のNetwork frameworkを使うトランスポートもあります。

認証は厚く書かれています。OAuth 2.1ベースの認可コードフロー・クライアント資格情報フロー・カスタムトークンプロバイダーまでが、READMEで説明されています。elicitation(サーバーからユーザーへの構造化入力の依頼)も、クライアント側のハンドラーとサーバー側のrequestElicitationの両方が載っています。OAuthのようなURL型のelicitationには、専用のオーバーロードがあります。

対応する仕様バージョンは、READMEが「latest」と呼ぶ2025-11-25です。最新の2026-07-28版ではなく、トランスポート説明の一部には2025-06-18版の仕様ページへのリンクも残っています。最新仕様の機能を前提にする実装では、対応状況を個別に確かめる必要があります。

PHP SDK — Symfonyの設計思想を引き継いだ若いSDK

PHP SDKはPHP FoundationとSymfonyプロジェクトの協業で開発され、Symfonyのコーディング規約と後方互換性ポリシーを踏襲しています。最初のメジャーリリースまでは、Symfonyの方針でいう「experimental」の扱いです。計画はリポジトリ内のROADMAP.mdにまとめられています。

要求バージョンはPHP 8.1以上です。実装はPHP 8のAttributeが中心になります。メソッドに#[McpTool]を、リソースには#[McpResource(uri: "...")]を付けると、Server::builder()->setDiscovery(...)がディレクトリ内のクラスを自動検出して、サーバーの機能として公開します。

周辺エコシステムはすでに動き始めています。READMEの一覧には、API PlatformのMCP統合、DrupalのMCPサーバーモジュール、CakePHPプラグインが載っています。KirbyのMCPサーバー、Netteのインスペクター、Symfony向けのAIアシスタントMCPサーバーとバンドルも並びます。「実験的」という一語だけで見送ると、フレームワーク側の実装が先に進んでいる点を見落とします。

PHP SDKは、2026-07-28の改訂にあたるステートレス方式と、それ以前のinitializeハンドシェイク方式の両方を提供します。ハンドシェイク世代のサーバーは、クライアントが2026-07-28を名指ししてきたとき、最新のハンドシェイク世代の版を代案として返します。代案は拒否ではありません。続けるか切るかは、クライアントが決めます。

適合性テスト(Conformance Tests)の結果は、READMEにサーバー・クライアント別、仕様バージョン別のバッジで載ります。計測は週次です。2026-07-28向けの数値はテストフレームワークのalpha版に対して走らせているため、上流が新しいシナリオを出すたびに動きます。Swift・KotlinのREADMEに、同種のバッジはありません。

Kotlin SDK — Kotlin Multiplatformで4ターゲット

KotlinはKotlin Multiplatformを採用し、JVM・Native・JS・Wasmを単一のコードベースで狙います。必要なKotlinは2.2以上、JVMは11以上です。アーティファクトは3つに分かれています。

  • io.modelcontextprotocol:kotlin-sdk — クライアントとサーバーを含む統合版(umbrella)
  • io.modelcontextprotocol:kotlin-sdk-client — クライアント専用
  • io.modelcontextprotocol:kotlin-sdk-server — サーバー専用

機能面では、サーバー側のprompts・resources・tools・completion・logging・paginationがREADMEで説明されています。クライアント側はrootsとsamplingです。対応トランスポートはstdio・Streamable HTTP・SSE・WebSocketの4種です。Streamable HTTPには、セッションを持つmcpStreamableHttp()と、持たないmcpStatelessStreamableHttp()のヘルパーが用意されています。

elicitationはクライアント機能として一覧表に載っていますが、READMEの該当節は「TODO: add elicitation section」というコメントだけで、本文がありません。使う前に、サンプルコードやソースを直接読む前提になります。Tier 3にはドキュメントの最低ラインがないため、これは規定違反ではありません。

つまずきやすい点が2つあります。1つ目は、Ktorのエンジン依存を自分で足す点です。READMEは「エンジン依存を推移的には追加しない」と書いており、クライアントならktor-client-cio、サーバーならktor-server-nettyを例にしています。2つ目は、mcpStreamableHttp()などのヘルパーがContentNegotiationとMcpJsonを自動で入れる点です。自分でも入れると警告が出ます。

ブラウザベースのクライアントから接続する場合は、KtorのCORSプラグインも必要です。MCP Inspectorで試すときが典型で、READMEは、MCP固有のヘッダーを許可・公開する設定を求めています。

導入コマンドの違い

3言語ともパッケージマネージャーからの導入は数行で済みますが、作法は言語ごとに違います。

Swiftはパッケージマネージャーで依存を宣言する方式です。

dependencies: [
    .package(url: "https://github.com/modelcontextprotocol/swift-sdk.git", from: "0.12.1")
]

PHPはComposerでインストールし、Attributeを付けたクラスをそのままサーバーとして起動します。

composer require mcp/sdk

KotlinはMaven Centralのアーティファクトをビルドスクリプトに追加します。サーバー専用を選ぶ場合は、Ktorのエンジンも合わせて宣言します。

dependencies {
    implementation("io.modelcontextprotocol:kotlin-sdk-server:$mcpVersion")
    implementation("io.ktor:ktor-server-netty:$ktorVersion") // エンジンは利用側で選ぶ
}

Claude Codeから見て何が変わるか

Claude Codeは、接続先のMCPサーバーがどの言語のSDKで書かれているかを意識しません。stdioまたはHTTPのトランスポートでJSON-RPCメッセージを正しくやり取りできれば、Tier 3のSDKで書かれたサーバーにも通常どおり接続できます。判断が要るのは、サーバーを自分で実装する側です。

その判断では、Tierの数字よりも、READMEに書かれた対応仕様・最小言語バージョン・トランスポートの対応欄のほうが手戻りを減らします。TypeScriptとPythonでの実装手順はMCPサーバー自作ガイド、Goで書く場合はGoでMCPサーバーを書く公式SDKの使い方にあります。

Tier 2に上がるには何が要るか

Tier 3の3言語が上のTierへ進むための条件を、基準ページは次のように挙げています。

  • 適合性テストの合格率が80%以上(Tier 3は下限なし)
  • 安定版を最低1回公開する
  • コア機能を扱う基本的なドキュメントを備える
  • 依存の更新方針と、Tier 1に向けた計画(またはTier 2に留まる理由の説明)を公開する

昇格は、SDKの保守者が根拠を添えてissueを立て、SDK Working Groupの承認を受ける流れです。逆にTier 2のSDKは、最新の安定版に対する適合性テストの20%超が4週間続けて落ちるとTier 3に降格されます。

まとめ

Swiftは仕様2025-11-25で止まり、リリースの間隔も空いています。PHPは2026-07-28と従来方式の両対応で更新も頻繁です。Kotlinは月次で更新される一方、elicitationの説明がまだありません。最新仕様の機能が要る実装なら、PHPかKotlinから当たるという順序になります。Java・C#・Goを含む10言語全体のTier一覧はMCP SDK Tierシステムとはにあります。

この記事を共有:XはてブLinkedIn