- 
                Notifications
    You must be signed in to change notification settings 
- Fork 704
Description
Expected Behavior
The McpSchema.Tool class should support the annotations attribute.
Current Behavior
The McpSchema.Tool class currently only has the name, description, and inputSchema properties.
Context
I believe we need to support the annotations property in the McpSchema.Tool class for the following reasons:
- 
It is part of the MCP specification: As stated in the MCP specification (https://modelcontextprotocol.io/docs/concepts/tools#tool-definition-structure 
 ), this property is very useful as it allows the MCP server to provide additional descriptions about a tool’s behavior to the client.
- 
Better integration with the Spring ecosystem (e.g., Spring AI): Supporting this property would enable better interoperability with frameworks like Spring AI. In Spring AI, there is a returnDirectattribute for tools(https://docs.spring.io/spring-ai/reference/1.1-SNAPSHOT/api/tools.html#_return_direct), which indicates that the result of the tool call should be returned directly to the user instead of being sent back to the model. However, sinceMcpSchema.Toolcurrently lacks a way to carry this attribute,returnDirectbecomes ineffective in MCP scenarios(for details on this point, please refer to: @Tool returnDirect Attribute Ignored spring-projects/spring-ai#3481 (comment) ). I believe it's a good approach to pass this value throughannotations.
- 
Support and extension in other language SDKs: The annotationsproperty is already supported in MCP SDKs for languages such asPythonandSwift, and each has extended it in their own way.