Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The OWASP Top 10 for MCP Servers is a security awareness framework for systems built with the Model Context Protocol. Its ten 2025 categories cover risks ranging from exposed credentials and excessive permissions to prompt injection, unapproved servers, and sensitive context leaking between tasks. Use it to review the whole path from the AI host to connected servers, tools, and data—not just the server process itself. OWASP labels the project version v0.1 and describes it as a living document, so check the project’s current version when using it for a formal review.

What the OWASP Top 10 for MCP Servers is—and is not

The OWASP Top 10 for MCP Servers is an OWASP Foundation project that organizes important security concerns in Model Context Protocol systems. It gives teams a shared vocabulary for identifying risks and discussing controls. It is not a security certification, a guarantee that a deployment is safe, or a statistical ranking of how often incidents occur.

The project calls itself a living document that will evolve with AI-model capabilities and protocol innovation. Its repository labels the document “OWASP Top 10 for Model Context Protocol version v0.1.” The categories below carry 2025 identifiers, but the version label matters: teams should verify the current project document before treating a category list as a fixed or complete standard.

OWASP’s reviewed official sources publish no quantitative prevalence or breach-rate statistic specific to this Top 10. The categories are useful for threat modeling and control reviews; they do not establish how common any one attack is.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Why MCP changes the security picture

A typical MCP arrangement is User → MCP Host → MCP Client → one or more MCP Servers → Tools, Data, or APIs. The host is the AI application, and the client connects it to servers. Local servers commonly communicate over stdio; remote servers commonly use HTTP/SSE.

The important security distinction is that a model can receive tool descriptions from every server connected to its host. A malicious or compromised server may therefore influence model behavior beyond calls to its own tools. The risk is not limited to a vulnerable endpoint: trust in tool descriptions, returned content, credentials, and shared context can affect interactions with other connected systems.

Review the whole chain: who selected and configured each server, what identity it runs as, what the model can ask it to do, what data it can reach, and what happens to outputs and context. A server with a narrow purpose can still create broad exposure if it inherits a powerful credential or shares context with unrelated tasks.

The 10 MCP security risks

Category What can go wrong Controls to consider
MCP01:2025 — Token Mismanagement & Secret Exposure Hard-coded or long-lived credentials, secrets retained in model context, or unredacted logs can enable unauthorized access and lateral movement. Store secrets in a vault, inject them at runtime, use short-lived scoped tokens, isolate context, redact logs, and rotate credentials.
MCP02:2025 — Privilege Escalation via Scope Creep Temporary or overly broad permissions can expand an agent’s ability to modify repositories, control systems, or exfiltrate data. Apply least privilege, expire scopes, and review access regularly.
MCP03:2025 — Tool Poisoning Compromised tools, schemas, plugins, or outputs can influence model behavior. Techniques include rug pulls, schema poisoning, and tool shadowing. Inspect and pin tool definitions, and scan for poisoning or unexpected changes.
MCP04:2025 — Software Supply Chain Attacks & Dependency Tampering Malicious or vulnerable packages and connectors can change behavior or introduce backdoors. Use signed components, monitor dependencies, and track provenance.
MCP05:2025 — Command Injection & Execution Untrusted prompt, retrieved, or third-party data can reach shell commands, scripts, API calls, or code without adequate validation. Validate inputs and sandbox execution.
MCP06:2025 — Prompt Injection via Contextual Payloads Natural-language payloads can act like injection strings because the model interprets them. Tool descriptions, retrieved text, and outputs may all carry untrusted instructions. Treat these sources as untrusted and prevent their instructions from silently authorizing sensitive actions.
MCP07:2025 — Insufficient Authentication & Authorization Weak identity checks or access controls can expose multi-user and multi-agent attack paths. Enforce authentication, authorization, TLS, secure sessions, and binding between the requester and the action.
MCP08:2025 — Lack of Audit and Telemetry Without immutable logs, tool calls, context changes, and user-agent interactions may be missed or hard to investigate. Record relevant activity in a way that supports detection and investigation.
MCP09:2025 — Shadow MCP Servers Unapproved servers outside governance may run with default credentials, permissive settings, or unsecured APIs. Inventory, approve, isolate, and monitor every server.
MCP10:2025 — Context Injection & Over-Sharing Shared or persistent context can expose sensitive information from one task, user, or agent to another. Scope context and prevent unintended persistence.

How to use the categories in a security review

Do not treat the ten entries as ten independent boxes to tick. One design flaw can contribute to several categories: for example, an unapproved server may have a weakly protected credential, excessive permissions, and no useful audit trail. Review the actual data and authority available along the MCP path, then ask what prevents an untrusted description, output, or input from turning into an unintended action.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. Map the deployment. List each host, client, local or remote server, tool, data source, and API connection. Include experimental or personally configured servers, not only centrally managed services.
  2. Trace identities and permissions. For each connection, identify who or what is authenticated, which credentials are available, what scopes they grant, and how those scopes expire or get reviewed.
  3. Inspect the tool boundary. Record the tool definitions the model sees and how changes are approved. Check whether untrusted data can affect command execution, API requests, or other consequential actions.
  4. Follow context and outputs. Determine what information is retained, shared, logged, or returned to the model, and whether task or user boundaries prevent unintended reuse.
  5. Check detection and response. Establish which interactions can be reconstructed from logs, who reviews alerts, and how a server, token, or tool definition can be disabled or rotated if compromised.

