All ArticlesRuntime Truth
Visibility & Shadow AI
Threat Explainer
Mcp Authentication Spec

MCP Authentication Gaps: Why Unauthenticated MCP Servers Are a Critical Risk

Across enterprise environments in 2026, a significant portion of active MCP server connections carry no authentication requirement at all. The MCP authentication spec only formalized OAuth requirements for remote servers in mid-2025, leaving a long tail of legacy implementations, community-default configurations, and developer-built servers that still accept connections from any process that can reach them.

Aman A.
SEO Manager
·
Obsidian Security
·
May 28, 2026
May 29, 2026
Key Takeaways
  • The MCP authentication spec added OAuth 2.1 requirements for remote servers in the June 2025 revision, but local and legacy implementations still default to unauthenticated connections.
  • Any process that can reach an unauthenticated MCP server can call its tools, creating direct paths to credential theft, lateral movement, and command execution.
  • Audit logging in most MCP deployments captures successful tool execution but strips agent identity and payload content, breaking the incident response trail entirely.
  • Closing the authentication gap is primarily server-side and platform-side work. Security teams must first know which connections lack auth before they can prioritize remediation.
  • Infrastructure inventory that surfaces auth status at the agent connection layer is the prerequisite for every downstream control.

The MCP Authentication Specification: Where Auth Was and Where It Is Now

Security teams asking "what does the MCP authentication spec actually require?" often find the answer depends entirely on which version of the spec their vendors implemented.

MCP launched as a local-first protocol. The original design assumed the server and the client ran on the same machine, under the same user context. In that model, authentication was considered unnecessary: if you could reach the server socket, you were already the authorized user. That assumption made sense for a developer's laptop. It broke the moment organizations started deploying MCP servers to shared infrastructure.

The spec evolved significantly through 2025. The revision published on June 18, 2025 made a structural change to the authentication model: MCP servers are no longer responsible for authenticating users or issuing tokens directly. Instead, a separate OAuth 2.1 Authorization Server handles that function. The MCP server validates tokens issued by that authorization server but does not manage the credential lifecycle itself. This is a meaningful architectural improvement. It separates concerns correctly and aligns MCP with how modern API security works.

Spec PeriodAuth RequirementMechanismScope
Pre-2025 (original)None specifiedLocal socket trustLocal servers only
Early 2025 draftsOptional OAuth 2.0Server-managed tokensRemote servers, inconsistent
June 2025 (v2025-06-18)Required for remote serversOAuth 2.1 via external Authorization ServerRemote servers; local servers still exempt
Current state (2026)Required for remote, unspecified for localOAuth 2.1 (remote); implementation-defined (local)Long tail of legacy deployments unaddressed

The current spec state leaves two categories of unauthenticated exposure. First, local MCP servers remain outside the mandatory auth requirement. Second, any server built before the June 2025 revision operates under the prior model unless the operator actively upgrades it. Neither category gets flagged automatically. Both categories represent real attack surface in production environments today.

For a broader view of how authentication gaps compound across the SaaS layer, the MFA bypass and traditional auth failure patterns documented in enterprise environments apply directly to MCP's pre-2025 trust model.

Why Most MCP Servers Still Have Authentication Gaps

Knowing the spec requires auth for remote servers does not explain why most enterprise deployments still have unauthenticated connections. The gap between specification and implementation is where the real risk lives.

Legacy implementations predate the auth requirement. Any MCP server built before mid-2025 was built to a spec that did not mandate authentication. Those servers are still running. Operators who did not actively track the spec revision have no reason to know their configuration is now non-compliant with current standards.

Local-only assumptions that broke. Developer tooling drove the initial MCP adoption wave. Tools like Cursor and similar AI coding assistants connected to MCP servers running locally. That worked safely in isolation. Then organizations started centralizing those servers, moving them to shared infrastructure so multiple developers could use the same tools. The local-trust model traveled with the server into a remote deployment context where it no longer applies.

Community server configurations ship without auth by default. The open-source MCP server ecosystem grew faster than security guidance could keep up with. Most community-published server configurations include no authentication setup. Developers clone a repository, follow the quickstart, and have a running server in minutes. Auth configuration requires additional steps that the quickstart does not include. The default state is unauthenticated.

Remote MCP is genuinely new for most enterprise teams. Organizations that started MCP deployments in late 2024 or early 2025 built on the spec available at that time. Their infrastructure teams are not necessarily tracking protocol specification updates. The June 2025 revision created a compliance gap for every deployment that predates it, and most teams do not have a process for retroactively auditing protocol-level configuration changes.

