Skip to content

Conversation

@DaleSeo
Copy link
Contributor

@DaleSeo DaleSeo commented Jan 13, 2026

Fixes #523

Implments SEP-1319 to comply with the 2025-11-25 MCP spec.

Motivation and Context

To decouple request payloads from RPC method. For more details, see modelcontextprotocol/modelcontextprotocol#1319.

2026-01-13 at 21 30 32
  • Renames all *RequestParam to *RequestParams (plural) to match the updated schema reference
  • Moves _meta (containing progressToken) from the JSON-RPC envelope into the params struct itself
  • Introduces RequestParamsMeta and TaskAugmentedRequestParamsMeta traits to model the spec's interface inheritance

Used modelcontextprotocol/typescript-sdk#1086 as a reference implementation.

How Has This Been Tested?

  • All existing unit and integration tests pass
  • JSON schema tests updated to reflect new struct names
  • Verified _meta field serializes correctly with #[serde(rename = "_meta")]

Breaking Changes

2026-01-13 at 21 19 37

The existing code will compile with warnings with the migration path:

  • Deprecated type aliases provided for all renamed types
  • Handler trait method signatures updated to use new types
  • New meta: Option<Meta> field added to all param structs (defaults to None)

There is a compile-time breaking change, even when using the deprecated alias. When constructing structs directly (not via deserialization), users must now add meta: None:

// Before
CallToolRequestParam {
    name: "tool".into(),
    arguments: None,
    task: None,
}

// After
CallToolRequestParam {
    meta: None,         // NEW REQUIRED FIELD
    name: "tool".into(),
    arguments: None,
    task: None,
}

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

@github-actions github-actions bot added T-core Core library changes T-handler Handler implementation changes T-model Model/data structure changes T-service Service layer changes labels Jan 13, 2026
@github-actions github-actions bot added T-macros Macro changes T-test Testing related changes T-config Configuration file changes T-examples Example code changes labels Jan 13, 2026
@DaleSeo DaleSeo force-pushed the SEP-1319 branch 3 times, most recently from 71593bc to 662e802 Compare January 14, 2026 01:02
@github-actions github-actions bot added the T-transport Transport layer changes label Jan 14, 2026
@DaleSeo DaleSeo force-pushed the SEP-1319 branch 2 times, most recently from dc1f667 to e0c91c4 Compare January 14, 2026 01:08
@DaleSeo DaleSeo marked this pull request as ready for review January 14, 2026 01:09
@github-actions github-actions bot removed the T-transport Transport layer changes label Jan 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

T-config Configuration file changes T-core Core library changes T-examples Example code changes T-handler Handler implementation changes T-macros Macro changes T-model Model/data structure changes T-service Service layer changes T-test Testing related changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement SEP-1319: Decouple Request Payload from RPC Methods

1 participant