-
Notifications
You must be signed in to change notification settings - Fork 792
Conformance tests #767
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conformance tests #767
Conversation
Introduces a new conformance-tests module with initial structure: - server-servlet: Placeholder servlet server with basic hello_world tool - client-jdk-http-client: Skeleton client implementation (not yet functional) This sets up the foundation for future conformance testing of the Java MCP SDK. Signed-off-by: Dariusz Jędrzejczyk <dariusz.jedrzejczyk@broadcom.com>
Expand conformance server to pass 36/40 official MCP tests (90%). - Add 15 tools covering all content types and behaviors - Add 4 prompts, 3 resources, 1 resource template - Implement completion, SEP-1034 and SEP-1330 elicitation - Enable proper server capabilities - Document validation results and testing instructions Known limitations: progress notifications timeout, resource subscriptions not implemented, DNS rebinding protection missing. Signed-off-by: Dariusz Jędrzejczyk <dariusz.jedrzejczyk@broadcom.com>
…ols_call scenarios Add JDK HTTP client conformance tests using Streamable HTTP transport. Implements two scenarios: initialize (handshake only) and tools_call (list and invoke add_numbers tool). Both scenarios pass conformance tests. Signed-off-by: Dariusz Jędrzejczyk <dariusz.jedrzejczyk@broadcom.com>
Implement remaining client conformance scenarios (excluding auth): - elicitation-sep1034-client-defaults: Validates default value application from JSON schemas (SEP-1034) - sse-retry: Tests SSE reconnection behavior (SEP-1699) Added createClientWithElicitation() method with elicitation handler that automatically applies defaults from schema properties. Handler supports string, integer, number, enum, and boolean default values. Test results for elicitation scenario: 5/5 checks passing - String defaults applied correctly - Integer defaults applied correctly - Number defaults applied correctly - Enum defaults applied correctly - Boolean defaults applied correctly Updated documentation with scenario descriptions and usage examples.
Signed-off-by: Dariusz Jędrzejczyk <dariusz.jedrzejczyk@broadcom.com>
Signed-off-by: Dariusz Jędrzejczyk <dariusz.jedrzejczyk@broadcom.com>
Signed-off-by: Dariusz Jędrzejczyk <dariusz.jedrzejczyk@broadcom.com>
Signed-off-by: Dariusz Jędrzejczyk <dariusz.jedrzejczyk@broadcom.com>
Signed-off-by: Dariusz Jędrzejczyk <dariusz.jedrzejczyk@broadcom.com>
tzolov
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM,
One minor thing. Perhaps we can use logger instead of sys out in ConformanceJdkClientMcpClient.
Signed-off-by: Dariusz Jędrzejczyk <dariusz.jedrzejczyk@broadcom.com>
The use of console.log('✅ Connection closed successfully');
console.error('❌ Error:', error); |
Add a starting setup for conformance tests
Motivation and Context
In order to comply with the recently proposed SDK tiering system, this PR starts the path to regular conformance evaluation.
How Has This Been Tested?
The current setup uses the basic building blocks that leverage the JDK HttpClient and the Servlet spec and validate the synchronous stack.
Breaking Changes
None.
Types of changes
Checklist
Additional context
No.