The result is a population of MCP servers in production that were never designed to be secured, were deployed under assumptions that no longer hold, and exist in environments where no one has a complete inventory of what is running. This is the shadow MCP server problem at its most concrete: not theoretical configuration risk, but real unauthenticated endpoints accepting tool calls from any process that can reach them.

The Risk Profile of Unauthenticated MCP Servers

Security teams sometimes treat unauthenticated MCP servers as a posture finding rather than an active risk. That framing underestimates what unauthenticated access actually enables.

The core problem is this: an unauthenticated MCP server accepts tool calls from any process that can reach its network endpoint. It does not verify caller identity. It does not check whether the calling agent is authorized to invoke that specific tool. It executes the request.

CapabilityUnauthenticated MCP ServerAuthenticated MCP Server
Verify caller identityNoYes (via OAuth 2.1 token validation)
Restrict tool access by roleNoYes (token scopes)
Attribute tool calls to specific agentsNoYes (token subject claim)
Detect unauthorized callersNoYes (invalid/missing token rejection)
Support audit trail with identity contextNoYes (token metadata in logs)
Prevent lateral movement via tool chainingNoPartially (scope restrictions)

Lateral movement via tool chaining. An attacker or misconfigured agent that reaches one unauthenticated server can use its tools to reach adjacent systems. A file system server provides read/write access to directories. A database server executes queries. A shell execution server runs commands. Each tool call is a step in an action chain that compounds the blast radius with no authentication check at any point.

Command execution via path traversal. File system MCP servers are among the most commonly deployed. Many are configured with broad directory access. Without authentication, any caller can request file reads from paths outside the intended scope, including environment files, configuration files, and credential stores. Path traversal in an unauthenticated file system server is not a sophisticated attack. It is a single tool call.

Credential theft via environment and config retrieval. MCP servers frequently run in environments where application credentials, API keys, and service account tokens are accessible as environment variables or configuration files. A server with a file read tool and no authentication is a credential exfiltration endpoint. The OAuth token vulnerability patterns that affect traditional SaaS integrations apply directly here, except the MCP server removes even the OAuth layer.

The machine insider angle. An AI agent that connects to an unauthenticated MCP server inherits whatever that server can do, with no identity check. If that agent was invoked by a user without proper authorization, the unauthenticated server cannot detect or prevent the escalation. This is the machine insider risk model operating at the protocol layer: the agent acts, the server executes, and no identity record exists.

MCP Audit Logging Requirements and Gaps

Incident response teams investigating an MCP-related event face a consistent problem: the logs exist, but they do not answer the questions that matter.

What should be logged. A complete MCP audit trail requires: the identity of the calling agent (not just the process name), the specific tool called, the parameters passed to that tool, the response payload or a hash of it, timestamps with sufficient precision to reconstruct action sequences, and the outcome of each call. This is the minimum needed to answer "what happened, who did it, and what did they access?"

What is actually logged in practice. Most MCP server implementations log successful tool execution at the application level. They record which tool ran and whether it succeeded. They do not record caller identity because, in an unauthenticated deployment, no identity exists to record. They do not capture payload content because no logging standard requires it. The result is a log that confirms the tool ran but cannot tell you who called it or what data moved.

Why the audit trail is broken. The MCP specification does not define a logging standard. Each server implementation makes its own choices about what to record. Community servers often log nothing beyond startup and error events. Enterprise deployments that do implement logging rarely integrate those logs into SIEM pipelines, because MCP servers are still treated as developer infrastructure rather than security-relevant systems. The audit log value demonstrated in major breach investigations depends entirely on logs that contain identity context. MCP logs typically do not.

The incident response consequence. When an MCP-connected agent is involved in a data exposure event, the investigation starts from a position of near-zero visibility. Security teams can confirm that a tool was called. They cannot confirm which agent called it, what parameters were passed, or whether the call was part of a broader action chain. Ghost chasing static configuration signals without runtime evidence is the structural problem that MCP audit gaps make worse, not better.

Closing the Authentication Gap

Closing the MCP authentication gap requires work at three distinct layers. Framing this as a single control misses how the problem is distributed.

Server-side: implement auth per current MCP spec. Remote MCP servers must implement OAuth 2.1 token validation using a separate Authorization Server. This is not optional for any server accessible outside a single-user local context. Server operators need to audit every deployed instance against the June 2025 spec requirements, identify which servers predate the auth requirement, and prioritize remediation based on the tools each server exposes and the data it can reach.

