Skip to content

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

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

feat(mcp): add streamable HTTP transport support#178
adamw7 merged 4 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 to the MCP server, alongside the existing transport.
  • Add a streamable HTTP integration test with a separate CI workflow.
  • Run the integration-tests workflow nightly at midnight only (was running more frequently).
  • Fix a resource leak in NoMemoryUniquenessCheck: the non-unique path returned early without closing the data source.

Bug fix detail

NoMemoryUniquenessCheck.exec returned immediately when a duplicate row was found, skipping close(dataSource) (only the successful-check path closed it). This leaked the open scanner / result set on every non-unique check. The fix closes the source before the early return, matching the success path.

Testing

  • New UniquenessCheckTest.notUniquePathClosesDataSource wraps the source in a close-tracking spy and asserts it is closed when a duplicate is detected. Verified it fails without the fix and passes with it.
  • mvn -pl data test -Dtest=UniquenessCheckTest → 39 tests pass.

🤖 Generated with Claude Code

adamw7 and others added 4 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>
@adamw7 adamw7 merged commit 14c129a into main Jun 2, 2026
3 checks passed
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