Croway opened a new pull request, #8950:
URL: https://github.com/apache/camel-quarkus/pull/8950

   Fixes #8949. The Quarkus runtime of 
[CAMEL-24308](https://issues.apache.org/jira/browse/CAMEL-24308) 
(camel-mcp-server).
   
   > Targets the **camel-main** branch: `camel-mcp-server-api` is new in Camel 
4.22. CI additionally needs the camel side 
([apache/camel#25306](https://github.com/apache/camel/pull/25306)) merged and 
its snapshot published — draft until then. Verified locally against the 
installed 4.22.0-SNAPSHOT artifacts.
   
   ## What this adds
   
   A JVM-only `camel-quarkus-mcp-server` extension exposing `ai-tool` routes as 
MCP tools over streamable HTTP, served through the quarkiverse 
[quarkus-mcp-server](https://github.com/quarkiverse/quarkus-mcp-server) 
(1.13.1) — per the design recorded on CAMEL-24308: Quarkus reuses its native 
MCP ecosystem (dev UI, guardrails, CDI, config) instead of the MCP Java SDK.
   
   - **Runtime**: depends on `camel-mcp-server-api` (the runtime-agnostic 
bridge + `McpServerEngine` SPI) + `quarkus-mcp-server-http`. 
`QuarkusMcpServerEngine` maps `toolAdded`/`toolRemoved` onto the programmatic 
`ToolManager` API (`newTool(...).addArgument(...).setHandler(...).register()` / 
`removeTool`), with tool arguments derived from the ai-tool `ParameterDef` 
metadata and sanitized results mapped to `ToolResponse.success/error`. The MCP 
Java SDK and Reactor never reach the classpath.
   - **Deployment**: `RuntimeCamelContextCustomizerBuildItem` (gated on 
`quarkus.camel.mcp-server.enabled`) binds the engine into the Camel registry 
(the bridge resolves registry-first) and adds the `McpServerBridge` as a 
CamelContext-managed service.
   - **Config**: `quarkus.camel.mcp-server.enabled` (default true) / `.tags` 
(unset ⇒ nothing exposed — the security default) / `.tool-timeout` (20s). 
Serving concerns (path, transports, dev UI, auth, guardrails) stay fully owned 
by `quarkus.mcp.server.*`, per the CAMEL-24311 precedence rule.
   - **Docs**: generated extension page with hand-written intro/usage (tool 
semantics vs serving ownership, quarkus-mcp-server docs link, `@Tool` 
coexistence note, Camel Main/Spring Boot pointers).
   - Housekeeping done: `cq:update-quarkus-metadata`, docs regen, 
`process-resources -Pformat` (BOM entries for 
`quarkus-mcp-server-http(-deployment)` under `quarkiverse-mcp-server.version`, 
catalog regen).
   
   ## Testing
   
   `integration-tests-jvm/mcp-server` runs the engine conformance scenarios 
(CAMEL-24313) with the official MCP SDK client over streamable HTTP: 
tag-filtered `tools/list` (untagged default pool excluded), call success, 
execution error sanitized to a generic message, per-call timeout, and the tools 
list following route stop/start (`tools/list_changed` path). All 5 tests green.
   
   ---
   _This PR was written by Claude Code on behalf of Federico Mariani (@Croway)._
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to