Agent-side: verify auth requirement before connecting. Agents and the platforms that orchestrate them should refuse connections to MCP servers that do not present a valid authentication requirement. This is a platform-level control. Security teams evaluating AI agent platforms should confirm whether the platform enforces authenticated-only MCP connections or whether it allows unauthenticated connections by default.

Vendor evaluation criteria. Before adopting any MCP server or AI agent platform, security teams should confirm three things: Does the server require OAuth 2.1 for remote connections? Does the server log caller identity with each tool call? Does the server propagate identity context to downstream systems so the audit trail survives action chaining? Vendors who cannot answer these questions have not addressed the MCP authentication spec requirements in their implementation.

Infrastructure inventory as the prerequisite. None of the above controls can be applied to servers that security teams do not know exist. The first step is surfacing which agent connections in the environment lack authentication. This is where runtime visibility into agent infrastructure becomes operationally necessary. Obsidian's agent inventory surfaces authentication status as a visible attribute of each MCP server connection, classifies servers as sanctioned or unsanctioned, and includes missing authentication as a risk factor in toxic combination scoring. Security teams use that inventory to prioritize which unauthenticated servers to remediate first based on the tools they expose and the agents connected to them. Obsidian does not act as an authentication proxy or enforcement layer for MCP connections. The remediation work is server-side. The inventory is what makes that work tractable at scale.

For teams building out their AI agent governance framework, the AI guardrails framework and broader AI agent security risks overview provide framework-level context for where MCP authentication fits within the broader agentic risk model.

Specification Progress and Deployment Reality Are Not Synchronized

The MCP authentication spec has matured significantly since the protocol launched. OAuth 2.1 requirements for remote servers represent a real improvement in the security model. The problem is that specification progress and deployment reality are not synchronized. Most enterprise MCP servers running today were built before the June 2025 revision, operate under local-trust assumptions that no longer apply, and produce audit logs that cannot support incident response.

Security teams cannot close a gap they cannot see. The immediate action items are concrete:

  1. Inventory every MCP server connection in your environment and record the authentication status of each one.
  2. Classify servers as sanctioned or unsanctioned based on whether they were reviewed and approved before deployment.
  3. Prioritize unauthenticated remote servers for immediate remediation, starting with those that expose file system, shell execution, or credential-adjacent tools.
  4. Require OAuth 2.1 compliance as a condition of adoption for any new MCP server or AI agent platform.
  5. Audit your logging configuration to confirm that agent identity and tool call parameters are captured, not just execution outcomes.

Configuration is not reality. An MCP server that appears secured in your architecture diagram but runs without authentication in production is an open endpoint. Runtime truth means knowing which one you actually have.

Frequently Asked Questions

What is the MCP authentication spec and when was auth added?

The Model Context Protocol originally launched without strong authentication requirements, relying on local-socket trust for single-user deployments. The June 2025 spec revision (version 2025-06-18) formalized OAuth 2.1 as the required authentication mechanism for remote MCP servers, delegating token issuance to a separate Authorization Server rather than the MCP server itself.

Why do unauthenticated MCP servers still exist if the spec requires auth?

The spec requires authentication for remote servers built to the current standard. It does not retroactively enforce compliance on legacy implementations. Servers built before mid-2025 operate under the prior model unless operators actively upgrade them. Community-published server configurations also still ship without auth setup by default, meaning new deployments can start unauthenticated if operators follow the quickstart without additional hardening.

What can an attacker do with access to an unauthenticated MCP server?

An unauthenticated MCP server accepts tool calls from any process that can reach its network endpoint. Depending on which tools the server exposes, an attacker can read files (including credential stores and environment files), execute commands, query databases, or chain tool calls across connected systems. No identity check occurs at any point in this sequence.

What does good MCP audit logging look like?

Complete MCP audit logging captures the identity of the calling agent (via token subject claim), the specific tool invoked, the parameters passed, the response payload or a hash of it, timestamps, and the outcome. Most current implementations log only successful execution without identity context, which makes incident response investigation nearly impossible.

How does Obsidian help with MCP authentication gaps?

Obsidian surfaces authentication status as a visible attribute of each MCP server connection in the agent inventory. It classifies servers as sanctioned or unsanctioned and includes missing authentication as a risk factor in toxic combination scoring. This gives security teams a prioritized view of which unauthenticated connections represent the highest risk based on the tools exposed and the agents connected. The remediation work itself is server-side. Obsidian provides the inventory visibility that makes that remediation tractable.