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

Reply via email to