Repository navigation
Define execution scope for protected effects and complete mediation #736
Description
Context
The EABC/cMCP interoperability profile for order_create maps the existing cMCP mechanisms for:
- authority binding: Cedar decision +
rel: authorized-intent - effect correlation:
execution_id+rel: observed-effect - execution binding: the proposed Execution Action Binding
The remaining EABC dimension is Execution Scope.
For a protected effect such as order_create, the relevant question is not whether an MCP request passed through the cMCP gateway. It is:
For the declared
order_createeffect domain, how is the set of paths capable of committing that effect identified, declared, and shown to be mediated?
Gap
Current cMCP mechanisms can establish what happened on a mediated execution path, and can correlate the execution with authority and downstream evidence. They do not appear to provide a protocol-level declaration or evidence model for the effect-producing path set itself.
In particular, the following are different claims:
- this MCP tool call was authorized;
- this execution was correlated to that authorization;
- this downstream evidence was observed for that execution;
- all paths capable of producing the protected effect are within the declared enforcement boundary.
The first three have existing cMCP homes. The fourth is the open part.
This matters because gateway mediation of MCP traffic does not by itself prove that an application cannot create the same protected effect through another API, service, direct database operation, alternate tool server, privileged process, or other execution path.
Concrete example: order_create
Assume order_create is the protected effect.
A useful execution-scope declaration would need to make it possible to state something equivalent to:
Protected Effect: order_create
Declared effect-producing paths:
P1 = MCP tool X -> cMCP -> upstream order service
P2 = ...
Pn = ...
Enforcement boundary:
every Pi capable of committing order_create
must pass the declared authorization/execution gate
The exact representation need not be this syntax. The question is what cMCP should carry, require, or integrate with so that this scope is explicit and independently assessable rather than inferred from the presence of the gateway.
Questions
- Does cMCP already have a planned or existing mechanism for declaring an effect domain / execution scope and its effect-producing paths?
- If not, should this be represented as a cMCP profile/contract rather than as a runtime field?
- What evidence should establish that the declared path set is complete for a protected effect?
- How should a verifier distinguish:
- "this path was mediated",
- "this effect was observed", and
- "all paths capable of producing this effect are mediated"?
- Is there an existing cMCP issue or design that should own this rather than opening a new mechanism?
Boundary
This issue is not asking cMCP to implement EABC or to claim universal complete mediation.
The immediate goal is to identify whether cMCP has a native representation for Execution Scope, or to define the smallest missing contract needed for an integration profile to make a scoped non-bypassability claim.
The EABC profile currently records Execution Scope as OPEN / NOT CLAIMED until such a mechanism and evidence boundary are identified.
Activity
imran-siddique commentedon Oct 8, 2026
@omwei-org this belongs with the confinement work. The gateway can only check calls that pass through it, and
docs/confinement.md(tracked in #659) is where cMCP states which routes an agent has and what mediates each one; its routes table is the agent-side half of your path set.The two halves need different evidence. Agent-side paths can be enforced and tested, as the confinement fixture does by switching each protection off in turn. Paths outside the agent, such as another service writing the orders database, are a deployment claim: carry them as a declared boundary statement, and report coverage as not established unless an independent observer, through
observed-effect, shows the boundary held.A PR extending the routes table into a declared path set per protected effect, with
order_createas the worked case, would be welcome.omwei-org commentedon Oct 9, 2026
Hi Imran — following up on your suggestion in issue #736 about extending the routes table into a declared path set for each protected effect.
I prepared PR #740, but it was automatically closed because I haven't been vouched yet. I’ve read the contribution guidelines and am trying to follow the required process, but I haven’t found a working way to request a vouch: the new-issue URL returns 404, and the repository doesn’t appear to have Discussions enabled.
Could you point me to the right way to request a
/vouchso I can submit the contribution through the normal review process?imran-siddique commentedon Oct 11, 2026
/vouch @omwei-org
github-actions commentedon Oct 11, 2026
@omwei-org is vouched by @imran-siddique. Pull requests from that account will not be closed by the vouch check.
chore: vouch omwei-org
imran-siddique commentedon Oct 11, 2026
@omwei-org you are vouched and #740 is reopened. This issue was the conversation the rule asks for. The dead end you hit was ours: the issue chooser sent "Design discussion" to a Discussions page that is switched off on this repository, fixed in #742.
fix(github): point the issue chooser's discussion link at the org dis…