AI Tool
Framework-agnostic consumer endpoint that registers a Camel route as an LLM tool in the shared AiToolRegistry.
What’s inside
-
AI Tool component, URI syntax:
ai-tool:toolName
Please refer to the above links for usage and configuration details.
Maven coordinates
<dependency>
<groupId>org.apache.camel.springboot</groupId>
<artifactId>camel-ai-tool-starter</artifactId>
</dependency> Spring Boot Auto-Configuration
The starter supports 13 options, which are listed below.
| Name | Description | Default | Type |
|---|---|---|---|
camel.component.ai-tool.arg-schema | Raw JSON Schema for tool input parameters. Supports inline JSON and resource references (classpath:, file:, resource:). Mutually exclusive with the parameter multi-value options. Use for nested objects, arrays, oneOf, and other complex schemas. | String | |
camel.component.ai-tool.autowired-enabled | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | Boolean |
camel.component.ai-tool.bridge-error-handler | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. Important: This is only possible if the 3rd party component allows Camel to be alerted if an exception was thrown. Some components handle this internally only, and therefore bridgeErrorHandler is not possible. In other situations we may improve the Camel component to hook into the 3rd party component and make this possible for future releases. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | Boolean |
camel.component.ai-tool.configuration | The component configuration. The option is a org.apache.camel.component.ai.tool.AiToolConfiguration type. | AiToolConfiguration | |
camel.component.ai-tool.description | Human-readable description of what this tool does. Passed verbatim to the LLM; be precise and action-oriented. When omitted, defaults to the tool name. | String | |
camel.component.ai-tool.destructive-hint | MCP hint that the tool may perform destructive or irreversible updates. Advisory for MCP clients; not enforced by Camel. | false | Boolean |
camel.component.ai-tool.enabled | Whether to enable auto configuration of the ai-tool component. This is enabled by default. | Boolean | |
camel.component.ai-tool.idempotent-hint | MCP hint that repeating the tool call with the same arguments has no additional effect. Advisory for MCP clients; not enforced by Camel. | false | Boolean |
camel.component.ai-tool.open-world-hint | MCP hint that the tool interacts with external systems outside the application’s control. Advisory for MCP clients; not enforced by Camel. | false | Boolean |
camel.component.ai-tool.parameters | Tool input parameters. Format: parameter.NAME=TYPE, parameter.NAME.description=TEXT, parameter.NAME.required=true or false, parameter.NAME.enum=val1,val2. Supported types: string, integer, number, boolean. Mutually exclusive with argSchema. This is a multi-value option with prefix: parameter. | String> | |
camel.component.ai-tool.read-only-hint | MCP hint that the tool only reads data and does not modify state. Advisory for MCP clients; not enforced by Camel. | false | Boolean |
camel.component.ai-tool.tags | Comma-separated list of tags used to group tools. Producers filter the registry by these tags to select which tools to expose to the LLM. When omitted, the tool goes into a default pool available to all producers. | String | |
camel.component.ai-tool.title | Optional display title for MCP tool listings. Advisory hint for MCP clients only. | String |