Skip to main content
Glama

Scan MCP tool definitions for tool poisoning

scan_tools
Read-onlyIdempotent

Checks MCP / function-calling tool definitions for tool poisoning (hidden instructions, data-exfiltration requests, hijack attempts in names, descriptions and schemas) before your agent installs or calls them. Use scan_text for ordinary content and scan_url for web pages. Up to 100 tools per call. Free: 30 calls/day per IP shared by scan_text, scan_url and scan_tools, with full results (max 10/min; invalid input is not counted). After that the tool returns an error with the x402 pay URL ($0.003 USDC on Base, Polygon, Arbitrum One or Solana per call at https://api.youraitools.co/injectscan/v1/scan) or prepaid credits. Returns the worst risk_score/verdict, flagged, tools_scanned, tools_flagged and tools[] {index, name, risk_score, verdict, categories, findings[] {field, rule, text}}. Read-only safety signal, not a guarantee.

Input Schema

NameRequiredDescriptionDefault
toolsYes1-100 tool definitions as objects {name, description, inputSchema} (as returned by an MCP server's tools/list; input_schema or parameters are also read). Every string field, including nested schema descriptions, is scanned.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / tools / description
      Previous value: -"1-100 tool definitions"New value: +"1-100 tool definitions as objects {name, description, inputSchema} (as returned by an MCP server's tools/list; input_schema or parameters are also read). Every string field, including nested schema descriptions, is scanned."
  2. Added

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/openWorld=false/idempotent, but the description adds substantial context beyond them: a 30 calls/day free tier shared across all three scan tools, a 10/min cap, invalid input not counted, and a documented x402 fallback with price, chains and URL. It also discloses the return payload fields and honestly frames output as a safety signal, not a guarantee. The only thing left implicit is latency/behavior on partial failures.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, then alternatives, then limits, then return shape — a sensible information order. It is dense, however: rate-limit, pricing and return-shape details are packed into one long paragraph where a few of the clauses (invalid-input accounting, full URL) could be trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter, no-output-schema tool, the description covers everything an agent needs: what is scanned, limits, failure/payment path, response fields and the caveat that the verdict is not a guarantee. Nothing actionable is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema description already explains the 1-100 object shape plus the name/description/inputSchema key handling. The description's 'Up to 100 tools per call' largely restates the schema's '1-100' bound, adding no format or edge-case meaning. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — checks MCP/function-calling tool definitions for tool poisoning — and enumerates the vectors it looks for (hidden instructions, exfiltration, name/description/schema hijacks). It also explicitly separates itself from scan_text and scan_url, so an agent can route without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives the exact decision rule: use this on tool definitions before installing or calling them, use scan_text for ordinary content, scan_url for web pages. Alternatives and selection conditions are both named, leaving nothing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources