-
Notifications
You must be signed in to change notification settings - Fork 516
Decouple Handlers and Collections from protocol types #765
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
78218a4
to
82b62cf
Compare
src/ModelContextProtocol.Core/Protocol/ElicitationCapability.cs
Outdated
Show resolved
Hide resolved
…ion) from Capabilities by promoting them to the options types. Also, group all handlers in container classes, for server, I decided to move McpServerHandlers down to Mcp.Core and move the NotificationHandlers there too. Also, Fix ListResourceTemplatesHandler issue.
180dcd0
to
0a0ff59
Compare
src/ModelContextProtocol.Core/Protocol/CompletionsCapability.cs
Outdated
Show resolved
Hide resolved
var notificationHandlers = new NotificationHandlers(); | ||
var requestHandlers = new RequestHandlers(); | ||
|
||
if (options.Capabilities is { } capabilities) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Related to this discussion, does removing the check on the capability make this diverge from the MCP spec?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry, how it would diverge? The logic below will initialize the capabilities if they are null, if a handler is provided.
Decouple Handlers and Collections (e.g. ToolsHandler and ToolsCollection) from Capabilities by promoting them to the options types.
Also, group all handlers in container classes, for server, I decided to move McpServerHandlers down to Mcp.Core and move the NotificationHandlers there too.
Breaking Changes (Migration Summary)
Handlers and collections in the Capabilities types are now obsolete; they've been moved to
McpClientOptions
andMcpServerOptions
.1. Collections
Replace usages of the obsolete collections with the corresponding collections on the options types:
Old
New
2. Handlers
Replace usages of the obsolete handlers with the corresponding handlers on the options types:
Old
New
Mapping (Old → New)