Skip to main content
Glama

Fetch a web page and scan it for prompt injection

scan_url
Read-onlyIdempotent

Fetches a public web page and scans its visible text plus hidden HTML (comments, hidden elements, alt/aria/meta text) for prompt injection, before your agent browses or summarizes it. Use scan_text if you already have the content and scan_tools for MCP tool definitions. Respects robots.txt and refuses private/internal hosts. 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 risk_score (0-100), verdict (safe | suspicious | malicious), flagged, categories[] {category, score, description}, findings[] with location (visible or hidden), url, finalUrl, title, hidden_html {segments_checked, flagged} and page {status, contentType}. Read-only safety signal, not a guarantee.

Input Schema

NameRequiredDescriptionDefault
urlYesAbsolute http:// or https:// URL of a public web page, e.g. "https://example.com/post". Private, loopback and internal hosts are refused; robots.txt is respected.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / url / description
      Previous value: -"Absolute http(s) URL of a public page"New value: +"Absolute http:// or https:// URL of a public web page, e.g. \"https://example.com/post\". Private, loopback and internal hosts are refused; robots.txt is respected."
  2. Added

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the readOnly/openWorld/idempotent annotations: robots.txt compliance, refusal of private/internal hosts, free-tier quota with shared counters, per-minute rate limit, invalid-input policy, exact error behavior (x402 pay URL, price, chains) and the full return shape. This is exactly the extra context annotations cannot carry.

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 and sibling routing, and nearly every sentence carries operational value. The pricing/quota sentence is long and slightly over-detailed for a tool description, but it is a single clause and not repeated elsewhere.

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?

No output schema, so the description must and does enumerate the important return fields (risk_score, verdict, flagged, categories, findings with visible/hidden location, hidden_html, page status). It also sets the correct expectation with 'read-only safety signal, not a guarantee'.

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?

Single required parameter with 100% schema description coverage, which already states public absolute http(s) URL, private/loopback refusals and robots.txt behavior. The description adds no additional parameter-level semantics, so the schema-driven baseline of 3 applies.

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+resource ('fetches a public web page and scans... for prompt injection') and explicitly names what it scans (visible text plus hidden HTML segments). It is clearly distinguishable from scan_text and scan_tools, which are named as the alternatives for other input types.

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?

Explicitly frames when to use it ('before your agent browses or summarizes it') and routes the agent to the correct sibling: scan_text if the content is already in hand, scan_tools for MCP tool definitions. No ambiguity about selection.

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