Skip to content

Question regarding capabilities negotation #599

@Agent-Hellboy

Description

@Agent-Hellboy

Sorry if this is documented somewhere

The payload I received from the fast-agent client during initialization

body={"id":0,"jsonrpc":"2.0","method":"initialize","params":{"capabilities":{"elicitation":{"form":{},"url":{}},"sampling":{"tools":{}}},"clientInfo":{"name":"fast-agent-mcp","version":"0.4.17"},"protocolVersion":"2025-11-25"}}

form spec I perceived If the client sends a capabilities object, the negotiated set is the intersection of what both sides declare so in this case, I can assume that tools, prompts, and resources are not supported, right?
https://modelcontextprotocol.io/specification/2025-11-25/basic/lifecycle#operation

Operation
During the operation phase, the client and server exchange messages according to the negotiated capabilities. Both parties MUST:

    Respect the negotiated protocol version
    Only use capabilities that were successfully negotiated

Since Fast-Agent doesn't send tools and prompts as capabilities, should I assume that those are not supported?

What does Client and server capabilities establish which optional protocol features will be available during the session. mean?

https://modelcontextprotocol.io/specification/2025-11-25/basic/lifecycle#capability-negotiation

optional protocol features should be referenced in this page, right?

I am very, very confused.

initialise payload from other client

body={"id":0,"jsonrpc":"2.0","method":"initialize","params":{"capabilities":{"elicitation":{},"logging":false,"prompts":true,"resources":true,"roots":{"listChanged":false},"tools":true},"clientInfo":{"name":"cursor-vscode","version":"1.0.0"},"protocolVersion":"2025-06-18"}}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions