Build with AI

Which MCP servers are safe to install?

· By Robert Scales · 4 min read

Short answer

No MCP server is safe by default: each one is a program that runs on your computer and whose tool descriptions are read by your AI assistant. The safer ones come from a source you can identify, ask for the narrowest access, have readable code and tool descriptions, and are pinned to a version you have checked.

The Model Context Protocol (MCP) lets assistants such as Claude Desktop or the Cursor code editor connect to small programs called servers that give them new tools: reading files, searching a database, sending email. Community servers have multiplied since MCP was introduced in November, and installing one is often a single line in a configuration file. That ease is exactly why it deserves a pause.

Two facts shape the risk. First, a local MCP server is a program running on your machine with your user's permissions, so it can do whatever a program you downloaded could do. Second, your assistant reads each server's tool descriptions, the text that explains what each tool does, and treats them as guidance. The MCP specification published on March 26 says it plainly: tools amount to arbitrary code execution, descriptions of tool behaviour should be treated as untrusted unless the server is trusted, and the app should get your explicit consent before any tool runs. The protocol itself can't enforce those principles; the apps and you have to.

A vetting checklist

Use this before you add any server. The example server in the last column is illustrative.

QuestionWhat to look forExample: a "notes search" server
Who made it?An organization you can identify: the MCP project's own reference servers, or the official server of the service it connects to. Be wary of anonymous copies of popular names.Published by the note app's company, on its own GitHub account
Can you read it?Source code available, recent activity, an issue tracker where problems are answered.Small codebase, readable in 20 minutes
What does it touch?The narrowest access that does the job. A file server should get one folder, not your home directory.Read-only, one notes folder
Does it go online?If it only needs local data, it shouldn't make network calls. If it must, to which addresses?No network calls in the code
What secrets does it need?API keys only for its own service, with the lowest permission level you can create.None
What do its tools say?Read every tool description in full. Instructions aimed at the model, or mentions of other tools or files, are red flags.One tool, one plain sentence
Which version?Install a specific version you reviewed, rather than whatever is newest each launch.Version number fixed in the config

Then a few habits. Add servers one at a time. Keep servers that handle sensitive data (email, finance, credentials) out of the same assistant session as servers you trust less. Leave the confirmation prompts switched on, and actually read what a tool call is about to send before you approve it. And remember the configuration file itself can hold keys for every server you use, which makes it a prize worth protecting.

Try it: Open your assistant's MCP configuration file and list every server in it. For each one, write down who made it, what folder or account it can reach, and its version. Remove anything you can't answer for.

Checking tool descriptions yourself

Most chat apps show a short tool name, not the full description the model receives. To see everything, connect the server to the MCP Inspector, the developer tool from the MCP project, and list its tools; it displays each description and input field in full. Look especially for long descriptions on simple tools, for words like "important" or "before using this tool," and for unexpected extra input fields that the task doesn't need.

What is tool poisoning?

Tool poisoning is a name for an attack published on April 1 by Invariant Labs, a security research company. A malicious MCP server hides instructions inside a tool description. The user sees a harmless tool name; the model sees the full text and may follow it. It is a form of indirect prompt injection: instructions arriving through data the model processes rather than from the user.

In their example, a tool that claims simply to add two numbers carries a description telling the model to first read a configuration file and the user's private SSH key (the secret file used to log in to servers), and pass their contents in an extra input field, while chatting about arithmetic so the user doesn't notice. Tested with Cursor, the agent did read the files and send them to the malicious server. The confirmation dialog didn't reveal the full input, so approving the call didn't protect the user.

The researchers describe two variations. In a rug pull, a server you approved later changes its tool descriptions, so your earlier review no longer applies. In shadowing, a malicious server's description changes how the model uses a different, trusted server's tool; in their test, an instruction from a fake addition tool made the agent send every email to the attacker's address, whatever recipient the user had asked for.

Their suggested fixes are aimed mostly at app makers: show users full tool descriptions, pin servers and tools to verified versions with a checksum (a fingerprint that changes if the content changes), and stop servers from influencing each other. Until apps do that, the checklist above is your protection: fewer servers, known sources, fixed versions, and descriptions you have read yourself.

Sources

  1. MCP Security Notification: Tool Poisoning Attacks — Invariant Labs, April 1, 2025
  2. Model Context Protocol specification, version 2025-03-26 (overview) — Model Context Protocol (GitHub), March 26, 2025
  3. Quickstart (Model Context Protocol documentation) — Model Context Protocol / Anthropic (GitHub), December 2, 2024

Get the free Guide to Artificial Intelligence

Sign up for the weekly newsletter and receive the free guide: what changed in AI this week, one lesson, one prompt to try. Unsubscribe in one click.

How we handle your address

Back to top

Display

Your choices are saved in this browser only. No data is sent.

Text size
100%
Colours
Reading
More settings
Accessibility statement