[RFC] Server-Side Policy Enforcement for MCP Capabilities #741
sebastianmart-sketch
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Pre-submission Checklist
Your Idea
Server-side policy enforcement for MCP capabilities
I would like feedback on a draft proposal for a new MCP extension that defines a minimal, backend-neutral contract for MCP Servers to enforce policy before exposing or executing protected capabilities.
Core principle
The MCP Server that owns a protected capability should remain the final Policy Enforcement Point. The MCP Client should not be trusted by default as the authority for authorization decisions, actor validation, approval state, policy selection, enforcement mode or capability visibility.
This follows a Zero Trust-oriented posture for MCP deployments: the server should verify trusted context before exposing or executing protected capabilities, rather than assuming the client, gateway or previous authentication step is sufficient.
This is intended to complement, not replace, MCP authorization, OAuth, enterprise IdPs, gateways or client-side confirmation. Those layers are useful, but operational and enterprise deployments often also need capability-level enforcement inside the server itself.
Draft repository:
https://github.com/sebastianmart-sketch/mcp-server-side-policy-enforcement
What the draft proposes
The proposal focuses on:
human,supervised_ai,automationorservice_account;allow,deny,require_approval;What it does not propose
It does not propose:
Why this may be useful
MCP authorization can answer:
But enterprise and operational deployments often also need to answer:
Today, that capability-level policy enforcement is left to individual implementations. That can lead to inconsistent behavior across servers.
Motivation: cross-realm MCP deployments
One reason this may matter is that MCP’s promise is to connect applications, tools and services to AI across many environments. In practice, the MCP Client and MCP Server may operate in different security, identity, governance and audit realms.
This becomes more important as MCP Servers move beyond internal adapters. ISVs, SaaS providers, MSPs and enterprise platform vendors may expose MCP Servers as standard product features or supported interfaces. A customer-side gateway may help, but it cannot be the only assumed control. The product-owned MCP Server still needs to enforce capability-level policy, approval and audit requirements for the capabilities it exposes.
For example, an MCP Server may expose capabilities for a SaaS/PaaS platform, enterprise platform or operations tool such as a Linux management system. The MCP Client may be operated by a customer, partner, third-party agent platform or internal automation workflow.
In that model, valid credentials should not automatically make the MCP Client the authority for capability visibility, execution policy, actor validation, approval state or audit requirements.
The server still needs to answer questions such as:
Gateway enforcement can help, and in many enterprise deployments it will be necessary. However, a gateway is not always sufficient as the only enforcement point when MCP exposes heterogeneous systems with different semantics, risk levels and audit obligations.
A gateway may validate credentials, route tenants, apply coarse policy, rate-limit requests or block known unsafe patterns. But the protected MCP Server often has the best domain-specific context to decide whether a capability should be visible or executable for a given actor, tenant, environment, approval state and runtime condition.
For this reason, gateway enforcement should complement server-side enforcement, not replace it. The protected MCP Server should remain the final Policy Enforcement Point for the capabilities it owns.
Related discussions
I’m aware of related discussions, including SMCP (#689) and ExecutionGateway (#594). I have tried to keep this proposal focused on a minimal, backend-neutral enforcement contract at the MCP Server layer, rather than on a security envelope, gateway pattern or client-side control.
Requested feedback
I would especially appreciate feedback on:
allow,deny,require_approvalsufficient?humanandsupervised_aibe standardized or left to implementation profiles?require_approval_via: task | elicitation | nonebe part of the core contract or an approval profile?_other: denyuseful as a reference-profile convention for fail-closed behavior on unknown or future methods?AI usage disclosure
I used generative AI as an editorial and technical sparring partner while developing this proposal. It helped me test the structure, identify possible gaps, compare alternative framings and refine wording.
The core idea, proposal direction, final editorial judgment and decision to share this draft are mine.
Scope
Beta Was this translation helpful? Give feedback.
All reactions