feat: add support for custom requests #590
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
#580 and #556 introduced support for custom notifications,
so this PR takes the next logical step and adds support for custom requests:
CustomRequestandCustomResultmodel types, wires them into the client/serverrequest and result unions, and allows
ClientRequest::method()to return the dynamic methodname.
CustomRequestso_metais carried throughextensions; adds default
on_custom_requesthandlers that returnMETHOD_NOT_FOUNDunlessoverridden.
EmptyObjectstrictness.
crates/rmcp/tests/test_custom_request.rs.For additional testing, I used this locally to update Codex to use a custom
request instead of a custom notification so that it gets an "ack" from the MCP
server to ensure it has processed the update before sending more messages:
openai/codex#8142.