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/client
mcp/schema
mcp/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:
=> 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.
Package slicing
It was discussed already before and we should get this sorted before tagging v1.0: Slicing the monolithic
mcp/sdkpackage into multiple packages.At least the following packages make sense to me:
mcp/clientmcp/schemamcp/serverUnclear 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:
=> meaning PRs only hit
modelcontextprotocol/php-sdkand 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:
Maybe deptrac or similar to enforce.
This is a maintainer issue - community contributions won't be accepted but closed.