TKOResearch
Menu
Back to insights
MCP SecurityMCP SecurityReview checklist

MCP Security Review Checklist: How to Assess Tool-Connected LLM Systems

A security checklist for MCP servers, clients, OAuth flows, tokens, tools, permissions, trust boundaries, logging, and blast radius.

Last reviewed May 4, 202611 min read

Start With The Boundary

MCP security is not only about whether a Model Context Protocol server works.

It is about whether the system can safely connect LLMs and AI agents to real tools, real credentials, real APIs, real files, and real business actions.

The security review needs to answer:

If the agent, prompt context, MCP server, tool description, OAuth flow, or tool output is manipulated, what can the system access or change?

Official MCP security guidance describes MCP-specific attack vectors and best practices for developers, server operators, and security professionals evaluating MCP implementations. It specifically discusses risks such as confused deputy behavior, authorization flow weaknesses, token passthrough, SSRF, session hijacking, local server compromise, consent handling, state validation, and scope minimization.

Why MCP Changes The Security Model

MCP is useful because it standardizes how AI systems connect to tools and data. That same standardization creates a high-value trust boundary.

Before MCP, a chatbot might only answer questions.

With MCP, the system may be able to:

  • Search files.
  • Query databases.
  • Create tickets.
  • Send messages.
  • Modify records.
  • Read code.
  • Trigger workflows.
  • Call internal APIs.
  • Run local tools.
  • Connect to third-party SaaS platforms.

That means MCP should be reviewed as an execution and authorization layer, not just an integration detail.

MCP Security Review Goals

A practical MCP review should determine:

QuestionWhy It Matters
What MCP clients exist?Each client may have different trust and authorization assumptions.
What MCP servers exist?Each server introduces a tool and data boundary.
What tools are exposed?Tool descriptions and schemas become part of model decision-making.
What credentials are used?Tokens determine real blast radius.
Who authorizes actions?User consent, per-client consent, and server-side authorization must be explicit.
What can be read or modified?Tool scope determines business impact.
What is logged?Response and remediation require traceable artifacts.
What actions require approval?High-impact operations need deterministic gates.

1. Build The MCP System Inventory

Start with an inventory.

ComponentExampleReview Question
MCP clientAI assistant, IDE agent, internal workflow agentWho controls the client and what trust level does it have?
MCP serverSaaS connector, local filesystem server, database serverWhat does the server expose to the client?
Toolsearch_docs, send_email, update_customer, run_queryWhat can the tool actually do?
CredentialOAuth token, API key, service account, local secretIs access scoped to the user, tool, tenant, and action?
Data sourceCRM, GitHub, Google Drive, internal DB, filesystemWhat sensitive data can be exposed?
RuntimeLocal machine, container, serverless, internal serviceWhat network, file, and process access exists?

If the organization cannot produce this inventory, the MCP environment is not ready for production.

2. Map Trust Boundaries

MCP systems usually cross multiple trust boundaries.

At minimum, diagram this path:

User
  -> AI Client / Agent Runtime
  -> MCP Client
  -> MCP Server
  -> Tool Implementation
  -> Third-Party API / Internal Service / Local Resource

Then mark where the following cross boundaries:

  • User instructions.
  • System/developer instructions.
  • Tool descriptions.
  • Tool parameters.
  • Tool output.
  • OAuth tokens.
  • API keys.
  • Retrieved data.
  • Local files.
  • Logs.
  • Approval events.

The highest-risk areas are usually where natural language crosses into structured action.

3. Review OAuth And Authorization Flows

Authorization is one of the most important MCP review areas.

Official MCP security guidance describes the confused deputy problem in MCP proxy servers, where static client IDs, dynamic client registration, consent cookies, and missing per-client consent can allow malicious clients to obtain authorization codes without proper user consent.

Review these items:

ControlReview Question
Per-client consentDoes each MCP client require explicit user approval?
Redirect URI validationAre redirect URIs exact-match validated?
OAuth stateIs state cryptographically random, single-use, and validated?
Token scopeAre tokens scoped to the minimum required resources/actions?
Token lifetimeAre tokens short-lived where possible?
Token storageAre tokens encrypted and server-side protected?
User attributionCan every action be tied to the correct user?
Service accountsAre service credentials avoided or heavily constrained?

The review should verify that authorization happens outside the model. The model can request an action, but deterministic code must decide whether it is allowed.

4. Identify Token Passthrough And Credential Hazards

Credential misuse is where MCP risk becomes operationally serious.

Look for:

HazardWhy It Matters
Token passthroughDownstream services may receive tokens outside intended trust boundaries.
Long-lived API keysCompromise creates durable access.
Shared service accountsActions cannot be tied to individual users.
Overbroad OAuth scopesOne compromised workflow can access too much.
Credentials in tool outputThe model may expose or reuse secrets.
Local secret accessLocal MCP servers may access files or environment variables.

A safe design minimizes the number of places where credentials exist, scopes each credential tightly, and avoids giving the model visibility into secrets.

5. Review Tool Descriptions And Schemas

Tool descriptions are not just documentation. They are model-facing instructions.

Review:

ItemRisk
Tool nameAmbiguous names can lead to wrong tool selection.
Tool descriptionMalicious or misleading descriptions can influence behavior.
Parameter schemaLoose schemas allow unsafe parameters.
Allowed valuesMissing allowlists increase abuse potential.
Return valuesTool output may be interpreted as trusted context.
Error messagesErrors may leak sensitive paths, IDs, or secrets.

A safe MCP tool should have a narrow purpose, strict schema, clear input validation, and minimal output.

6. Classify Every Tool By Action Impact

Not all tools are equal.

