Slicing the SDK into Multiple Packages
@chr-hertel is already working on this.
Since Aug 29, 2026.
Assessment
This issue has not been assessed yet.
Description
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.
- Dominant language
- PHP
- Stars
- 1.6k
- Forks
- 173
- Avg merge
- 2d 49m
- Merged PRs (30d)
- 23
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from modelcontextprotocol/php-sdk
-
[Server] Handler type uses bare Closure, hard to decorate RegistryInterface under strict PHPStan OpenServer
Difficulty 1/5 Under an hour Newbie friendliness 78/100
modelcontextprotocol/php-sdk#468 · 2 comments ·
-
needs confirmation needs maintainer action Server
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
modelcontextprotocol/php-sdk#398 · 1 reaction ·
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
modelcontextprotocol/php-sdk#370 ·
-
enhancement
Difficulty 4/5 3-5 days Newbie friendliness 55/100
modelcontextprotocol/php-sdk#510 · 1 comment ·
-
bug
Difficulty 4/5 3-5 days Newbie friendliness 45/100
modelcontextprotocol/php-sdk#504 ·
All issues in modelcontextprotocol/php-sdk
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
-
a11y admissions.uiowa.edu needs grooming SiteImprove best practice
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
-
Save States Menu Open
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
pluginsGLPI/datainjection#673 ·