In depth
Tool poisoning exploits the fact that an AI model treats tool descriptions as trusted guidance. The tool’s code may be harmless; the attack is in the text. A poisoned description might instruct the model to include the contents of an SSH key in a “notes” argument, to prefer this tool over a legitimate one, or to conceal what it is doing from the user. Attackers hide instructions with invisible Unicode characters, base64, or text far down a long description, and impersonate trusted servers with look-alike names (typosquatting). Because users rarely read full tool descriptions, the instructions reach the model without a human ever seeing them.
Why it matters
Every MCP server an organization connects adds text to the model’s context that the organization did not write. Without review, the catalog of approved tools becomes an injection channel with the model’s full trust. Defense works at two points: scan tool metadata when a server is added or changes, and enforce the verdict when a tool is called, not only when tools are listed, since a client can call a tool by name without ever listing it.
Common use cases
- Scanning tool names, descriptions and schemas when an MCP server is added
- Detecting invisible Unicode, encoded payloads and look-alike server names
- Blocking a flagged tool at call time as well as hiding it from listings
- Re-scanning a server’s tools when its definitions change
- Recording each review decision with the reviewer’s reasoning
How Ferentin handles it
Ferentin is the trust layer for AI agents. The platform centralizes identity, policy enforcement and audit across LLMs, MCP servers and AI tools. Tool Poisoning is one of the primitives this trust layer is designed around. See the platform overview for how it fits into the service edge, control plane and observability plane.