WebExtract
Server Details
Web page to clean Markdown or fixed-schema JSON (product/price, tables). Free 50 calls/day.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 2 tools
The tools overlap because both fetch a public page and return Markdown, but the descriptions make the distinction clear: extract_url adds structured JSON and costs more, while page_markdown is a cheaper Markdown-only subset. An agent can choose correctly, though page_markdown being a subset of extract_url creates some risk of misselection.
Both names use snake_case, but their patterns differ: extract_url is verb_noun, while page_markdown is noun_noun with no verb. The naming is readable but not a consistent convention.
Two tools is thin for a server, even a simple extraction service. Both earn their place via the cost/structured-output distinction, but the surface feels minimal rather than well-scoped.
The core single-page fetch workflow is covered in both Markdown-only and structured forms. Minor gaps like batch extraction, sitemap crawling, or raw HTML retrieval exist but are workable for the stated purpose.
Available Tools
2 toolsextract_urlExtract web pageARead-onlyInspect
Fetch a public web page (robots.txt respected) and return clean Markdown plus fixed-schema JSON: article metadata, product/price, tables. Free 50 calls/day per IP; pass 'Authorization: Bearer ' for prepaid credits.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public http(s) URL |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| tables | Yes | |
| product | Yes | |
| markdown | Yes | |
| metadata | Yes | |
| final_url | Yes | |
| fetched_at | Yes | |
| word_count | No | |
| schema_version | Yes | |
| markdown_truncated | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint/openWorldHint annotations, the description discloses real operational behavior: robots.txt is honored, the free tier is capped at 50 calls/day per IP, and prepaid credits require an 'Authorization: Bearer <key>' header. These are exactly the constraints an agent needs to avoid surprise failures. It stops short of covering failure modes such as blocked pages or non-HTML content.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler, front-loading what the tool does before the operational constraints. The second sentence packs quota and auth details densely but every clause is actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value structure need not be explained, and the description nonetheless summarizes it. Auth, quota, and scope are all covered. The one missing piece for this tool's complexity is disambiguation from page_markdown, which is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single parameter with 100% schema description coverage ('Public http(s) URL'), so the schema already carries the semantics. The description only echoes the public-URL constraint, adding nothing material beyond what the schema states; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb and resource — fetch a public web page and return Markdown plus fixed-schema JSON — and even enumerates the JSON payload categories (article metadata, product/price, tables). It is clear, but it never distinguishes itself from the sibling page_markdown, leaving the agent to guess which extractor to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'public web page' and 'robots.txt respected' signal the accepted scope, and the auth/credit sentence hints at paid traffic. There is no explicit when-to-use, no when-not-to-use, and no routing to page_markdown, so the agent must infer the boundary between the two tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
page_markdownWeb page to MarkdownARead-onlyInspect
Fetch a public web page (robots.txt respected) and return clean Markdown only. Cheaper than extract_url (0.4 credit). Free 50 calls/day per IP; pass 'Authorization: Bearer ' for prepaid credits.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public http(s) URL |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| title | No | |
| markdown | Yes | |
| final_url | Yes | |
| fetched_at | No | |
| word_count | No | |
| markdown_truncated | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover readOnly and openWorld; the description goes well beyond them by disclosing robots.txt compliance, the free-tier rate limit (50 calls/day per IP), and how to authenticate with a Bearer key for prepaid credits. These are exactly the operational constraints an agent needs before invoking.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: capability and output first, then cost/alternative, then rate limits and auth. No filler, and the most decision-relevant facts are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return-format explanation is unnecessary, and the description covers the remaining gaps: cost, sibling alternative, rate limits, auth, and robots.txt behavior. Nothing material is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single url parameter, so the schema already documents it. The description adds the Authorization header convention, which is not represented in the input schema and would otherwise be invisible to the caller.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (fetch) and resource (public web page), and specifies the output format (clean Markdown only). It also distinguishes itself from the sibling extract_url by naming it and noting the cost difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly positions itself against extract_url on cost ('Cheaper than extract_url (0.4 credit)'), giving the agent a selection rationale. It stops short of stating when extract_url would be the better choice (e.g., richer extraction), so exclusions are implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- Changed
extract_url1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "fetched_at": { + "type": "string" + }, + "final_url": { + "type": "string" + }, + "markdown": { + "type": "string" + }, + "markdown_truncated": { + "type": "boolean" + }, + "metadata": { + "properties": { + "authors": { + "items": { + "type": "string" + }, + "type": "array" + }, + "canonical_url": { + "type": [ + "string", + "null" + ] + }, + "description": { + "type": [ + "string", + "null" + ] + }, + "image": { + "type": [ + "string", + "null" + ] + }, + "language": { + "type": [ + "string", + "null" + ] + }, + "modified_at": { + "type": [ + "string", + "null" + ] + }, + "published_at": { + "type": [ + "string", + "null" + ] + }, + "site_name": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": [ + "string", + "null" + ] + }, + "type": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" + }, + "product": { + "properties": { + "availability": { + "type": [ + "string", + "null" + ] + }, + "brand": { + "type": [ + "string", + "null" + ] + }, + "currency": { + "type": [ + "string", + "null" + ] + }, + "description": { + "type": [ + "string", + "null" + ] + }, + "gtin": { + "type": [ + "string", + "null" + ] + }, + "image": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "price": { + "type": [ + "number", + "null" + ] + }, + "price_high": { + "type": [ + "number", + "null" + ] + }, + "rating": { + "type": [ + "object", + "null" + ] + }, + "sku": { + "type": [ + "string", + "null" + ] + }, + "source": { + "type": [ + "string", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + "schema_version": { + "type": "string" + }, + "tables": { + "items": { + "properties": { + "caption": { + "type": [ + "string", + "null" + ] + }, + "checks": { + "properties": { + "column_count": { + "type": "integer" + }, + "consistent_width": { + "type": "boolean" + }, + "row_count": { + "type": "integer" + } + }, + "type": "object" + }, + "headers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "index": { + "type": "integer" + }, + "rows": { + "items": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "url": { + "type": "string" + }, + "word_count": { + "type": "integer" + } + }, + "required": [ + "url", + "final_url", + "fetched_at", + "schema_version", + "markdown", + "metadata", + "product", + "tables" + ], + "type": "object" +}
- Changed
page_markdown1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "fetched_at": { + "type": "string" + }, + "final_url": { + "type": "string" + }, + "markdown": { + "type": "string" + }, + "markdown_truncated": { + "type": "boolean" + }, + "title": { + "type": [ + "string", + "null" + ] + }, + "url": { + "type": "string" + }, + "word_count": { + "type": "integer" + } + }, + "required": [ + "url", + "final_url", + "markdown" + ], + "type": "object" +}
2 tool updates
- First observed
extract_url - First observed
page_markdown
Related MCP Connectors
Web page or HTML to clean LLM-ready Markdown or JSON. x402 pay-per-call, $0.005, no API key.
Clean product data from any URL. Schema.org + AI extraction. 200 free calls/month.
PDF/Word/Excel/HTML to clean Markdown for LLMs and RAG. Keys $19/mo; 50 free calls a day.
Clean markdown and structured web data. Free card API key; wallet/x402 pay-per-call optional.
Related MCP Servers
- AlicenseAqualityBmaintenanceFetch any web page as clean Markdown or plain text, split it into heading-aware, token-bounded RAG chunks, convert raw HTML, and read page metadata. Uses the Web2MD API on RapidAPI with your own key (free BASIC plan).44MIT
- AlicenseAqualityDmaintenanceConverts URLs and raw HTML to clean Markdown, enabling AI assistants to read web pages for summarization, analysis, or ingestion.25 npm1MIT
- AlicenseNot gradedqualityCmaintenanceTurns any web page into clean, token-budgeted Markdown for AI agents, with no browser installation required.8MIT

flycrawlofficial
AlicenseAqualityBmaintenanceTurn Any Website Into Clean Fit-Markdown for AI Extract clean, structured Markdown from any static or dynamic website at enterprise scale. Reduce token costs by 90% and feed pure signal into your RAG pipelines and AI agents.41MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.