[
https://issues.apache.org/jira/browse/CAMEL-24313?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Federico Mariani updated CAMEL-24313:
-------------------------------------
Description:
* Engine conformance kit: an abstract scenario suite shipped as a test-jar from
{{camel-mcp-server}}, driving the official MCP Java SDK *client*
({{McpClient.sync}} + {{HttpClientStreamableHttpTransport}}, same classes
camel-openai uses) against a running server: initialize session, tools/list
(tag filtering, default-pool exclusion, name-collision refusal), tools/call
(success, argument error, sanitized execution error, timeout), list_changed
notification on route stop/start, session termination.
* The kit is the cross-engine behavioural contract: it runs against the vertx
engine in this repo (IT in camel-mcp-server-engine-vertx on the Vert.x main
HTTP server), against the Spring AI 2.x engine in the camel-spring-boot repo,
and against the quarkus-mcp-server engine in the camel-quarkus repo — behavior
cannot drift between engines.
* Bridge unit tests with a mock engine (no HTTP): tag selection, collision
policy, sanitization, timeout mapping, listener-driven add/remove.
* (Superseded: the previously planned Spring Boot servlet SSE verification IT
is no longer needed — the Spring engine serves through Spring AI's async
transports, not through the Camel servlet binding.)
----
_This issue was drafted by Claude Code on behalf of Federico Mariani._
was:
* Integration test using the official MCP Java SDK client against the running
server: initialize session, tools/list, tools/call (success, argument error,
execution error, timeout), list_changed notification on route stop/start.
* Structure these scenarios as a reusable conformance kit: the same scenarios
must be runnable against any {{McpServerEngine}} implementation, so the
camel-quarkus extension can run them against its quarkus-mcp-server-backed
engine (in the camel-quarkus repo) and behavior cannot drift between engines.
* Spring Boot servlet SSE verification IT (in the camel-spring-boot repo):
assert SSE events arrive before stream completion through the servlet binding —
the servlet path flushes per write ({{DefaultHttpBinding.copyStream}}) but is
not on the verified SSE list (camel-a2a docs verify only Vert.x/platform-http,
Undertow, Jetty).
----
_This issue was drafted by Claude Code on behalf of Federico Mariani._
> Tests: MCP SDK client IT and Spring Boot servlet SSE verification
> -----------------------------------------------------------------
>
> Key: CAMEL-24313
> URL: https://issues.apache.org/jira/browse/CAMEL-24313
> Project: Camel
> Issue Type: Sub-task
> Components: camel-ai
> Reporter: Federico Mariani
> Assignee: Federico Mariani
> Priority: Major
> Labels: ai, mcp
>
> * Engine conformance kit: an abstract scenario suite shipped as a test-jar
> from {{camel-mcp-server}}, driving the official MCP Java SDK *client*
> ({{McpClient.sync}} + {{HttpClientStreamableHttpTransport}}, same classes
> camel-openai uses) against a running server: initialize session, tools/list
> (tag filtering, default-pool exclusion, name-collision refusal), tools/call
> (success, argument error, sanitized execution error, timeout), list_changed
> notification on route stop/start, session termination.
> * The kit is the cross-engine behavioural contract: it runs against the vertx
> engine in this repo (IT in camel-mcp-server-engine-vertx on the Vert.x main
> HTTP server), against the Spring AI 2.x engine in the camel-spring-boot repo,
> and against the quarkus-mcp-server engine in the camel-quarkus repo —
> behavior cannot drift between engines.
> * Bridge unit tests with a mock engine (no HTTP): tag selection, collision
> policy, sanitization, timeout mapping, listener-driven add/remove.
> * (Superseded: the previously planned Spring Boot servlet SSE verification IT
> is no longer needed — the Spring engine serves through Spring AI's async
> transports, not through the Camel servlet binding.)
> ----
> _This issue was drafted by Claude Code on behalf of Federico Mariani._
--
This message was sent by Atlassian Jira
(v8.20.10#820010)