[ 
https://issues.apache.org/jira/browse/CAMEL-24332?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claus Ibsen resolved CAMEL-24332.
---------------------------------
    Resolution: Fixed

Merged via PR https://github.com/apache/camel/pull/25395

> camel-ai-tool - MCP tool annotations (readOnly/destructive/idempotent hints) 
> as endpoint metadata
> -------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-24332
>                 URL: https://issues.apache.org/jira/browse/CAMEL-24332
>             Project: Camel
>          Issue Type: Improvement
>          Components: camel-ai
>            Reporter: Federico Mariani
>            Priority: Major
>             Fix For: 4.22.0
>
>
> Follow-up from CAMEL-24308 (camel-mcp-server).
> MCP tools can carry optional behavioral *hints* ({{ToolAnnotations}} in the 
> MCP specification): {{readOnlyHint}} (the tool only reads), 
> {{destructiveHint}} (may perform irreversible updates), {{idempotentHint}} 
> (safe to retry with the same arguments), {{openWorldHint}} (interacts with 
> external systems), plus a display {{title}}. Agent clients use them for 
> per-tool policy — e.g. auto-approving read-only tools while requiring 
> explicit user confirmation before destructive ones, or retrying idempotent 
> calls.
> Today an {{ai-tool}} route cannot declare any of these. Proposed scope:
> * New optional {{@UriParam}} options on the ai-tool consumer endpoint, e.g. 
> {{ai-tool:delete_order?destructive=true&idempotent=false&readOnly=false&title=Delete
>  order}}.
> * Carry them on {{AiToolSpec}} and through the {{McpServerTool}} SPI in 
> camel-mcp-server-api.
> * Map them in every engine — all three APIs already support them: MCP Java 
> SDK {{McpSchema.ToolAnnotations}} (Vert.x engine), quarkiverse 
> {{ToolManager.ToolDefinition.setAnnotations()}} (camel-quarkus), Spring AI 
> {{@McpTool(annotations = ...)}} / sync tool specification (camel-spring-boot).
> * Annotations are advisory/untrusted per the MCP spec — document that they 
> are hints for clients, not enforcement.
> Note: this extends the {{McpServerTool}} SPI ({{@since 4.22}}). Deciding the 
> shape before Camel 4.22 ships avoids evolving a released SPI.
> ----
> _This issue was drafted by Claude Code on behalf of Federico Mariani._



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to