Use a matrix like this:

ToolAction TypeData TouchedImpactRequired Control
docs.searchReadInternal docsMediumAuthorized retrieval and logging
crm.update_contactWriteCustomer recordsHighUser-scoped auth and confirmation
email.sendExternal communicationEmail recipients/contentHighDraft-first or approval
github.create_issueWriteEngineering workflowMediumUser attribution and rate limits
shell.executeCode executionRuntime/filesystemCriticalDeny or strict sandbox
billing.refundFinancial actionCustomer billingCriticalHuman approval and policy engine

OWASP's AI Agent Security Cheat Sheet recommends minimum necessary tools, per-tool permission scoping, separate tool sets for different trust levels, and explicit authorization for sensitive operations.

7. Review Destructive-Action Controls

Every MCP system should classify high-impact actions.

High-impact actions include delete, send, publish, deploy, approve, refund, transfer, invite, permission changes, production-data modifications, code execution, and external commitments.

For each action, define:

ControlRequirement
Human confirmationRequired before execution.
Policy checkServer-side decision independent of the model.
Scope checkTenant, user, role, and resource validation.
Replay protectionPrevent repeated or stale execution.
LoggingPreserve prompt, parameters, authorization, and result.
RollbackDefine whether the action is reversible.

A prompt should never be the only thing standing between an agent and a destructive action.

8. Treat Tool Output As Untrusted Input

Tool output can poison the next step.

Tool Output SourceRisk
Webpage fetchHidden or visible hostile instructions.
Ticket/email bodyAttacker-controlled content enters context.
Database fieldStored injection through user-controlled data.
API responseMalicious or malformed output influences next tool call.
Log outputPrior execution traces become instructions.
Retrieved documentRAG poisoning or instruction injection.

OWASP's prompt injection guidance calls out agent attacks such as thought/observation injection, tool manipulation, and context poisoning.

The system should label tool output as data, not instruction. It should also constrain how tool output can influence subsequent tool calls.

9. Review Local MCP Server Risk

Local MCP servers deserve special scrutiny.

They may have access to:

  • Local files.
  • Developer credentials.
  • Shell commands.
  • Browser sessions.
  • SSH keys.
  • Source code.
  • Local databases.
  • Clipboard or editor context.
  • Environment variables.

Review whether local MCP servers:

CheckQuestion
File accessAre readable paths restricted?
Command executionAre commands allowlisted or blocked?
Startup behaviorCan configuration load untrusted servers?
Secret exposureCan the server read .env, keys, tokens, or credentials?
User consentDoes the user understand what the server can access?
LogsAre local actions recorded and reviewable?

For enterprise use, local MCP servers should be treated like privileged endpoint software.

10. Validate Logging And Auditability

MCP systems should log enough to reconstruct actions.

Minimum useful event fields:

FieldPurpose
User IDWho initiated the workflow.
Client IDWhich MCP client was used.
Server IDWhich MCP server handled the request.
Tool nameWhich tool was invoked.
Tool parametersWhat the model requested.
Authorization resultWhether policy allowed it.
Approval eventWhether human confirmation occurred.
Downstream API targetWhat service/resource was touched.
ResultSuccess, failure, partial completion.
Trace IDCorrelates prompt, retrieval, tool call, and result.

Logs should be redacted, access-controlled, and retained according to the sensitivity of the workflow.

Sample MCP Security Checklist

Use this as a starting checklist before MCP reaches production.

AreaReview QuestionPass Criteria
InventoryDo we know every MCP client, server, tool, and credential?Complete system inventory exists.
AuthorizationDoes each client require explicit consent and scoped authorization?Per-client consent and exact redirect validation.
Tool scopeAre tools scoped to minimum necessary actions?Read/write/delete/send/execute separated.
CredentialsAre tokens short-lived, scoped, and protected?No broad service tokens exposed to the model.
Destructive actionsAre high-impact actions gated?Confirmation and server-side policy required.
Tool outputIs tool output treated as untrusted data?Output cannot override system/developer instructions.
Local serversAre local filesystem/shell/secrets constrained?Strict path/command/secret controls.
LoggingCan actions be reconstructed?Prompt, tool, auth, approval, and result traces preserved.
Kill switchCan risky tools be disabled quickly?Operational disable path documented.

What A Good MCP Review Leaves Behind

A useful MCP review should leave the team with a clear inventory, a smaller permission set, and enough traceability to explain what happened after every tool call.

DeliverableDescription
Tool Inventory MatrixInventory of tools, permissions, OAuth scopes, credentials, data touched, and allowed actions.
MCP Trust-Boundary ReviewAnalysis of MCP client/server trust, upstream APIs, token flow, session handling, and local-server exposure.
Destructive-Action Control PlanClassification of high-impact actions and required approval, policy, or sandboxing controls.
Blast-Radius MapClear explanation of what an abused agent/tool path can read, write, modify, delete, send, or execute.
Scope Reduction PlanPractical roadmap for least privilege, allowlists, user-scoped auth, egress limits, and tool-call logging.

Final Thought

MCP makes tool-connected AI systems easier to build. That is exactly why MCP security matters.

The risk is not that MCP exists. The risk is deploying MCP servers, clients, tools, and credentials without a clear trust model.

Before production, every organization using MCP should be able to answer:

Which tools can this agent use, under whose authority, against which data, with what approval, and with what audit trail?

If the answer is unclear, the MCP environment is not ready.

What TKOResearch Reviews

TKOResearch performs MCP & Tool-Use Blast-Radius Reviews for teams connecting LLMs to production tools, SaaS systems, internal APIs, local resources, or sensitive data.

Request MCP Security Review

Sources