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]
