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]
