Skip to content
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

Completion Capability as Optional via Server Capabilities #157

Open
PederHP opened this issue Feb 3, 2025 · 0 comments
Open

Completion Capability as Optional via Server Capabilities #157

PederHP opened this issue Feb 3, 2025 · 0 comments
Labels
enhancement New feature or request

Comments

@PederHP
Copy link

PederHP commented Feb 3, 2025

Is your feature request related to a problem? Please describe.
While implementing MCP server support in mcpdotnet, we noticed that unlike other capabilities (resources, tools, prompts, logging, etc.), completion support is implicitly mandatory for all servers. This leads to inefficient implementations where servers must handle completion requests even when they don't provide any meaningful completion functionality, returning empty results. The reason for this isn't immediately clear from the specification documentation.

Describe the solution you'd like
We propose:

  1. Adding an optional "completion" capability flag to ServerCapabilities
  2. Making the completion/complete endpoint optional when this capability is not present
  3. Adding explicit documentation about completion handling requirements
  4. If completion must remain mandatory, documenting the rationale in the specification

Describe alternatives you've considered
Current workaround is to implement empty completion results (this is what we will be doing in mcpdotnet as a fallback if no completion handler is registered), but this creates unnecessary rpc traffic and processing overhead for servers that don't need completion functionality.

Additional context
This change would align completion handling with other MCP capabilities' optional nature. While this would technically be a breaking change, existing servers already supporting completion wouldn't be affected, and clients could easily adapt by checking the capability flag before making completion requests. This could also be a performance gain for clients when dealing with servers that don't provide this capability.

If completion support must remain mandatory for all servers, it would be valuable to document the architectural reasoning behind this decision in the specification.

@PederHP PederHP added the enhancement New feature or request label Feb 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant