ExplainerAgentic security

MCP access control: scoped credentials, allow-lists and audit logs

How the Model Context Protocol connects superintelligence (SI) assistants to business tools, and the controls that keep that access governed: tenant isolation, scoped credentials, allow-lists and audit logs.

Cover of the full report: MCP access control: scoped credentials, allow-lists and audit logs
The research behind this article, with every source listed. 19 pages.

Key points

From the Summary of the full report

  1. The Model Context Protocol (MCP) standardizes how SI applications connect to tools and data. It was introduced in November 2024 and has been a project of the Agentic AI Foundation, a directed fund under the Linux Foundation, since December 2025 [1, 14].
  2. The specification sets firm rules for authorization over HTTP: an MCP server is an OAuth 2.1 resource server, tokens are bound to the server they were issued for, and passing a client's token through to other services is forbidden [4, 7]. It states consent, privacy and tool safety as principles and says plainly that the protocol "cannot enforce" them [2].
  3. Published attacks fall into four groups: poisoned or changed tool descriptions, harmful combinations of tools in one session, misuse of credentials, and isolation failures in servers shared by many customers [7, 17, 18, 19, 20].

An SI assistant becomes useful at work when it can act: read a ticket, update a record, query a database, draft a reply in the right thread. Each of those actions runs against a business system with real data and real permissions. Connecting an assistant to a tool is a security decision, and it needs the same care as granting a new employee access.

The Model Context Protocol (MCP) has become a widely adopted way to make that connection [14]. This explainer covers what the protocol does, what it leaves to the people who deploy it, and five controls that keep tool access governed.

What MCP is

Anthropic introduced MCP on 25 November 2024 as "a new standard for connecting AI assistants to the systems where data lives" [1]. The protocol uses JSON-RPC messages between three roles: hosts, the SI applications that start connections; clients, the connectors inside a host; and servers, the services that provide context and capabilities [2]. Servers offer resources, prompts and tools. Tools are functions the model can call [2].

The specification is direct about the risk. "Tools represent arbitrary code execution and must be treated with appropriate caution," it says, and descriptions of tool behavior "should be considered untrusted, unless obtained from a trusted server" [2]. It also says that MCP "cannot enforce these security principles at the protocol level" [2]. Governance is the implementer's job.

How it spread

Date Milestone
25 November 2024 MCP introduced, with a specification, SDKs and an open-source repository of servers [1]
26 March 2025 Specification adds an authorization framework based on OAuth 2.1 [8]
21 May 2025 OpenAI's Responses API supports remote MCP servers, and OpenAI joins the MCP steering committee [12]
18 June 2025 MCP servers classified as OAuth resource servers; clients must use resource indicators [9]
8 September 2025 MCP Registry opens in preview, "an open catalog and API for publicly available MCP servers" [11]
9 December 2025 MCP donated to the Agentic AI Foundation under the Linux Foundation; more than 10,000 active public servers reported [14]
28 July 2026 Revision 2026-07-28 makes the protocol stateless; Tier 1 SDKs see "close to half-a-billion downloads a month" [15]

What can go wrong

Published research describes the failure modes. Invariant Labs showed tool poisoning, where "malicious instructions are embedded within MCP tool descriptions that are invisible to users but visible to AI models", and the rug pull, where a server changes a tool's description after the user has approved it [17]. In May 2025 the same team showed a malicious issue in a public repository steering an agent, through an MCP server, into leaking data from private repositories. The researchers described it as an architectural issue in the agent system [18]. Simon Willison named the combination behind such attacks the lethal trifecta: access to private data, exposure to untrusted content and the ability to communicate externally [19].

Isolation failures are concrete too. In June 2025, a work-management software vendor disclosed that a logic flaw in its MCP server had exposed customer data to users in other organizations, an incident affecting roughly 1,000 customers [20]. The OWASP list of risks for LLM applications calls the general problem excessive agency: excessive functionality, excessive permissions and excessive autonomy [21].

Five controls

