Skip to main content
Glama
mysleekdesigns

CrawlForge MCP Server

scrape_structured

Read-onlyIdempotent

Extract structured data from web pages using CSS selectors. Specify fields and selectors to get JSON output from consistent markup, like pricing tables or product lists.

Instructions

Use this when you know the exact CSS selectors for the data you want — e.g. scraping a pricing table or product list with consistent markup. More reliable than LLM extraction for well-structured pages. Example: scrape_structured({url: "https://shop.com/products", selectors: {price: ".price", name: ".product-title"}})

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL to scrape
selectorsYesCSS selectors mapping field names to selectors. Append @attr to extract an attribute instead of text (e.g. "a.link@href", "img@src")
max_resultsNoMaximum number of matches to return per field when a selector matches multiple elements
Behavior4/5

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

Annotations already indicate readOnlyHint, idempotentHint, etc. The description adds behavioral context beyond annotations, such as reliability comparison with LLM extraction and the @attr syntax for attribute extraction. No contradictions detected.

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?

The description is concise (two sentences) and front-loaded with the key usage instruction. The example is embedded, which slightly reduces clarity but overall efficient. No wasted words.

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

Completeness4/5

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

For a tool with 3 parameters (all described) and no output schema, the description is mostly complete. It covers when to use, example usage, and selector syntax. Minor gap: no mention of max_results behavior or how multiple matches are handled.

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 description coverage is 100%, so parameters are already well-documented. The description provides an example call and clarifies the @attr syntax, but adds minimal new meaning beyond the schema. Baseline 3 is appropriate.

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?

The description clearly states the tool's purpose: scraping structured data using exact CSS selectors for well-structured pages like pricing tables or product lists. It distinguishes itself from LLM extraction, indicating a specific use case.

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?

The description explicitly states when to use this tool ('when you know the exact CSS selectors') and implies an alternative (LLM extraction) but does not mention other sibling tools like scrape_with_actions or extract_with_llm. It provides clear context but lacks exclusions for other scenarios.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mysleekdesigns/crawlforge-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server