Skip to content

feat(mcp): add streamable HTTP transport support#179

Merged
adamw7 merged 5 commits into
mainfrom
feat/mcp-streamable-http-transport
Jun 2, 2026
Merged

feat(mcp): add streamable HTTP transport support#179
adamw7 merged 5 commits into
mainfrom
feat/mcp-streamable-http-transport

Conversation

@adamw7
Copy link
Copy Markdown
Owner

@adamw7 adamw7 commented Jun 2, 2026

Summary

  • Add streamable HTTP transport support for MCP
  • Add nightly CI workflow for integration tests with separate job for streamable HTTP
  • Fix OpenAddressingMap.put to return the previous value (or null) per the Map contract
  • Fix NoMemoryUniquenessCheck to close the data source when a duplicate is found

Test plan

  • mvn test passes locally
  • Integration test McpStreamableHttpIT covers the new transport end-to-end
  • MapTest — new parameterized tests putNewKeyReturnsNull and putExistingKeyReturnsPreviousValue verify the put contract across all implementations
  • Nightly CI workflow runs integration tests at midnight

🤖 Generated with Claude Code

adamw7 and others added 5 commits June 1, 2026 19:54
Add configurable transport mode to the MCP server, supporting both
stdio (default) and streamable-http transports. Refactor Main to
resolve transport mode from --transport.mode= CLI arg, and extract
shared tool registration into McpConfiguration.registerTools().

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…flow

Add McpStreamableHttpIT that starts the MCP server via @SpringBootTest
with streamable-http transport on a random port, creates an
HttpClientStreamableHttpTransport client, and verifies the
uniqueness_check tool returns correct results over HTTP.

The test is excluded from mvn install and only runs when the
integration-tests Maven profile is activated. A dedicated GitHub
Actions workflow (.github/workflows/integration-tests.yml) runs
mvn verify -P integration-tests on push and PRs.

Also adds maven-failsafe-plugin to root pom pluginManagement.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace push/PR triggers with a scheduled cron trigger
to reduce CI load and run integration tests once per day.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
NoMemoryUniquenessCheck.exec returned early on the non-unique path without closing the data source, leaking the open scanner/result set. Close it before returning, matching the successful-check path.

Add a test that wraps the source in a close-tracking spy and asserts it is closed when a duplicate is detected.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Map.put must return the previous value for an existing key, or null for
a new key. Both branches were incorrectly returning the new value.

Also adds two parameterized tests covering both cases across all
map implementations.
@adamw7 adamw7 merged commit f46d549 into main Jun 2, 2026
3 checks passed
@adamw7 adamw7 deleted the feat/mcp-streamable-http-transport branch June 2, 2026 09:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant