2026-07-12 · Dominion Observatory
Tool poisoning is the attack behind the June 2026 warning Microsoft issued to every Copilot and Azure customer: a malicious or compromised MCP server hides instructions inside a tool description, and your agent follows them — collecting data it shouldn't and sending it somewhere it shouldn't — all through tool calls that look completely normal.
A benchmark (MCPTox) measured the attack succeeding 72.8% of the time, with models almost never refusing. Here is why it works and what actually stops it.
When your agent connects to an MCP server, the server sends a manifest of its tools — each with a name, a natural-language description, and an input schema. The model reads those descriptions to decide when and how to call each tool. The problem: in the model's context, a tool description sits right next to its real instructions. Editing that description can steer the agent as effectively as rewriting its system prompt. Data and instructions share the same channel.
The rug pull variant is worse: the server behaves for weeks, you and your reviewers trust it, and then a tool description changes in production — after every human approval already happened.
A source-code scan reads the repo and grades it once. But the manifest your agent actually consumes is served at runtime by the running server, and it can differ from the repo — or change after the scan. Popularity and directory “verified” badges don't help either: independent research across 9,695 MCP servers found they do not predict security. The attack lives in exactly the gap a one-time code review cannot see.
Microsoft's own guidance is to baseline tool descriptions, schemas, and permissions at deployment, and to flag any later change for review before the modified tool is used. That is a runtime discipline, not a scan: record what the server presents today, then watch for it to change.
Run it free right now: paste your server into the MCP drift check. It fetches the live tool manifest, records a signed baseline, and tells you if anything has drifted since a prior check. For the rug-pull case — a change that can happen any day after approval — continuous monitoring ($29/mo) re-checks your server every ~20 minutes, alerts you the moment a description or schema changes, and keeps a signed, tamper-evident trail of every version. That trail is the evidence a security reviewer asks for.
Detecting a change is not the same as judging intent — a description can change for legitimate reasons too. What baseline-and-diff guarantees is that no change happens silently: you get to review it before your agent trusts it. Servers we cannot reach are shown unrated, never given a fabricated score.
Related: how to verify an MCP server is safe · MCP server security risks.
Check any MCP server's trust score: dominionobservatory.com/check
Browse all 40,000+ servers: Server Directory