For each finding, document the affected server or tool, the exposed data or action, the likely trust boundary involved, the control owner, and a practical test for whether the remediation works. That turns a category label into something an engineering team can assign and verify.

Controls to compare across MCP deployments

OWASP’s review areas are useful as a control checklist when selecting an architecture or assessing an existing one. The answers should be specific to the deployment: a policy that exists on paper is not evidence that every connected server follows it.

  • Credential lifetime and scope: Are credentials injected at runtime, limited to the required action, and short-lived? Are secrets excluded from model-visible context and appropriately redacted from logs?
  • Tool-schema integrity: Can a tool definition change after approval? Is there a pinned or otherwise inspectable version and a process to notice unexpected changes?
  • Isolation: What filesystem and network boundaries constrain a server? Can it access unrelated repositories, services, or local data?
  • Human approval: Which destructive actions or data-sharing operations require explicit review instead of relying only on model judgment?
  • Input, output, and SSRF validation: Are values crossing trust boundaries validated, including values that could trigger requests to unintended destinations?
  • Remote access: Do remote connections use authentication and TLS? Are sessions bound to the right requester, and are replay risks addressed?
  • Supply-chain provenance: Can the team identify where a server and its dependencies came from, whether components are signed, and whether dependency changes are monitored?
  • Monitoring depth: Do logs cover tool calls, context changes, and user-agent interactions in a form that supports detection and investigation?

Practical answers to common implementation questions

Should MCP servers use short-lived OAuth tokens?

Where an MCP server or connected service uses tokens, short-lived, scoped credentials are a recommended way to reduce the impact of exposure. The exact token mechanism depends on the system; the key review questions are whether the credential is limited to the required authority, how long it remains valid, where it is stored or injected, and how it can be revoked or rotated. A short lifetime does not compensate for an unnecessarily broad scope or a secret exposed in context.

How do you prevent tool poisoning and prompt injection?

Start by treating tool descriptions, retrieved material, and tool outputs as untrusted inputs rather than policy. Inspect and pin definitions, detect unexpected changes, validate data before it reaches commands or APIs, and sandbox execution. Keep approval requirements around destructive actions and data sharing. These measures address different points in the chain; no single prompt instruction should be treated as a complete defense.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

How do you find shadow MCP servers?

Build and maintain an inventory from the places servers are configured and used, then compare that inventory with approved deployments. Include local stdio servers as well as remote HTTP/SSE services. For each discovered server, identify its owner, permissions, credentials, network and filesystem reach, and monitoring status. Unapproved does not automatically mean malicious, but an unknown server cannot be governed or assessed reliably.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Using an MCP-enabled screenshot service as an inventory example

ScreenshotNeo is a website screenshot API and MCP server from Yorker Media. Its MCP tools are take_screenshot, get_page_info, and capture_pdf. That makes it one concrete example of a server a team may need to include in its inventory; its presence here is not an OWASP endorsement or a claim that any particular deployment has passed a security review. Apply the same checks used for other servers: verify the configured connection, permissions, credentials, tool definitions, and logging in your own environment. Product details are at ScreenshotNeo.

Or skip the browser setup

If your task is simply to capture a page, ScreenshotNeo provides a one-request screenshot API rather than a browser setup. The call below saves a WebP screenshot of the target URL:

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

See the ScreenshotNeo API documentation for the request options. It accepts consent banners and removes more than 60 known consent platforms, newsletter popups, and chat widgets before capture; each of those steps can be turned off. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits cost nothing, and response headers identify the page verdict and whether the request was billed. Its MCP server lets AI agents use the screenshot, page-info, and PDF tools. The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000 screenshots. These capture and billing features are separate from the MCP security controls discussed above.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Sign up for ScreenshotNeo’s free plan to get 1,000 screenshots a month with no card.

Conclusion

The OWASP MCP Top 10 is most useful as a map of trust boundaries and failure modes: credentials, permissions, tool definitions, dependencies, inputs, identities, telemetry, server inventory, and context. Apply its categories to the full host-client-server-tool path, record deployment-specific evidence, and verify that controls work where untrusted data or authority crosses a boundary.

Frequently Asked Questions

Does the OWASP MCP Top 10 certify an MCP server as secure?

No. It is a risk framework, not a certification or a pass/fail security assessment.

Does MCP use stdio or HTTP/SSE for every connection?

No. OWASP describes stdio as common for local servers and HTTP/SSE as common for remote servers; the transport depends on the deployment.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.