fix(supervisor): preserve MCP versions in runtime config - #3199
Conversation
Carry canonical MCP version allowlists through both policy-loading paths into the supervisor's typed L7 endpoint configuration. Reject malformed, ambiguous, or cross-protocol version data during policy activation so invalid configuration cannot remove MCP inspection from a selected route. Signed-off-by: Shiju <shiju@nvidia.com>
johntmyers
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
This focused policy/runtime change is project-valid, but the initial review found one compatibility regression in MCP version validation.
Action required: @shiju-nv, make MCP protocol matching case-insensitive at the new version-validation boundary and add mixed-case YAML and protobuf regression coverage.
Blocking findings:
GATOR-a6d4dc0e-01: mixed-case MCP protocol spellings can now make policy activation fail.
Carried findings:
- None
Non-blocking suggestions:
- None
Gator metadata
- Validation: Focused supervisor/policy prerequisite for accepted MCP version-profile work in #2174
- Docs: Not needed; this patch carries already-documented internal runtime metadata and does not change the user-facing contract
- Checks: DCO, vouch, Branch Checks, and Helm gate are green for the current head; required E2E dispatch waits for review feedback
- E2E:
test:e2eis required for policy enforcement/supervisor behavior but has not been dispatched while the blocker remains - Head SHA:
a6d4dc0e7231efe8f1fcbbaa83f10a837e3eea61 - Base SHA:
592df3e01489b3fd2af5573e1feb043108596aed - Merge base SHA:
592df3e01489b3fd2af5573e1feb043108596aed - Patch ID:
6e491b076331776f41e4cd72cc46bc28ca56b416 - Gator payload:
8 - Review mode:
initial - Previous reviewed SHA: none
- Review budget exhausted: no
- Maintainer decision required: no
- Next state:
gator:in-review
Validate materialized MCP version metadata through the parsed L7 protocol so supported mixed-case spellings remain valid. Cover YAML and protobuf ingress with pinned-default regression tests. Signed-off-by: Shiju <shiju@nvidia.com>
|
Label |
johntmyers
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
Thanks @shiju-nv. I reviewed head dab4e69a4b62b100c816498c8286d36385fdaece; the parsed L7Protocol::Mcp comparison restores case-insensitive validation, and the new YAML and protobuf cases cover the mixed-case paths requested in the prior review. The carried finding is resolved, and the independent follow-up review found no new blocking issues.
Blocking findings:
- No blocking findings remain
Carried findings:
GATOR-a6d4dc0e-01: resolved by the current head; the Gator-owned review thread has been resolved
Gator metadata
- Validation: Focused supervisor/policy prerequisite for accepted MCP version-profile work in #2174
- Docs: Not needed; this patch carries internal runtime metadata and does not change the user-facing contract
- Checks: Current-head Branch Checks and Helm gate are green; E2E is queued
- E2E:
test:e2eapplied; E2E Label Help required rerunning current-head run33986107128, which is queued - Head SHA:
dab4e69a4b62b100c816498c8286d36385fdaece - Base SHA:
592df3e01489b3fd2af5573e1feb043108596aed - Merge base SHA:
592df3e01489b3fd2af5573e1feb043108596aed - Patch ID:
bd8de98fbbe374cee8a229cbae3f8819110250d9 - Gator payload:
8 - Review mode:
follow_up - Previous reviewed SHA:
a6d4dc0e7231efe8f1fcbbaa83f10a837e3eea61 - Review budget exhausted: no
- Maintainer decision required: no
- Next state:
gator:watch-pipeline
Summary
Carry the configured MCP version allowlist through YAML and protobuf policy loading into the supervisor's typed L7 endpoint configuration. Reject invalid or ambiguous version configuration during policy activation instead of allowing it to produce an MCP endpoint without L7 inspection.
This is a prerequisite for selecting one permitted MCP version for each request. It does not change request parsing or forwarding behavior.
Related Issue
Related to #2174 and #3092.
Changes
mcp_versionsfield to endpoint data produced from YAML and protobuf policies, including the pinned default when no explicit list is configured.L7EndpointConfigas typedMcpProtocolVersionvalues and require MCP endpoints to have a non-empty, unique list in canonical order.mcp.versionsand flattenedmcp_versions.Testing
mise run pre-commitpassesChecklist