Clean inputs.
Exact outputs.
Plainport gives autonomous agents a bounded, deterministic route from messy public web resources to structured data. No model calls. No account. No retained payloads.
https://plainport.exportitnow.workers.dev/mcpRESThttps://plainport.exportitnow.workers.dev/api/v1SCHEMAhttps://plainport.exportitnow.workers.dev/openapi.jsonTen tools. One contract.
fetch_markdownFetch readable Markdown
Fetches one public HTTP/HTTPS page and returns its primary readable content as Markdown. Use this for article or documentation body text without page chrome. It does not run JavaScript; use a browser tool for client-rendered pages. Native text/markdown responses are preserved.
inspect_urlInspect URL response
Resolves a public URL through bounded redirects and returns status plus a safe allowlist of HTTP headers. Use HEAD for cheap reachability/type checks and GET when a server mishandles HEAD. Use extract_metadata for HTML semantic metadata.
extract_metadataExtract page metadata
Fetches one public HTML page and extracts title, description, canonical URL, robots directives, Open Graph, Twitter Card, advertised feeds, and parsed JSON-LD. Use this when an agent needs page identity or structured data rather than body text.
extract_linksExtract page links
Fetches one public HTML page and returns unique normalized HTTP/HTTPS links with anchor text, rel values, and same-origin classification. Use this for bounded navigation discovery; it does not crawl the returned links.
parse_feedParse web feed
Fetches and normalizes RSS 2.0, Atom 1.0, or JSON Feed into a stable item list. Use this when consuming update feeds without format-specific parsing. It does not fetch linked articles.
parse_sitemapParse sitemap
Fetches one uncompressed XML sitemap and returns either URL entries or child sitemap references. Use this for site structure discovery. Sitemap indexes are not recursively expanded; call this tool on each child explicitly.
inspect_robotsInspect robots policy
Fetches an origin's robots.txt and evaluates one path for a named user agent using longest-match allow/disallow precedence. Also returns crawl delay and declared sitemaps. Use this before automated retrieval; the result is policy guidance, not authorization.
html_to_markdownConvert HTML to Markdown
Converts supplied HTML into readable Markdown without fetching a URL. Use this when the agent already has HTML. Provide base_url only to resolve relative links; use fetch_markdown when Plainport should retrieve the page.
diff_textDiff text
Computes a deterministic line- or word-level diff and returns typed add/remove/equal parts. Use this when an agent needs structured change data. Split highly divergent large documents if the computation limit is reached.
validate_json_schemaValidate JSON Schema
Validates a JSON value against a supplied JSON Schema using draft 4, 7, 2019-09, or 2020-12. Use this to verify generated or extracted structured data. It performs validation only and does not mutate the instance.
Made for tool selection
Every capability has a narrow name, strict input schema, typed response, explicit ceiling, and a clear “use something else” boundary.
Designed to stay public
Stateless edge execution, no database, no browser fleet, no paid API, and hard limits before costly work.