Implementation Guide

    Adding Model Context Protocol permissions to Azure API Management

    MCP permissions define which agent or user identity may invoke which tool, with which parameters, under what conditions. Azure API Management can authenticate callers, validate tokens, apply API-level policy and rate limit. Tool-call decisions need a permission model of their own: each tool mapped to a required permission, evaluated against caller, delegated user, parameters and context. Where the gateway cannot see or decide on those attributes, enforcement in the execution path is needed.

    Criteria for deciding whether gateway controls are enough

    • Can policy distinguish individual tool names and parameters, or only the API path and token?
    • Are agent identity and delegated user identity both verifiable at the point of decision?
    • Is one policy applied across all MCP servers, or does each server carry its own rules?
    • Can policy act on conditions such as parameter values, and can those rules be versioned?
    • Do you need outcomes beyond allow or deny, such as redaction or human approval?
    • Can you show, for any call, whether it was allowed, denied or escalated, and on whose behalf?

    What permissions mean in an MCP context

    An MCP server exposes tools that an AI client can call. Authenticating that client answers who is connecting. It does not answer what the client may do once connected. A permission, in the sense used here, is a rule that binds an identity to a specific tool and, where needed, to constraints on the arguments and the conditions of the call.

    NIST guidance on API protection offers a useful frame. It says each service behind an API endpoint should perform two levels of authorization: service authorization, which asks which workload or client may call, and end-user-to-resource authorization, which asks on whose behalf the call is made and against which object. For MCP, the first maps to the agent or client identity and the second to the delegated user. Both need to be represented at the point of decision.

    The same guidance recommends annotating endpoints with the permissions they require, so that tooling can run authorization checks consistently. The MCP analogue is a permission attached to each tool definition. Attribute-based access control extends this: decisions evaluate attributes of the subject, the object, the requested operation and, in some cases, environment conditions against policy. That is a workable model for conditions such as caller, tool, parameters and context.

    What the gateway covers and where tool-call decisions begin

    An API gateway is a natural place for coarse controls. The practical question is which decisions can be expressed using what the gateway evaluates, typically the path, headers and token claims. Tool-level decisions often depend on attributes deeper in the request.

    • Authentication and token validation: Gateway: well suited. Validate issuer, signature, expiry and audience before traffic reaches the MCP server. Tool-call level: consumes the validated identity but adds no new checks here.
    • API-level policy: Gateway: allow or deny by route, client or token claim. Tool-call level: needed when several tools sit behind one endpoint and a path rule cannot tell them apart.
    • Rate limiting: Gateway: limits per client or subscription. Tool-call level: limits per tool, per identity or per sensitive operation.
    • Parameter and context conditions: Gateway: possible only if the arguments are visible to policy and the rules stay maintainable. Tool-call level: evaluates parameters, delegated user and environment against attribute-based policy.
    • Escalation and redaction: Gateway: generally outside API-level policy. Tool-call level: can route a call for human approval or alter content before it reaches the tool.
    • Decision evidence: Gateway: request records. Tool-call level: records of the decision, the attributes evaluated and the policy version.

    Evidence a regulated enterprise should be able to produce

    Authorization design is only half the requirement. A regulated enterprise may be asked to show what an AI client was allowed to do and what it did. Request-level gateway records show that a call arrived and was routed. They do not by themselves show which permission applied to a tool call, which attributes were evaluated, or why a call was denied.

    The two-level authorization model implies that a useful record names both the calling agent and the end user. Because attribute-based decisions depend on attributes and environment, reconstructing a decision generally needs the evaluated attributes and the policy version retained with the outcome. That is a design inference rather than a fixed requirement, and it is a sound basis for specifying what your evidence should contain.

    NCCoE concept and working-session material on AI agent identity and authorization, which references OAuth 2.0 and MCP and pairs delegation controls with accountability for automated systems, remains in draft form as of November 2026. It is useful direction for design, not a binding obligation.

    Where Trussed fits: runtime enforcement at the tool call

    Trussed addresses the tool-call layer described above. It enforces policy in the execution path across models, agents, tools and MCP servers, at the level of individual interactions and tool calls. Outcomes are allow, redact, block, rate limit or escalate for human approval, enforced at runtime, not reviewed after the fact.

    Because enforcement happens in the path, it generates audit-ready evidence continuously, mapped to frameworks including HIPAA, NAIC, NYDFS, the EU AI Act and NIST. Trussed can be deployed self-managed in the customer cloud, with configurable retention and data residency. It sits alongside gateway controls such as authentication, token validation and API-level policy rather than replacing them.

    Layers of an MCP permission model

    Authenticate

    Verify the calling agent and validate its token at the gateway.

    Authorize the service

    Decide which client may reach which MCP server.

    Authorize the tool call

    Decide whether this identity may invoke this tool with these parameters.

    Record the decision

    Retain who, what, on whose behalf and the outcome.

    Assess where tool-call enforcement belongs in your MCP design

    See how policy enforcement in the execution path and audit-ready evidence apply to MCP servers and tool calls.

    Explore Agent and Tool-Call Enforcement