-
Notifications
You must be signed in to change notification settings - Fork 172
Slicing the SDK into Multiple Packages #489
Copy link
Copy link
Open
Labels
needs confirmationNeeds confirmation that the PR is actually required or needed.Needs confirmation that the PR is actually required or needed.needs maintainer actionPotentially serious issue - needs proactive fix and maintainer attentionPotentially serious issue - needs proactive fix and maintainer attention
Milestone
Description
Activity
Metadata
Metadata
Assignees
Labels
needs confirmationNeeds confirmation that the PR is actually required or needed.Needs confirmation that the PR is actually required or needed.needs maintainer actionPotentially serious issue - needs proactive fix and maintainer attentionPotentially serious issue - needs proactive fix and maintainer attention
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.