SEP-3172: Add optional recovery metadata to ToolAnnotations - #3172
Open
RohithGajawada45 wants to merge 6 commits into
Open
SEP-3172: Add optional recovery metadata to ToolAnnotations#3172RohithGajawada45 wants to merge 6 commits into
RohithGajawada45 wants to merge 6 commits into
Conversation
Updated author information and improved formatting in the recovery metadata proposal.
Updated the SEP index to include a new SEP and adjusted the table formatting.
Add SEP-3172 proposal for recovery metadata in ToolAnnotations.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
SEP: Add optional recovery metadata to
ToolAnnotationsSummary
This PR proposes an additive extension to
ToolAnnotationsthat allows a tool to declare an optional compensating operation for workflow recovery.The proposal is intentionally narrow in scope. It does not define workflow execution, Saga semantics, distributed transactions, retry policies, or checkpointing. Instead, it standardises a way for tools to advertise existing recovery relationships through MCP metadata so that orchestrators can discover them in a portable, machine-readable way.
The proposal is fully backward compatible: servers and clients that do not recognise the new field continue to behave exactly as they do today.
A runnable reference implementation is included to demonstrate the proposal's behavior independently of any specific MCP implementation.
Motivation
Today, MCP tool metadata can describe properties such as whether a tool is destructive or idempotent, but it provides no machine-readable way to express how an already-completed operation may be compensated if a later step in the same workflow fails.
Several orchestration frameworks implement workflow recovery internally, but those recovery relationships are generally framework-specific rather than discoverable through the tool description itself. This proposal explores whether that relationship should be expressible as optional protocol metadata.
Included in this PR
recoveryfield forToolAnnotationsFeedback requested
The primary question I'd appreciate feedback on is architectural rather than syntactic:
Feedback on the proposed API shape and overall approach is also very welcome.