:// PLAINPORT
Agent utility layer / v0.1

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.

MCPhttps://plainport.exportitnow.workers.dev/mcpRESThttps://plainport.exportitnow.workers.dev/api/v1SCHEMAhttps://plainport.exportitnow.workers.dev/openapi.json

Ten tools. One contract.

fetch_markdown

Fetch 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_url

Inspect 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_metadata

Extract 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_links

Extract 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_feed

Parse 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_sitemap

Parse 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_robots

Inspect 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_markdown

Convert 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_text

Diff 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_schema

Validate 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.