1. Tenant isolation. No request made for one customer reaches another customer's data or credentials. An isolated server per tenant meets this: each customer gets its own MCP server, with its own runtime, credentials store and network policy, so a logic flaw in one server has no other customer's data to expose. So does a shared server that scopes credentials per call: the customer is taken from the verified token on each request [7], and only that customer's credentials are loaded for that call. Kubernetes guidance recommends starting tenant networks from a default policy that denies pod-to-pod traffic and adding narrower rules from there [23].

2. Scoped, audience-bound credentials. The specification requires clients to name the server a token is for, using OAuth resource indicators, and requires servers to accept only tokens "issued specifically for them" [4]. It forbids passing a client's token through to downstream APIs [4, 7]. Scopes start small and grow through step-up authorization when a privileged tool is first used. The security guidance lists wildcard scopes such as * or full-access among common mistakes [7].

3. Allow-lists. Each tenant gets an explicit list of servers and tools. Under revision 2026-07-28 a server's tool list may vary by the authorization on the request, so a caller sees only the tools its scopes permit [5]. Over HTTP, every request carries its method in a header and every tool call carries the tool name, so a gateway can enforce the list without parsing the body, and servers must reject requests whose headers and body disagree [6]. Tool descriptions are pinned by hash, so a changed description is caught before the model sees it [17].

4. Approval for consequential actions. The specification says there "SHOULD always be a human in the loop with the ability to deny tool invocations" [5]. Which actions need a person's approval is set by the operator's policy. A tool's own annotation saying it is read-only is a hint, and clients "MUST consider tool annotations to be untrusted unless they come from trusted servers" [5].

5. Audit logs that answer the usual questions. Every tool call is logged with what happened, when, where, from which source, with what outcome and on whose behalf, the content NIST SP 800-53 sets for audit records [22]. The specification asks clients to "log tool usage for audit purposes" [5], and the security guidance asks servers to log scope elevations with correlation IDs [7]. Revision 2026-07-28 documents how trace context travels with each request, so one call can be followed across systems [3].

Where enterprises fit

For larger organizations, the Enterprise-Managed Authorization extension makes the company's identity provider "the authoritative decision-maker" for which MCP servers employees can reach. Access policies sit in one place, and revoking an employee's access happens once, at the identity provider [16].

Rillor's platform

Rillor builds and secures agentic SI systems. The tenant isolation tests on Rillor's platform, and what an agentic security engagement covers, are on our agentic security page.

Read the full report

The full report, available as a PDF, maps each control to the MCP specification, NIST SP 800-53 and the OWASP guidance, and sets out the threats, the protocol's security requirements and the adoption record in detail.

The full report

MCP access control: scoped credentials, allow-lists and audit logs

The research behind this article, with every source listed. 19 pages.

  1. Summary
  2. Background
  3. Method
  4. Findings
  5. Implications
  6. Limits of this analysis
  7. Sources

