modelcontextprotocol / modelcontextprotocol/php-sdk
Slicing the SDK into Multiple Packages
@chr-hertel ci sta già lavorando.
Dal 29/8/2026.
- Lingua principale
- PHP
- Stelle
- 1.6k
- Fork
- 173
- Merge medio
- 2g 49m
- PR unite (30g)
- 23
Descrizione
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.
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Valutazione
Questa issue non è ancora stata valutata.