Add Serena gateway tests and document stdio/HTTP behavioral differences #369
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Created test suite to validate Serena MCP server behavior through the MCP gateway, revealing fundamental protocol differences between stdio and HTTP transports.
Changes
New test script
test/serena-mcp-tests/test_serena_via_gateway.shMakefile targets
make test-serena-gateway- Run gateway testsmake test-serenadescription to clarify direct connectionDocumentation
GATEWAY_TEST_FINDINGS.md- Behavioral analysisIMPLEMENTATION_SUMMARY.md- Implementation detailsREADME.mdwith usage instructionsKey Finding
Stdio-based MCP servers like Serena require persistent connection state:
Each HTTP request creates a new session. Serena rejects tool calls outside the initialization stream. This is expected given current gateway architecture - tests document the limitation and provide regression baseline for future session persistence features.
Test Results
Working: Container startup, initialization handshake, error handling
Limited: Tool execution requires connection-level session state not maintained across HTTP requests
Both test suites can run independently for comparison.
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.