Skip to content

fix(policy)!: keep MCP tool selectors in agent proposals - #4736

Open
shiju-nv wants to merge 2 commits into
NVIDIA:mainfrom
shiju-nv:fix/4679-mcp-proposal-fields
Open

shiju-nv wants to merge 2 commits into
NVIDIA:mainfrom
shiju-nv:fix/4679-mcp-proposal-fields

Conversation

@shiju-nv

@shiju-nv shiju-nv commented Oct 20, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Keep MCP tool selectors intact through agent proposals and approval. Show their
scope in CLI and Draft review, and require manual approval when the prover cannot
model MCP permissions.

Related Issue

Closes #4679

Changes

  • Preserve supported selectors and versions; reject unsupported proposal fields.
  • Display allow/deny selectors safely in CLI and TUI Draft review.
  • Mark MCP policies unsupported by the prover and refresh cached clean verdicts
    before approval.

Release Notes

Target the next minor release. Unsupported proposal fields now return an error.
MCP policies require human review even in automatic mode.

Testing

  • Six targeted tests and faulty-base/head regression controls pass.
  • Unit regressions added.
  • Hosted E2E for the updated head (pending; test:e2e enabled).

Formatting passes. Local Clippy is deferred to hosted CI.

Checklist

  • Conventional Commits.
  • Signed off (DCO).
  • Existing advisor guidance updated.

@github-actions

Copy link
Copy Markdown

Compatibility review (advisory)

New or updated breaking changes; see the full report for all findings.

1. api-behavior — No explicit risk acceptance found

POST /v1/proposals changed unsupported fields such as endpoint path from silently ignored during parsing to 400 invalid_proposal.

  • Impact: Existing agents that relied on the documented ignore behavior receive no accepted chunk IDs until they remove those fields.
  • Action: Keep ignoring unsupported fields in v0.1.5 while retaining newly supported selectors, or defer strict rejection to a minor release with notice and removal guidance.
  • PR: fix(policy)!: keep MCP tool selectors in agent proposals #4736
Review details
  • Execution: complete
  • Candidate: PR #4736 (34b098d8506161d35c549afd3bf868d2119e29d7)
  • Baseline: 7417f75384a02a12b30b736cc185bb08b814bd40 (7417f75384a02a12b30b736cc185bb08b814bd40)
  • Reviewed: rust-sdk, python-sdk, go-sdk, typescript-sdk, api-behavior, cli, configuration, policy, helm, state

Advisory review; publication gates are unchanged.

Branch check run

@shiju-nv shiju-nv added the test:e2e Requires end-to-end coverage label Nov 2, 2026
@github-actions

github-actions Bot commented Nov 2, 2026

Copy link
Copy Markdown

Label test:e2e applied for 513efa8. Open the existing run and click Re-run all jobs to execute with the label set. The run will execute the standard E2E suite after building the required gateway, sandbox, and supervisor images once. The matching required CI gate status on this PR will flip green automatically once the run finishes.

@shiju-nv
shiju-nv force-pushed the fix/4679-mcp-proposal-fields branch from 513efa8 to e5a3648 Compare November 2, 2026 15:53
@shiju-nv shiju-nv changed the title fix(policy): keep MCP tool selectors in agent proposals fix(policy)!: keep MCP tool selectors in agent proposals Nov 2, 2026
@shiju-nv
shiju-nv force-pushed the fix/4679-mcp-proposal-fields branch from e5a3648 to ee79082 Compare November 3, 2026 11:47
@shiju-nv shiju-nv added area:runtime rust Pull requests that update rust code labels Nov 6, 2026
@github-actions
github-actions Bot requested review from TaylorMutch, drew and purp November 6, 2026 20:36
@github-actions

github-actions Bot commented Nov 6, 2026

Copy link
Copy Markdown

Compatibility review (advisory)

New or updated breaking changes; see the full report for all findings.

2. api-behavior — No explicit risk acceptance found

proposal_approval_mode=auto now leaves otherwise eligible proposals pending whenever either effective policy contains protocol: mcp, instead of approving them automatically.

  • Impact: Unattended agents in sandboxes with existing MCP rules receive pending instead of approved even for unflagged, credential-free REST proposals.
  • Action: Defer mandatory MCP review to a minor release with explicit guidance for unattended callers to handle pending proposals and obtain manual approval.
  • PR: fix(policy)!: keep MCP tool selectors in agent proposals #4736
Review details
  • Execution: complete
  • Candidate: PR #4736 (efee9be329f1148db12a67e3143f6cf4032b9497)
  • Baseline: cc0642fa8955be9db480937193693968ada92a49 (cc0642fa8955be9db480937193693968ada92a49)
  • Reviewed: rust-sdk, python-sdk, go-sdk, typescript-sdk, api-behavior, cli, configuration, policy, helm, state

Advisory review; publication gates are unchanged.

Branch check run

Agent policy proposals currently lose MCP tool selectors before approval. A proposal intended for one `tools/call` tool can therefore become broader than the agent requested. This change preserves supported selectors through parsing, review and runtime validation, and rejects fields that cannot be applied.

Signed-off-by: Shiju <shiju@nvidia.com>
Signed-off-by: Shiju <shiju@nvidia.com>
@shiju-nv
shiju-nv force-pushed the fix/4679-mcp-proposal-fields branch from c021ec0 to ab4776e Compare November 7, 2026 10:33

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:runtime rust Pull requests that update rust code test:e2e Requires end-to-end coverage

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Approving an MCP rule proposal drops its tool and path, so the approved rule allows every tool

1 participant