Sources

  1. "Introducing the Model Context Protocol". Anthropic, 25 November 2024. https://www.anthropic.com/news/model-context-protocol
  2. Model Context Protocol Specification, revision 2026-07-28: Overview and Security and Trust & Safety. Model Context Protocol project, retrieved 9 October 2026. https://modelcontextprotocol.io/specification/2026-07-28
  3. Model Context Protocol Specification, revision 2026-07-28: Key Changes. Model Context Protocol project, retrieved 9 October 2026. https://modelcontextprotocol.io/specification/2026-07-28/changelog
  4. Model Context Protocol Specification, revision 2026-07-28: Authorization. Model Context Protocol project, retrieved 9 October 2026. https://modelcontextprotocol.io/specification/2026-07-28/basic/authorization
  5. Model Context Protocol Specification, revision 2026-07-28: Tools. Model Context Protocol project, retrieved 9 October 2026. https://modelcontextprotocol.io/specification/2026-07-28/server/tools
  6. Model Context Protocol Specification, revision 2026-07-28: Streamable HTTP transport. Model Context Protocol project, retrieved 9 October 2026. https://modelcontextprotocol.io/specification/2026-07-28/basic/transports/streamable-http
  7. Security Best Practices (documentation for revision 2026-07-28). Model Context Protocol project, retrieved 9 October 2026. https://modelcontextprotocol.io/docs/2026-07-28/tutorials/security/security_best_practices
  8. Model Context Protocol Specification, revision 2025-03-26: Key Changes. Model Context Protocol project. https://modelcontextprotocol.io/specification/2025-03-26/changelog
  9. Model Context Protocol Specification, revision 2025-06-18: Key Changes. Model Context Protocol project. https://modelcontextprotocol.io/specification/2025-06-18/changelog
  10. David Soria Parra, Adam Jones, Tadas Antanavicius, Toby Padilla and Theodora Chu, "Introducing the MCP Registry". Model Context Protocol blog, 8 September 2025. https://blog.modelcontextprotocol.io/posts/2025-09-08-mcp-registry-preview/
  11. "Introducing support for remote MCP servers, image generation, Code Interpreter, and more in the Responses API". OpenAI Developer Community, Announcements, 21 May 2025. https://community.openai.com/t/introducing-support-for-remote-mcp-servers-image-generation-code-interpreter-and-more-in-the-responses-api/1266973
  12. "Donating the Model Context Protocol and establishing the Agentic AI Foundation". Anthropic, 9 December 2025. https://www.anthropic.com/news/donating-the-model-context-protocol-and-establishing-of-the-agentic-ai-foundation
  13. David Soria Parra and Den Delimarsky, "The 2026-07-28 Specification". Model Context Protocol blog, 28 July 2026. https://blog.modelcontextprotocol.io/posts/2026-07-28/
  14. Enterprise-Managed Authorization (extension io.modelcontextprotocol/enterprise-managed-authorization). Model Context Protocol project, retrieved 9 October 2026. https://modelcontextprotocol.io/extensions/auth/enterprise-managed-authorization
  15. Luca Beurer-Kellner and Marc Fischer, "MCP Security Notification: Tool Poisoning Attacks". Invariant Labs, 1 April 2025. https://invariantlabs.ai/blog/mcp-security-notification-tool-poisoning-attacks
  16. Marco Milanta and Luca Beurer-Kellner, "GitHub MCP Exploited: Accessing private repositories via MCP". Invariant Labs, 26 May 2025. https://invariantlabs.ai/blog/mcp-github-vulnerability
  17. Simon Willison, "The lethal trifecta for AI agents: private data, untrusted content, and external communication". simonwillison.net, 16 June 2025. https://simonwillison.net/2025/Jun/16/the-lethal-trifecta/
  18. Bill Toulas, "Asana warns MCP AI feature exposed customer data to other orgs". BleepingComputer, 18 June 2025. https://www.bleepingcomputer.com/news/security/asana-warns-mcp-ai-feature-exposed-customer-data-to-other-orgs/
  19. "LLM06:2025 Excessive Agency". OWASP Top 10 for LLM Applications 2025, OWASP Gen AI Security Project, 2025. https://genai.owasp.org/llmrisk/llm062025-excessive-agency/
  20. NIST SP 800-53 Rev. 5, Security and Privacy Controls for Information Systems and Organizations (release 5.2.0, OSCAL catalog): controls AC-4, AC-6, AC-6(9), AU-3, AU-9 and SC-39. National Institute of Standards and Technology, catalog last modified 11 May 2026. https://github.com/usnistgov/oscal-content/blob/main/nist.gov/SP800-53/rev5/json/NIST_SP-800-53_rev5_catalog.json
  21. "Multi-tenancy". Kubernetes documentation, The Kubernetes Authors, retrieved 9 October 2026. https://kubernetes.io/docs/concepts/security/multi-tenancy/

Notices

NVIDIA, AMD, Ceph, Kubernetes and related product names are trademarks of their owners and are used only to identify products. No affiliation or endorsement is implied.

Superintelligence (SI) outputs can be wrong. Important decisions should include human review.

Test your agent before it holds real access.

Send us the agents, the tools and data they reach, where they run and what you want tested.

Test an agent