modelcontextprotocol / modelcontextprotocol/php-sdk
Slicing the SDK into Multiple Packages
@chr-hertel がすでに取り組んでいます。
2026年8月29日 から。
- 主要言語
- PHP
- スター
- 1.6k
- フォーク
- 173
- 平均マージ
- 2日 49分
- マージ済み PR(30日)
- 23
説明
Package slicing
It was discussed already before and we should get this sorted before tagging v1.0: Slicing the monolithic mcp/sdk package into multiple packages.
At least the following packages make sense to me:
mcp/clientmcp/schemamcp/server
Unclear to me right now: how to deal with extensions? But that's not blocking.
Namespaces
In my understanding this comes with some major shifts in namespaces:
everything that is under Mcp\* needs to go into one of those:
Mcp\Client\*Mcp\Schema\*Mcp\Server\*
Exceptions would get distributed into three namespaces below that - with one central interface each.
Monorepo + Subtree Splits
Development (incl. issues and PRs), docs, examples and releases would still happen via the main repository https://github.com/modelcontextprotocol/php-sdk, but the tree packages split into read-only subtrees:
- https://github.com/modelcontextprotocol/php-client
- https://github.com/modelcontextprotocol/php-schema
- https://github.com/modelcontextprotocol/php-server
=> meaning PRs only hit modelcontextprotocol/php-sdk and versioning across all packages is synced.
Cross Dependencies
Decoupling namespaces might be the annoying change here, but we should slice cleanly and enforce proper inter-dependencies:
- Client can use Schema, but not Server
- Server can use Schema, but not Client
- Schema mustn't use Client nor Server
Maybe deptrac or similar to enforce.
This is a maintainer issue - community contributions won't be accepted but closed.
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
評価
この issue はまだ評価されていません。