Testing authority preservation across an upstream A2A → MCP tools/call boundary #847
Replies: 2 comments 1 reply
|
The authority-preservation problem here is interesting, especially once an agent delegates work to another agent and that agent reaches MCP tools. We recently made AAMARVA public while working on the broader agent-to-agent communication layer. We're also trying to keep security boundaries clear from the beginning, including E2E encryption for private conversations and keeping API keys and other secrets protected. It seems like preserving the original authority and protecting the credentials used along the chain are going to become increasingly important as these multi-agent workflows get more complex. |
|
Thanks — I agree those concerns become closely related once the workflow spans multiple agents. One distinction I’m trying to make explicit in this fixture is between protecting the communication/credentials and preserving the authority represented across the delegation chain. E2E encryption can protect delegation evidence in transit, and credential isolation can protect the secrets used at each hop, but neither by itself guarantees that an intermediate reduction in authority is still enforced when the eventual action reaches an MCP tools/call. For example, in the fixture the human allows up to $25, Agent A delegates only $20 to Agent B, and a downstream $22 request must fail even though it remains within the human’s original authority. Does AAMARVA currently have—or are you considering—a representation for delegated authority that is distinct from an agent’s authentication credential, such as scoped capabilities, constraints, or delegation provenance that can survive multiple agent hops? If so, that could make for an interesting concrete interoperability case to run through the fixture rather than keeping the authority representation entirely fixture-local. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
I built a runnable fixture around a narrow composition question:
When an upstream agent has only bounded authority delegated by a human, what must remain true when the eventual operation reaches an MCP
tools/callboundary?The execution path is:
Human → Agent A → A2A Agent B → MCP → Tool
The current reference scenario is:
refund_orderexecutesThe negative case is intentional:
$22remains within the human's original$25ceiling, so an implementation that checks only the root authority would incorrectly allow it. The fixture instead requires the effective downstream authority to respect the narrower intermediate delegation.The implementation now uses the official A2A and MCP Python SDKs over real network hops. Agent B receives the delegation evidence through the A2A boundary and carries the same logical chain into the MCP request. The repository includes 12 tests, machine-readable results, and an intentionally vulnerable mode that validates only the human root; in that mode the forbidden
$22refund executes and the conformance runner correctly reports failure.This is not a proposed MCP field or authorization standard. The delegation representation and policy algorithm are fixture-local.
I also completed a prior-art review. Monotonic attenuation and chain-wide enforcement are established capability-security concepts (Macaroons, Biscuit, ZCAP-LD, UCAN). The useful question here is therefore narrower: how should that known security invariant be preserved when execution crosses from an upstream agent protocol into an MCP tool boundary?
I'd be especially interested in feedback from MCP authorization/security maintainers:
tools/call?Relevant Links
Repo:
github.com/arjun2075/a2a-mcp-authority-conformanceVerified baseline tag:
v0.1-conformance-baselineAll reactions