Aias00 opened a new issue, #7935:
URL: https://github.com/apache/shenyu/issues/7935

   ## Goal
   Make MCP tool schema changes reviewable and allow clients/operators to 
select a known contract before a changing remote tool breaks an agent workflow.
   
   ## Existing capabilities and boundary
   Agent Gateway already has remote catalog refresh, schema validation and 
generation fencing. Extend those capabilities with immutable contract snapshots 
and evolution workflows; do not replace catalog refresh or confuse a refresh 
generation with an externally stable contract version. #6365 concerns 
client-admin registration protocols, not MCP tool contracts.
   
   ## MVP
   - Snapshot each tool's identity and the input/output schema and capability 
metadata actually exposed by the supported MCP implementation. Use a stable 
digest/canonical representation and retain source/generation provenance.
   - Show structural differences and classify a conservative subset: removed 
tool, newly required input, removed accepted input/enum value or incompatible 
type. Treat unknown JSON Schema constructs as requiring review rather than 
claiming a complete compatibility theorem.
   - Allow an operator to approve and pin an exposed tool contract/version. 
Define tool listing/call behavior when the source changes or a pinned contract 
becomes unavailable.
   - Store bounded, redacted regression examples for schema validation. Actual 
tool execution is opt-in and needs a safe test target; a matching schema is not 
proof of unchanged semantics.
   - Integrate with existing catalog publication and generation fencing so 
lists, validators and invocations observe a coherent approved generation.
   
   ## Acceptance criteria
   - [ ] Tests cover additive/required/type/enum/removal changes and 
unsupported schema features, with explicit backward-compatibility direction.
   - [ ] Canonically equivalent schemas do not generate spurious versions; 
snapshot history and per-tool/example sizes have retention limits.
   - [ ] Concurrent refresh/pin/unpin does not mix tool metadata and validators 
from different generations.
   - [ ] A pinned snapshot does not pretend to restore an old remote 
implementation. If the provider cannot serve the pinned contract, calls fail 
with a documented compatibility/unavailability result or an explicitly 
configured adapter.
   - [ ] Tenant/namespace permissions apply to history, pinning and examples; 
credentials and private source metadata are redacted.
   - [ ] Existing unpinned behavior remains compatible; legacy tools without 
output schemas are represented accurately.
   
   Related: #7923 (OpenAPI-derived HTTP tool plan preview), #6365 (separate 
registration protocol work). This is contract governance, not general 
remote-service version control.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to