Skip to content

Conversation

@cliffhall
Copy link
Member

@cliffhall cliffhall commented Dec 3, 2025

Description

Add support for all enum types in new MCP spec by updating the Elicitation request which asks for all the supported data types.

Changes

  • In everything.ts
    • In elcitiation request,
      • Update all fields to have a title property
      • Add all 5 enum types supported by the SDK
        • legacy titled single select
        • titled single select - titled multi select - untitled single select - untitled multi select
      • Use faux ids (e.g., hero-1, hero-2) for enum value when titled to illustrate the difference.

Server Details

  • Server: Everything
  • Changes to: Elicitation

Motivation and Context

SEP-1330 made the previous style of enum schema legacy since it doesn't follow the JSON schema for adding titles to enums. It adds a proper schema for titled enum and also select and multi select variations. All told, there are 5 ways you can define an enum now, depending upon your needs.

How Has This Been Tested?

Using this PR added to the Inspector, which supports all the enum types.

Elicitation Form Elicitation Result

Related issues

#3041

Breaking Changes

Yes. Clients that do not use the new version of the spec will ignore these fields.

We should do a follow-on PR (or in the rebuild of this server) and pass the negotiated protocol version to the everything server so that it can omit these fields unless the latest version is supported.

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 Protocol Documentation
  • My changes follows MCP security best practices
  • I have updated the server's README accordingly
  • I have tested this with an LLM client
  • My code follows the repository's style guidelines
  • New and existing tests pass locally
  • I have added appropriate error handling
  • I have documented all environment variables and configuration options

Additional context

For more on the various enum types now supported by the protocol, see SEP-1330

* In everything.ts
  - In elcitiation request,
    - Update all fields to have a title property
    - Add all 5 enum types supported by the SDK
      - legacy titled single select
      - titled single select
      - titled multi select
      - untitled single select
      - untitled multi select
    - Use faux ids (e.g., hero-1, hero-2) for enum value when titled to illustrate the difference.
olaservo
olaservo previously approved these changes Dec 10, 2025
Copy link
Member

@olaservo olaservo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Besides the small typos, this looks good to me and is working with the Inspector from your branch. 👍

@olaservo
Copy link
Member

Just noticed, do we need to update the Readme?

Copy link
Member

@olaservo olaservo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, meant to click request changes for minor issues.

@cliffhall cliffhall requested a review from olaservo December 11, 2025 22:52
@olaservo olaservo merged commit 792c474 into modelcontextprotocol:main Dec 12, 2025
19 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.

2 participants