Skip to content

Conversation

@felixweinberger
Copy link
Contributor

@felixweinberger felixweinberger commented Nov 10, 2025

Adds SEP-1034 conformance test support to the everything-server by implementing a new tool that demonstrates elicitation with default values for all JSON Schema primitive types.

Motivation and Context

This PR enables conformance testing of SEP-1034 against the Python SDK implementation. SEP-1034 extends MCP elicitation support to include default values for all primitive types (string, integer, number, enum, boolean), not just booleans.

How Has This Been Tested?

All 5 SEP-1034 conformance checks pass when running the conformance test suite against the everything-server:

  • ✅ ElicitationSEP1034StringDefault
  • ✅ ElicitationSEP1034IntegerDefault
  • ✅ ElicitationSEP1034NumberDefault
  • ✅ ElicitationSEP1034EnumDefault
  • ✅ ElicitationSEP1034BooleanDefault

Ran conformance tests:

CleanShot 2025-11-10 at 18 43 50

Breaking Changes

No

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update

Checklist

  • I have read the MCP Documentation
  • My code follows the repository's style guidelines
  • New and existing tests pass locally
  • I have added appropriate error handling
  • I have added or updated documentation as needed

Additional context

The implementation leverages Pydantic Field defaults which automatically generate the correct JSON schema with default fields for the elicitation request. This aligns with how the TypeScript SDK implements SEP-1034.

Adds a new tool `test_elicitation_sep1034_defaults` that demonstrates elicitation with default values for all JSON Schema primitive types (string, integer, number, enum, boolean) as specified in SEP-1034.

This enables conformance testing of SEP-1034 against the Python SDK implementation. All 5 conformance checks pass:
- String default value support
- Integer default value support
- Number default value support
- Enum default value support
- Boolean default value support (regression test)

The implementation uses Pydantic Field defaults which are automatically included in the generated JSON schema passed to the elicitation request.
@felixweinberger felixweinberger force-pushed the fweinberger/sep-1034-conformance branch from 0a894ae to d7d6376 Compare November 10, 2025 18:28
@felixweinberger felixweinberger linked an issue Nov 10, 2025 that may be closed by this pull request
@felixweinberger felixweinberger enabled auto-merge (squash) November 11, 2025 17:41
@felixweinberger felixweinberger merged commit be73067 into main Nov 11, 2025
38 of 39 checks passed
@felixweinberger felixweinberger deleted the fweinberger/sep-1034-conformance branch November 11, 2025 17:44
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.

Implement SEP-1034: Default Values for Elicitation Schemas

3 participants