aldettinger opened a new issue, #9342:
URL: https://github.com/apache/camel-quarkus/issues/9342

   Problem
   
   _camel-quarkus-mcp-server_ currently depends on _quarkus-mcp-server-http_, 
which forces the HTTP transport on all users and makes camel-quarkus 
responsible for CVEs in that transport layer. The extension code itself uses 
only types from _quarkus-mcp-server-core_ (ToolManager, ToolResponse, 
TextContent) — the HTTP dependency is a gratuitous coupling.
   
   Design rationale
   
   The upstream Camel _McpServerEngine_ SPI explicitly separates bridge (tool 
selection, execution, timeout) from transport. The _QuarkusMcpServerEngine_ is 
a "native engine" — it delegates to the quarkiverse ToolManager and returns 
consumesServingConfiguration() = false, meaning Camel's own serving 
configuration is ignored in favor of _quarkus.mcp.server.*_. The engine never 
touches transport; that is Quarkus's responsibility. Depending on 
_quarkus-mcp-server-core_ only aligns the dependency graph with this 
already-established contract.
   
   Users choose their transport by adding _quarkus-mcp-server-http_, 
_quarkus-mcp-server-stdio_, or _quarkus-mcp-server-websocket_ to their own 
application POM — the same pattern Quarkus uses elsewhere (e.g. choosing a REST 
JSON provider).
   
   Changes required
   
   Extension runtime (extensions/mcp-server/runtime/pom.xml):
   - Replace io.quarkiverse.mcp:quarkus-mcp-server-http with 
io.quarkiverse.mcp:quarkus-mcp-server-core
   
   Extension deployment (extensions/mcp-server/deployment/pom.xml):
   - Replace _io.quarkiverse.mcp:quarkus-mcp-server-http-deployment_ with 
_io.quarkiverse.mcp:quarkus-mcp-server-core-deployment_
   
   Runtime BOM (poms/bom/pom.xml):
   - Replace the two _quarkus-mcp-server-http_ / 
_quarkus-mcp-server-http-deployment_ entries with _quarkus-mcp-server-core_ / 
_quarkus-mcp-server-core-deployment_ (same version 
${quarkiverse-mcp-server.version})
   
   Integration tests (integration-tests/mcp-server/pom.xml):
   - Add _io.quarkiverse.mcp:quarkus-mcp-server-http_ as a test-scope 
dependency (the test app needs a transport to run against; existing test code 
uses McpAssured.newStreamableClient() over HTTP)
   
   Extension metadata (extensions/mcp-server/runtime/pom.xml description + 
quarkus-extension.yaml):
   - Update description from "Expose ai-tool routes as MCP tools over 
streamable HTTP" to "Expose ai-tool routes as MCP tools" (transport is no 
longer prescribed)
   - Run mvn -N cq:update-quarkus-metadata to regenerate quarkus-extension.yaml
   
   No Java code changes needed — all imports already resolve against 
quarkus-mcp-server-core.
   
   Verification
   
   1. mvn clean install -pl 
extensions/mcp-server/runtime,extensions/mcp-server/deployment -am -Dquickly — 
compiles successfully
   2. mvn verify -pl integration-tests/mcp-server — JVM tests pass
   3. mvn verify -pl integration-tests/mcp-server -Dnative — native tests pass
   
   The documentation would probably need updates. Not sure it still make sense 
to document dual transport support if we adopt this architecture.


-- 
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