Skip to content

Implement SEP-1319: Decouple Request Payload from RPC Methods - #617

Merged
alexhancock merged 6 commits into
modelcontextprotocol:mainfrom
DaleSeo:SEP-1319
Jan 16, 2026
Merged

Implement SEP-1319: Decouple Request Payload from RPC Methods#617
alexhancock merged 6 commits into
modelcontextprotocol:mainfrom
DaleSeo:SEP-1319

Conversation

@DaleSeo

@DaleSeoDaleSeo commented Jan 13, 2026

Copy link
Copy Markdown
Member

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:

// BeforeCallToolRequestParam{name:"tool".into(),arguments:None,task:None,}// AfterCallToolRequestParam{meta:None,// NEW REQUIRED FIELDname:"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-actionsgithub-actionsBot added T-core Core library changes T-handler Handler implementation changes T-model Model/data structure changes T-service Service layer changes T-macros Macro changes T-test Testing related changes T-config Configuration file changes T-examples Example code changes T-transport Transport layer changes labels Jan 13, 2026
@DaleSeo
DaleSeo marked this pull request as ready for review January 14, 2026 01:09
@github-actionsgithub-actionsBot removed the T-transport Transport layer changes label Jan 14, 2026
@alexhancock
alexhancock self-requested a review January 16, 2026 17:16
@alexhancock
alexhancock merged commit 9e881a6 into modelcontextprotocol:mainJan 16, 2026
11 checks passed
@github-actionsgithub-actionsBot mentioned this pull request Jan 21, 2026
takumi-earth pushed a commit to earthlings-dev/rmcp that referenced this pull request Jan 27, 2026
…ontextprotocol#617)
* feat: implement SEP-1319 Decouple Request Payload from RPC Methods
* test: update tests
* fix: update handler trait methods to use new types
* fix: update examples
* fix: correct deprecation version
* fix: update wrapper macros to use new *Params type names
@github-actionsgithub-actionsBot mentioned this pull request Jan 30, 2026
@DaleSeoDaleSeo mentioned this pull request Feb 16, 2026
9 tasks
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

T-configConfiguration file changesT-coreCore library changesT-examplesExample code changesT-handlerHandler implementation changesT-macrosMacro changesT-modelModel/data structure changesT-serviceService layer changesT-testTesting related changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement SEP-1319: Decouple Request Payload from RPC Methods

2 participants

@DaleSeo@alexhancock