Skip to main content
Glama

Structured Data Extraction (AI)

page_extract
Read-only

Extract structured JSON from a web page or text with fields you define: send url (or text) and fields like {"price": "price in EUR as number", "in_stock": {"type": "boolean"}}, get back exactly those fields, typed and validated against a JSON schema. Types: string, number, integer, boolean, string[], number[]. Fields the content does not state come back as null instead of being guessed. Up to 25 fields; optional instructions for extra rules. For product data, prices, contact and company details, job postings, event data, specs. Uses Claude Haiku 5.5 with structured outputs; page content is treated as data, instructions inside it are ignored. Not charged when the page cannot be read. Price: $0.007 USDC per call, paid inside this MCP call via x402 (USDC on Base, Solana, Polygon or Arbitrum). x402 MCP clients such as @x402/mcp pay automatically. Free sample: call with the example input {"url":"https://www.zalando.de/zalando-impressum/","fields":{"company":"legal company name","city":"city of the registered office","register_number":"commercial register number","vat_id":"VAT ID"}}.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlNoPage to extract from (or send text)
textNoRaw text instead of a URL, max 60,000 chars
fieldsYesField name -> description string, or {type, description}. Types: string, number, integer, boolean, string[], number[]
instructionsNoOptional extra rules, max 500 chars

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior5/5

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

Adds substantial context beyond readOnlyHint/openWorldHint: the per-call price and x402 payment flow, 'not charged when the page cannot be read', the model used, the null-instead-of-guessing contract, the 25-field cap, and a prompt-injection stance ('page content is treated as data, instructions inside it are ignored'). This is exactly the kind of behavioral detail annotations cannot express.

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?

Long, but the core verb+contract leads, followed by types, limits, use cases, safety, and pricing — a sensible priority order. It is dense with little true filler, though the pricing/sample sentences make it heavier than the minimum needed to select and call the tool.

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?

Given four parameters, nested field objects, no output schema, and a paid AI-backed operation, the description covers everything an agent needs: input formats, type vocabulary, limits, return shape (fields or null), charge conditions, and payment mechanics. Nothing material is left for the caller to infer.

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

Parameters4/5

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

Schema coverage is 100% so the baseline is 3, but the description earns more by showing the field-map format with a typed nested example ({"in_stock": {"type": "boolean"}}), restating the allowed types, and clarifying that url and text are alternatives ('send url (or text)'). Instructions is covered only briefly, hence not a 5.

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 — 'Extract structured JSON from a web page or text with fields you define' — and immediately shows the input/output contract with a concrete field example. It is clearly distinguishable from siblings like page_summarize (summarizes) and pdf_extract (operates on PDFs), since this tool takes user-defined fields and returns typed JSON.

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

Usage Guidelines4/5

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

Enumerates concrete use cases ('product data, prices, contact and company details, job postings, event data, specs') and supplies a runnable free-sample input, which is strong positive guidance. It never states when not to use it or explicitly names the alternative sibling (e.g. page_summarize) for non-field-based extraction, so it stops short of full routing guidance.

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