# Lordevo Shop (x402 website checks) (remote · shop.lordevo.com)

33 paid x402 web/DNS/email/SSL checks for agents from $0.01 per call, plus 2 free tools.

- Trust score: 77/100 (medium)
- Change this week: +4
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `shop.lordevo.com`: 77/100 (this document), [markdown](https://verifymcp.io/servers/com-lordevo-shop/shop.md), [page](https://verifymcp.io/servers/com-lordevo-shop/shop)

## Channel facts

- Endpoint: `https://shop.lordevo.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.1.1`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 80/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 75/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 15930 tokens (~248/item across 64 items; 63 tools + 1 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 33/100
  - Stability observed for 10 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 99/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 97% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 75/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - 0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "math_eval" implies "eval" and declares readOnlyHint instead, contradicting what its own name says it does.
  - An AI judge read all 65 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### How do I install the Lordevo Shop (x402 website checks) MCP server?

Lordevo Shop (x402 website checks) is a hosted endpoint at https://shop.lordevo.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http com-lordevo-shop 'https://shop.lordevo.com/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "com-lordevo-shop": {
      "url": "https://shop.lordevo.com/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "com-lordevo-shop": {
      "type": "http",
      "url": "https://shop.lordevo.com/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.com-lordevo-shop]
url = "https://shop.lordevo.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-lordevo-shop": {
      "type": "remote",
      "url": "https://shop.lordevo.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-lordevo-shop --url 'https://shop.lordevo.com/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-lordevo-shop:
    url: "https://shop.lordevo.com/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "com-lordevo-shop": {
      "Transport": "http",
      "Url": "https://shop.lordevo.com/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add com-lordevo-shop -t streamable-http -u 'https://shop.lordevo.com/mcp'
```

### Other

```json
{
  "mcpServers": {
    "com-lordevo-shop": {
      "type": "http",
      "url": "https://shop.lordevo.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-05 (score 77, +1)

- [security] The server rewrote its instructions, which are the text every model session reads
- [cosmetic] “cors_check” reworded the description of “url”
- [cosmetic] “link_preview” reworded the description of “url”

### 2026-11-04 (score 76, +9)

We did not load change detail this far back for this component, so this day may have recorded more than is shown.

- [security improvement] Authorization: unverified → partial
- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “cors_check” rewrote its description, which is the text the model reads
- [security] Tool “page_markdown” rewrote its description, which is the text the model reads
- [security] Tool “domain_lookalike” rewrote its description, which is the text the model reads
- [security] Tool “link_preview” rewrote its description, which is the text the model reads
- [security] Tool “security_scan_lite” rewrote its description, which is the text the model reads
- [security] Tool “json_validate” rewrote its description, which is the text the model reads
- [security] Tool “dns_lookup” rewrote its description, which is the text the model reads
- [security] Tool “seo_audit_lite” rewrote its description, which is the text the model reads
- [security] Tool “domain_rdap” rewrote its description, which is the text the model reads
- [security] Tool “site_check” rewrote its description, which is the text the model reads
- [security] Tool “email_auth” rewrote its description, which is the text the model reads
- [security] Tool “page_markdown_batch” rewrote its description, which is the text the model reads
- [security] Tool “site_snapshot” rewrote its description, which is the text the model reads
- [security] Tool “ip_info” rewrote its description, which is the text the model reads
- [security] Tool “http_ping” rewrote its description, which is the text the model reads
- [security] Tool “security_headers” rewrote its description, which is the text the model reads
- [security] Tool “verdict_card” rewrote its description, which is the text the model reads
- [security] Tool “site_verdict” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: 213 → 247
- [functional improvement] Tool “security_scan_lite” now declares an output schema
- [functional improvement] Tool “pdf_text” now declares an output schema
- [functional improvement] Tool “json_repair” now declares an output schema
- [functional improvement] Tool “site_report” now declares an output schema
- [functional improvement] Tool “dns_lookup” now declares an output schema
- [functional improvement] Tool “json_query” now declares an output schema
- [functional improvement] Tool “site_report_status” now declares an output schema
- [functional improvement] Tool “cron_next” now declares an output schema
- [functional improvement] Tool “text_chunk” now declares an output schema
- [functional improvement] Tool “can_fetch” now declares an output schema
- [functional improvement] Tool “security_headers” now declares an output schema
- [functional improvement] Tool “date_calc” now declares an output schema
- [functional improvement] Tool “page_markdown” now declares an output schema
- [functional improvement] Tool “seo_page” now declares an output schema
- [functional improvement] Tool “readability” now declares an output schema
- [functional improvement] Tool “sitemap_urls” now declares an output schema
- [functional improvement] Tool “text_extract” now declares an output schema
- [functional improvement] Tool “links_batch” now declares an output schema
- [functional improvement] Tool “site_check” now declares an output schema
- [functional improvement] Tool “csv_parse” now declares an output schema
- [functional improvement] Tool “cors_check” now declares an output schema
- [functional improvement] Tool “agent_readiness” now declares an output schema
- [functional improvement] Tool “site_verdict” now declares an output schema
- [functional improvement] Tool “page_meta” now declares an output schema
- [functional improvement] Tool “url_clean” now declares an output schema
- [functional improvement] Tool “list_services” now declares an output schema
- [functional improvement] Tool “page_diff” now declares an output schema
- [functional improvement] Tool “ip_info” now declares an output schema
- [functional improvement] Tool “redirect_chain” now declares an output schema
- [functional improvement] Tool “myr_rates” now declares an output schema
- [functional improvement] Tool “page_quality” now declares an output schema
- [functional improvement] Tool “verdict_card” now declares an output schema
- [functional improvement] Tool “seo_audit_lite” now declares an output schema
- [functional improvement] Tool “link_check” now declares an output schema
- [functional improvement] Tool “unit_convert” now declares an output schema
- [functional improvement] Tool “structured_data” now declares an output schema
- [functional improvement] Tool “link_preview” now declares an output schema
- [functional improvement] Tool “math_eval” now declares an output schema
- [functional improvement] Tool “site_snapshot” now declares an output schema
- [functional improvement] Tool “json_schema_infer” now declares an output schema
- [functional improvement] Tool “page_markdown_batch” now declares an output schema
- [functional improvement] Tool “token_count” now declares an output schema
- [functional improvement] Tool “json_validate” now declares an output schema
- [functional improvement] Tool “canonical_check” now declares an output schema
- [functional improvement] Tool “email_validate” now declares an output schema
- [functional improvement] Tool “http_ping” now declares an output schema
- [functional improvement] Tool “broken_links” now declares an output schema
- [functional improvement] Tool “regex_test” now declares an output schema
- [functional improvement] Tool “feed_parse” now declares an output schema
- [functional improvement] Tool “time_convert” now declares an output schema
- [functional improvement] Tool “email_auth” now declares an output schema
- [functional improvement] Tool “tech_stack” now declares an output schema
- [functional improvement] Tool “text_diff” now declares an output schema
- [functional improvement] Tool “domain_lookalike” now declares an output schema
- [functional improvement] Tool “domain_rdap” now declares an output schema
- [functional improvement] Tool “preflight” now declares an output schema
- [functional improvement] Tool “get_sample_output” now declares an output schema
- [functional improvement] Tool “ssl_cert” now declares an output schema
- [functional improvement] Tool “url_trust” now declares an output schema
- [functional] The server now declares the “resources” capability
- [functional] First check of Schema quality: 100
- [functional] First check of Tool coverage: 100
- [functional] MCP protocol: Implements a current MCP spec version (2026-07-28).
- [functional] MCP protocol version: 2025-11-25 → 2026-07-28
- [functional] New resource “choose-a-tool”
- [functional] Server version: 1.1.1 → 1.2.0
- [functional] New tool “domain_intel”
- [functional] New tool “federal_register”
- [functional] New tool “prompt_injection_scan”
- [functional] New tool “sec_filings”
- [cosmetic] “agent_readiness” added an optional parameter “trial”
- [cosmetic] “broken_links” added an optional parameter “trial”
- [cosmetic] “tech_stack” added an optional parameter “trial”
- [cosmetic] “json_schema_infer” added an optional parameter “trial”
- [cosmetic] “text_extract” added an optional parameter “trial”
- [cosmetic] “readability” added an optional parameter “trial”
- [cosmetic] “date_calc” added an optional parameter “trial”
- [cosmetic] “text_chunk” added an optional parameter “trial”
- [cosmetic] “links_batch” added an optional parameter “trial”
- [cosmetic] “time_convert” added an optional parameter “trial”
- [cosmetic] “page_markdown” added an optional parameter “trial”
- [cosmetic] “email_validate” added an optional parameter “trial”
- [cosmetic] “cors_check” added an optional parameter “trial”
- [cosmetic] “regex_test” added an optional parameter “trial”
- [cosmetic] “json_repair” added an optional parameter “trial”
- [cosmetic] “feed_parse” added an optional parameter “trial”
- [cosmetic] “text_diff” added an optional parameter “trial”
- [cosmetic] “cron_next” added an optional parameter “trial”
- [cosmetic] “csv_parse” added an optional parameter “trial”
- [cosmetic] “link_preview” added an optional parameter “trial”
- [cosmetic] “page_meta” added an optional parameter “trial”
- [cosmetic] “unit_convert” added an optional parameter “trial”
- [cosmetic] “math_eval” added an optional parameter “trial”
- [cosmetic] “token_count” added an optional parameter “trial”
- [cosmetic] “structured_data” added an optional parameter “trial”
- [cosmetic] “seo_page” added an optional parameter “trial”
- [cosmetic] “sitemap_urls” added an optional parameter “trial”
- [cosmetic] “pdf_text” added an optional parameter “trial”
- [cosmetic] “email_auth” added an optional parameter “trial”
- [cosmetic] “redirect_chain” added an optional parameter “trial”
- [cosmetic] “ssl_cert” added an optional parameter “trial”
- [cosmetic] “json_query” added an optional parameter “trial”
- [cosmetic] “url_clean” added an optional parameter “trial”
- [cosmetic] “page_quality” added an optional parameter “trial”
- [cosmetic] “canonical_check” added an optional parameter “trial”
- [cosmetic] “seo_audit_lite” added an optional parameter “trial”
- [cosmetic] “security_headers” added an optional parameter “trial”
- [cosmetic] “link_check” added an optional parameter “trial”
- [cosmetic] “domain_rdap” added an optional parameter “trial”
- [cosmetic] “can_fetch” added an optional parameter “trial”
- [cosmetic] “email_auth” reworded the description of “domain”
- [cosmetic] “http_ping” reworded the description of “url”
- [cosmetic] “link_preview” reworded the description of “url”
- [cosmetic] “page_markdown” reworded the description of “url”
- [cosmetic] “domain_lookalike” reworded the description of “host”
- [cosmetic] “math_eval” reworded the description of “expr”
- [cosmetic] “myr_rates” reworded the description of “currency”
- [cosmetic] “site_check” reworded the description of “url”
- [cosmetic] “cors_check” reworded the description of “url”
- [cosmetic] “seo_page” reworded the description of “url”
- [cosmetic] “security_headers” reworded the description of “url”
- [cosmetic] “dns_lookup” reworded the description of “host”
- [cosmetic] “json_validate” reworded the description of “json”
- [cosmetic] “seo_audit_lite” reworded the description of “url”
- [cosmetic] “can_fetch” reworded the description of “url”
- [cosmetic] Tool “agent_readiness” changed its title: Agent readiness / AI visibility score (GEO) → Agent readiness / AI visibility score (GEO) ($0.002/call)
- [cosmetic] Tool “json_validate” changed its title: JSON Schema validation with JSON Pointer errors → JSON Schema validator: check JSON (or LLM output) against a schema ($0.002/call)
- [cosmetic] Tool “broken_links” changed its title: Broken links on a page (up to 40 links checked) → Broken links on a page (up to 40 links checked) ($0.002/call)
- [cosmetic] Tool “json_repair” changed its title: JSON repair for LLM output (fences, quotes, commas, truncation) → JSON repair for LLM output (fences, quotes, commas, truncation) ($0.002/call)
- [cosmetic] Tool “page_markdown” changed its title: Page to Markdown (main content) → URL to Markdown: LLM-ready web page reader (main content) ($0.002/call)
- [cosmetic] Tool “site_verdict” changed its title: Business-site risk signals (evidence + risk level, AI-assisted) → Business-site risk signals (evidence + risk level, AI-assisted) ($0.01/call)
- [cosmetic] Tool “regex_test” changed its title: Regex tester: matches, groups, replace and split (JavaScript flavor) → Regex tester: matches, groups, replace and split (JavaScript flavor) ($0.002/call)
- [cosmetic] Tool “myr_rates” changed its title: Malaysian ringgit exchange rates + OPR (Bank Negara Malaysia data) → Malaysian ringgit exchange rates + OPR (Bank Negara Malaysia data) ($0.002/call)
- [cosmetic] Tool “token_count” changed its title: Token count estimate (plus characters, words, bytes) → Token count estimate (plus characters, words, bytes) ($0.002/call)
- [cosmetic] Tool “text_chunk” changed its title: Text chunker for RAG (heading-aware, token-sized chunks) → Text chunker for RAG (heading-aware, token-sized chunks) ($0.002/call)
- [cosmetic] Tool “readability” changed its title: Readability and word count (Flesch, reading time, top terms) → Readability and word count (Flesch, reading time, top terms) ($0.002/call)
- [cosmetic] Tool “domain_lookalike” changed its title: Lookalike / homograph domain check (punycode, mixed scripts, brand typos) → Phishing lookalike domain check (homograph, punycode, typosquatting) ($0.002/call)
- [cosmetic] Tool “email_auth” changed its title: Email authentication check (SPF, DKIM, DMARC) → Email authentication check (SPF, DKIM, DMARC) ($0.002/call)
- [cosmetic] Tool “json_schema_infer” changed its title: JSON Schema 2020-12 inferred from sample JSON → JSON Schema 2020-12 inferred from sample JSON ($0.002/call)
- [cosmetic] Tool “date_calc” changed its title: Date calculator: add durations, business days, difference between dates → Date calculator: add durations, business days, difference between dates ($0.002/call)
- [cosmetic] Tool “ip_info” changed its title: IP address owner and network (RDAP + reverse DNS) → IP lookup: owner, network and abuse contact of an IP address (RDAP + reverse DNS) ($0.002/call)
- [cosmetic] Tool “time_convert” changed its title: Time zone conversion (IANA zones, offsets, DST) → Time zone conversion (IANA zones, offsets, DST) ($0.002/call)
- [cosmetic] Tool “cors_check” changed its title: CORS check (preflight + allowed origins) → CORS check (preflight + allowed origins) ($0.002/call)
- [cosmetic] Tool “email_validate” changed its title: Email address validation (syntax + domain + MX, no SMTP probing) → Email validation / email verification API (syntax + domain + MX, no SMTP probing) ($0.002/call)
- [cosmetic] Tool “unit_convert” changed its title: Unit converter with exact factors (NIST SP 811) → Unit converter with exact factors (NIST SP 811) ($0.002/call)
- [cosmetic] Tool “pdf_text” changed its title: PDF to text, page by page → PDF to text, page by page ($0.002/call)
- [cosmetic] Tool “links_batch” changed its title: Batch link check (up to 10 URLs per call) → Batch link check (up to 10 URLs per call) ($0.002/call)
- [cosmetic] Tool “sitemap_urls” changed its title: Sitemap URL extractor (robots.txt + sitemap index) → Sitemap URL extractor (robots.txt + sitemap index) ($0.002/call)
- [cosmetic] Tool “tech_stack” changed its title: Tech stack detection → Tech stack detection ($0.002/call)
- [cosmetic] Tool “get_sample_output” changed its title: Sample output of a tool → Sample output of a tool (free)
- [cosmetic] Tool “link_check” changed its title: Link check: is it alive, where does it really go (redirects resolved) → Link check: is it alive, where does it really go (redirects resolved) ($0.002/call)
- [cosmetic] Tool “url_trust” changed its title: URL risk signals before you click or pay (evidence + risk level, never a safety claim) → URL risk signals before you click or pay (evidence + risk level, never a safety claim) ($0.002/call)
- [cosmetic] Tool “cron_next” changed its title: Cron next run times + plain-English description → Cron next run times + plain-English description ($0.002/call)
- [cosmetic] Tool “ssl_cert” changed its title: SSL/TLS certificate check (expiry, issuer, SANs, chain) → SSL/TLS certificate check (expiry, issuer, SANs, chain) ($0.002/call)
- [cosmetic] Tool “canonical_check” changed its title: Canonical, hreflang and indexability check → Canonical, hreflang and indexability check ($0.002/call)
- [cosmetic] Tool “seo_page” changed its title: On-page SEO check (one page) → On-page SEO check (one page) ($0.002/call)
- [cosmetic] Tool “page_diff” changed its title: Page change check: content hash, clean text and line diff → Page change check: content hash, clean text and line diff ($0.002/call)
- [cosmetic] Tool “json_query” changed its title: JSON query: JSONPath (RFC 9535) or JSON Pointer → JSON query: JSONPath (RFC 9535) or JSON Pointer ($0.002/call)
- [cosmetic] Tool “site_check” changed its title: Site check: URL risk signals + AI readiness + security headers (recommended start) → Site check: URL risk signals + AI readiness + security headers (recommended start) ($0.02/call)
- [cosmetic] Tool “http_ping” changed its title: HTTP ping: up or down, status and timings (DNS, TCP, TLS, TTFB) → HTTP ping: is a website up or down? Status and timings (DNS, TCP, TLS, TTFB) ($0.002/call)
- [cosmetic] Tool “can_fetch” changed its title: Can I fetch this URL? robots.txt + AI-crawler permission gate → Can I fetch this URL? robots.txt + AI-crawler permission gate ($0.002/call)
- [cosmetic] Tool “dns_lookup” changed its title: DNS lookup (A, AAAA, CNAME, MX, TXT, NS, SOA, CAA) → DNS records lookup (A, AAAA, CNAME, MX, TXT, NS, SOA, CAA) ($0.002/call)
- [cosmetic] Tool “site_report” changed its title: Site report for agencies: client-ready audit + fix plan → Site report for agencies: client-ready audit + fix plan ($0.01/call)
- [cosmetic] Tool “redirect_chain” changed its title: Redirect chain: every hop with status, Location and time → Redirect chain: every hop with status, Location and time ($0.002/call)
- [cosmetic] Tool “feed_parse” changed its title: Feed reader: RSS, Atom and JSON Feed to normalised items → Feed reader: RSS, Atom and JSON Feed to normalised items ($0.002/call)
- [cosmetic] Tool “verdict_card” changed its title: Shareable risk-signals card for a site (SVG) → Shareable risk-signals card for a site (SVG) ($0.01/call)
- [cosmetic] Tool “csv_parse” changed its title: CSV/TSV to JSON with delimiter, header and type detection → CSV/TSV to JSON with delimiter, header and type detection ($0.002/call)
- [cosmetic] Tool “url_clean” changed its title: URL cleaner: strip tracking parameters, normalise, dedupe (up to 50) → URL cleaner: strip tracking parameters, normalise, dedupe (up to 50) ($0.002/call)
- [cosmetic] Tool “text_diff” changed its title: Text diff: unified diff, hunks and similarity of two texts → Text diff: unified diff, hunks and similarity of two texts ($0.002/call)
- [cosmetic] Tool “page_markdown_batch” changed its title: Pages to Markdown, batch (up to 5 URLs per call) → Batch URL to Markdown: up to 5 web pages per call (LLM-ready) ($0.01/call)
- [cosmetic] Tool “security_headers” changed its title: Security headers + TLS quick grade → Security headers + TLS quick grade ($0.002/call)
- [cosmetic] Tool “link_preview” changed its title: Link preview / unfurl (title, description, image, favicon, logo) → Link preview / unfurl (title, description, image, favicon, logo) ($0.002/call)
- [cosmetic] Tool “page_meta” changed its title: Page metadata + Markdown → Page metadata + Markdown ($0.002/call)
- [cosmetic] Tool “domain_rdap” changed its title: Domain age, registrar and expiry (RDAP) → WHOIS / RDAP domain lookup: age, registrar, expiry ($0.002/call)

### 2026-11-03 (score 67, +1)

We did not load change detail this far back for this component, so this day may have recorded more than is shown.

### 2026-11-01 (score 66, +1)

We did not load change detail this far back for this component, so this day may have recorded more than is shown.

### 2026-10-30 (score 65, −8)

We did not load change detail this far back for this component, so this day may have recorded more than is shown.

### 2026-10-28 (score 73, +1)

We did not load change detail this far back for this component, so this day may have recorded more than is shown.

### 2026-10-26 (score 72)

First indexed and scored.

## MCP tools (63)

### `site_report` (~226 tokens)

Site report for agencies: client-ready audit + fix plan ($0.01/call)

$0.01 per call (x402, USDC on Base; the call returns the payment terms: pay and retry with _meta["x402/payment"]). One call: a client-ready, evidence-backed website audit and remediation plan (SEO on up to 10 pages, passive security, links, email authentication, AI readiness). Every finding has evidence, observed/inferred basis, priority, effort, a concrete fix and how to verify it; plus a phased implementation plan, what needs human review, and an honest coverage section. JSON + Markdown + self-contained HTML, optional white-label branding. Passive, point-in-time; not a penetration test. Returns the finished site-report/1 or status "running" with result_url / delivery_id + key to poll (free tool site_report_status). Bad input is refused before payment; a report where every check fails is not charged.

Input parameters:

- `authorization` (object, required): You own the site or are authorised by its owner to assess it
- `scope` (object)
- `url` (string, required): Public http(s) website to assess

Output parameters:

- `delivery_id` (string)
- `finished_at` (string|null)
- `practice` (boolean)
- `product` (string)
- `report_html_url` (string|null)
- `report_markdown_url` (string|null)
- `result_url` (string)
- `started_at` (string)
- `status` (string)
- `target`
- `tier` (string)

### `site_report_status` (~62 tokens)

Site report status (free)

Free. Poll a site report: give delivery_id and key from the site_report result (or result_url). Returns the report when status is done.

Input parameters:

- `delivery_id` (string)
- `key` (string)
- `result_url` (string)

Output parameters:

- `delivery_id` (string)
- `finished_at` (string|null)
- `practice` (boolean)
- `product` (string)
- `report_html_url` (string|null)
- `report_markdown_url` (string|null)
- `result_url` (string)
- `started_at` (string)
- `status` (string)
- `target`
- `tier` (string)

### `site_check` (~234 tokens)

Site check: URL risk signals + AI readiness + security headers (recommended start) ($0.02/call)

$0.02 per call (x402, USDC on Base; the call returns the payment terms: pay and retry with _meta["x402/payment"]; not covered by the free trial). [SEO, security and site verdicts] One call answers two questions agents ask about a website: what risk signals does it show before you click or pay (url-trust, trust/2: TLS, redirects, domain age via RDAP, lookalike/punycode, scam/parked signals, x402 challenge validity, each with evidence, a risk level low_observed_risk / elevated / high / unknown and measured error rates; never a "safe" claim) and is it ready for AI agents and search (agent-readiness score 0-100), plus a security-headers summary. Returns overall risk level and scores, top fixes and the three full sub-results. Method and error rates: https://shop.lordevo.com/docs/trust-methodology

Input parameters:

- `url` (string, required): Website to check: a public http(s) URL or bare domain, e.g. https://example.com

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `agent_readiness` (object)
- `cache` (object)
- `domain` (string)
- `methodology_url` (string)
- `next_steps` (array)
- `not_a_guarantee` (boolean)
- `overall` (object)
- `price_usd` (number)
- `provider` (string)
- `schema` (string)
- `security_headers` (object)
- `summary` (string)
- `tool` (string)
- `top_fixes` (array)
- `trust` (object)
- `url` (string)

### `list_services` (~65 tokens)

List Lordevo services and prices (free)

Free. Lists every Lordevo pay-per-call tool grouped by job (fetch and read the web, web and domain checks, data utilities, SEO and security) from $0.002, plus LITE tiers and full SEO/security/content services, with price, endpoint and input.

Output parameters:

- `free_preflight` (object)
- `payment` (string)
- `provider` (string)
- `quick_checks` (array)
- `services` (array)

### `get_sample_output` (~35 tokens)

Sample output of a tool (free)

Free. Returns an example of what a paid tool returns, so you can decide before paying.

Input parameters:

- `tool` (string, required)

Output parameters:

- `price_usd` (number)
- `sample` (object)
- `tool` (string)

### `preflight` (~147 tokens)

Free preflight: will a paid fetch succeed on this URL?

Free, no payment. One call tells you whether a paid fetch tool would most likely succeed on a URL: DNS/public check, HTTP status, final URL after redirects (robots.txt checked on every hop), response time, robots.txt for the shop's agent and for *, content type, length and charset, and a verdict per tool (or for every eligible fetch tool) with the reason, price, paid endpoint and whether the free trial covers it. Never returns page content. Limited per IP per day.

Input parameters:

- `tool` (string): Optional: the paid tool you plan to call (default: every eligible fetch tool)
- `url` (string, required): Public http(s) URL or bare domain

Output parameters:

- `cache` (object)
- `charged` (boolean)
- `checked_at` (string)
- `content` (object|null)
- `free` (boolean)
- `robots` (object|null)
- `summary` (string)
- `tool` (string)
- `url` (string)
- `would_succeed` (object)

### `agent_readiness` (~256 tokens)

Agent readiness / AI visibility score (GEO) ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [SEO, security and site verdicts] Scores how visible and usable a site is for AI assistants and agents (0-100, grade A-F): robots.txt rules for AI search and training crawlers (GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot, Google-Extended...), noindex/noai, /llms.txt quality, schema.org JSON-LD, sitemap, title/description/canonical/lang, Open Graph, content readable without JavaScript, and agent discovery files (/.well-known/x402, MCP server card, A2A agent card, OpenAPI). Findings with fixes. Obeys robots.txt.

Input parameters:

- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.
- `url` (string, required): Public http(s) URL or bare domain, e.g. https://example.com

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `agent_discovery` (object)
- `ai_crawlers` (object)
- `cache` (object)
- `categories` (object)
- `content` (object)
- `findings` (array)
- `fixes` (array)
- `grade` (string)
- `llms_txt` (object)
- `meta` (object)
- `open_graph` (object)
- `price_usd` (number)
- `provider` (string)
- `score` (integer)
- `sitemap` (object)
- `structured_data` (object)
- `summary` (string)
- `tool` (string)
- `url` (string)

### `url_trust` (~316 tokens)

URL risk signals before you click or pay (evidence + risk level, never a safety claim) ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Web and domain checks] Pre-click / pre-pay risk signals for one URL: TLS validity and expiry, redirect chain (HTTPS downgrades, cross-domain hops), domain age via RDAP, brand lookalike and punycode/mixed-script signals, parked or scam-pattern content, seed-phrase or lookalike login forms, security-header grade, and, if the URL answers 402, whether its x402 challenge is valid (USDC on Base, payTo, amount, resource host). Output trust/2: signals[] with evidence, risk {level: low_observed_risk / elevated / high / unknown, score 0-100 = risk, confidence, observed bad rate}, coverage (what was not checked) and not_a_guarantee. No third-party blocklist; low observed risk is not a safety certification. Method and measured error rates: https://shop.lordevo.com/docs/trust-methodology

Input parameters:

- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.
- `url` (string, required): Public http(s) URL or bare domain, e.g. https://example.com

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `cache` (object)
- `content` (object)
- `coverage` (object)
- `domain` (object)
- `final_url` (string)
- `findings` (array)
- `methodology_url` (string)
- `not_a_guarantee` (boolean)
- `not_a_guarantee_text` (string)
- `price_usd` (number)
- `provider` (string)
- `reasons` (array)
- `redirects` (array)
- `risk` (object)
- `schema` (string)
- `security_headers` (object|null)
- `signals` (array)
- `threat_list` (object)
- `tls` (object|null)
- `tool` (string)
- `url` (string)
- `verdict` (string): Deprecated alias of risk.level, removed after 2027-01-31
- `x402` (object)

### `can_fetch` (~293 tokens)

Can I fetch this URL? robots.txt + AI-crawler permission gate ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Fetch and read the web] Pre-fetch gate for agents and scrapers: is this exact URL allowed by robots.txt (RFC 9309: missing = allow, 5xx/unreachable = disallow) for generic agents and 16 named AI agents/crawlers (ChatGPT-User, Claude-User, PerplexityBot, GPTBot, ClaudeBot, Google-Extended, CCBot...), plus Crawl-delay, Content-Signal (search / ai-input / ai-train), X-Robots-Tag noai/noindex from a HEAD request, and sitemaps. Verdict allowed / disallowed / allowed_but_no_ai_use / allowed_with_crawl_delay. Never downloads the page body. Cached up to 10 min. ~0.3-2 s.

Input parameters:

- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.
- `url` (string, required): Exact URL you plan to fetch, e.g. https://example.com/blog/post (a bare domain checks the home page)

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `agents` (object)
- `allowed` (boolean)
- `cache` (object)
- `content_signal` (object|null)
- `crawl_delay_seconds` (number|null)
- `noai` (boolean)
- `origin` (string)
- `page` (object|null)
- `path` (string)
- `price_usd` (number)
- `provider` (string)
- `robots_http_status` (integer|null)
- `robots_txt` (string)
- `sitemaps` (array)
- `summary` (string)
- `tool` (string)
- `url` (string)
- `verdict` (string)

### `link_check` (~275 tokens)

Link check: is it alive, where does it really go (redirects resolved) ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Web and domain checks] Resolve one link the way a browser would: follows up to 10 redirects (HEAD first, GET fallback), returns alive true/false with a reason (http_404, dns_not_found, timeout...), the final URL and domain, every hop with its status, cross-domain and HTTPS-downgrade flags, URL-shortener detection, content type/length, Last-Modified/ETag, X-Robots-Tag and TLS validity. robots.txt is checked before the link and each redirect is requested; a disallowed link is refused (not charged), a disallowed hop is reported. Dead links are an answer, not an error. Cached up to 5 min. ~0.3-3 s.

Input parameters:

- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.
- `url` (string, required): Public http(s) URL or bare domain, e.g. https://example.com

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `alive` (boolean|null)
- `cache` (object)
- `content_length` (integer|null)
- `content_type` (string|null)
- `cross_domain` (boolean)
- `final_domain` (string)
- `final_status` (integer|null)
- `final_url` (string|null)
- `flags` (array)
- `https_downgrade` (boolean)
- `price_usd` (number)
- `provider` (string)
- `reason` (string)
- `redirect_count` (integer|null)
- `redirects` (array|null)
- `response_ms` (integer)
- `shortener` (boolean)
- `tls` (object|null)
- `tool` (string)
- `url` (string)

### `dns_lookup` (~286 tokens)

DNS records lookup (A, AAAA, CNAME, MX, TXT, NS, SOA, CAA) ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Web and domain checks] Live DNS lookup, like dig or nslookup, for any public host name: one record type or ALL (A, AAAA, CNAME, MX, TXT, NS, SOA, CAA) in one call. Returns each record set, NXDOMAIN (exists: false), per-type errors and private-address flags. Use it to read MX and SPF/verification TXT records or find nameservers. DNS + RDAP + SPF/DMARC + TLS in one call: domain-intel. Cached 2 min. ~0.1-1 s.

Input parameters:

- `host` (string, required): Host name to look up, e.g. example.com or mail.example.com (a URL also works; the host part is used)
- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.
- `type` (string): Record type (default ALL = A, AAAA, CNAME, MX, TXT, NS, SOA, CAA)

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `cache` (object)
- `errors` (object|null)
- `exists` (boolean)
- `host` (string)
- `price_usd` (number)
- `private_addresses` (array)
- `provider` (string)
- `records` (object): One key per record type asked for; [] = no records of that type
- `resolved_at` (string)
- `response_ms` (integer)
- `source` (string)
- `tool` (string)
- `type` (string)

### `email_validate` (~206 tokens)

Email validation / email verification API (syntax + domain + MX, no SMTP probing) ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Web and domain checks] Validates one email address without contacting the mailbox: RFC 5321 syntax, domain exists, MX / null-MX / implicit-MX, MX hosts resolve, mail provider, disposable-domain flag (CC0 list), role account (info@, support@), free provider, typo suggestion (gmial.com -> gmail.com). Verdict valid / risky / invalid. ~0.2-1.5 s.

Input parameters:

- `email` (string, required): Email address, e.g. jane@example.com
- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `accepts_mail` (boolean)
- `cache` (object)
- `did_you_mean` (string|null)
- `domain_exists` (boolean|null)
- `email` (string)
- `flags` (object)
- `mail_provider` (string|null)
- `mx` (array)
- `normalized` (string|null)
- `price_usd` (number)
- `provider` (string)
- `reason` (string)
- `syntax_valid` (boolean)
- `tool` (string)
- `verdict` (string)

### `ssl_cert` (~219 tokens)

SSL/TLS certificate check (expiry, issuer, SANs, chain) ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Web and domain checks] Connects to host:443 and reports the certificate: trusted or not (and why), hostname match, issuer, valid from/to, days left, expired / expiring within 21 days, SAN list, wildcard, key type and size, serial, SHA-256 fingerprint, OCSP/CA URLs, chain, TLS version, cipher and ALPN. Cached 1 h. ~0.2-1.5 s.

Input parameters:

- `host` (string, required): Public host name, e.g. example.com or www.example.com (a URL also works)
- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `cache` (object)
- `days_left` (integer|null)
- `host` (string)
- `hostname_match` (boolean)
- `https_available` (boolean)
- `issuer` (object|null)
- `issues` (array)
- `price_usd` (number)
- `protocol` (string|null)
- `provider` (string)
- `san` (array)
- `tool` (string)
- `trusted` (boolean)
- `valid` (boolean)
- `valid_to` (string|null)

### `domain_rdap` (~221 tokens)

WHOIS / RDAP domain lookup: age, registrar, expiry ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Web and domain checks] WHOIS-style domain lookup. Registration facts for a domain from the official registry RDAP service (successor to WHOIS): registered or not, registrar and IANA id, created / updated / expiry dates, age in days, days to expiry, EPP status codes, nameservers and DNSSEC. Personal contact data is never returned. Cached 24 h. ~0.5-3 s.

Input parameters:

- `domain` (string, required): Domain to look up, e.g. example.com (a URL or email address also works; the registrable domain is used)
- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `age_days` (integer|null)
- `cache` (object)
- `created` (string|null)
- `dnssec` (boolean|null)
- `domain` (string)
- `expires` (string|null)
- `nameservers` (array)
- `price_usd` (number)
- `provider` (string)
- `registered` (boolean)
- `registrar` (object|null)
- `status` (array)
- `tool` (string)

### `ip_info` (~238 tokens)

IP lookup: owner, network and abuse contact of an IP address (RDAP + reverse DNS) ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Web and domain checks] IP lookup (IP WHOIS). Who holds a public IPv4/IPv6 address, from the Regional Internet Registry RDAP record: network name, handle, CIDR, address range, country, holding organisation, abuse mailbox, RIR (ARIN/RIPE/APNIC/LACNIC/AFRINIC) and reverse DNS (PTR). No geolocation database and no ASN. Cached 24 h. ~0.5-3 s.

Input parameters:

- `ip` (string, required): Public IPv4 or IPv6 address, e.g. 8.8.8.8 or 2606:4700:4700::1111
- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `abuse_email` (string|null)
- `cache` (object)
- `ip` (string)
- `network` (object)
- `organization` (string|null)
- `price_usd` (number)
- `provider` (string)
- `reverse_dns` (array)
- `rir` (string|null)
- `tool` (string)
- `version` (integer)

### `links_batch` (~194 tokens)

Batch link check (up to 10 URLs per call) ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Web and domain checks] The link-check for up to 10 URLs in one paid call (comma-separated): for each, alive or dead with the reason, final URL after redirects, redirect chain, cross-domain / HTTPS-downgrade flags, content type and TLS. robots.txt is checked before each URL and redirect is requested. ~1-6 s.

Input parameters:

- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.
- `urls` (string, required): 1-10 public http(s) URLs, comma-separated

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `alive` (integer)
- `cache` (object)
- `count` (integer)
- `dead` (integer)
- `price_usd` (number)
- `provider` (string)
- `results` (array)
- `tool` (string)

### `broken_links` (~197 tokens)

Broken links on a page (up to 40 links checked) ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Web and domain checks] Reads one page (robots.txt obeyed) and checks up to 40 of its unique links (internal first) with HEAD then GET: broken links with status or error, restricted (401/403/429/999), timeouts, links not requested because robots.txt disallows them, and counts. ~2-8 s.

Input parameters:

- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.
- `url` (string, required): Public http(s) URL or bare domain, e.g. https://example.com

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `broken` (array)
- `broken_count` (integer)
- `cache` (object)
- `checked` (integer)
- `links_found` (integer)
- `ok_count` (integer)
- `price_usd` (number)
- `provider` (string)
- `restricted` (array)
- `timeouts` (array)
- `tool` (string)
- `url` (string)

### `sitemap_urls` (~203 tokens)

Sitemap URL extractor (robots.txt + sitemap index) ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Fetch and read the web] Finds a site's sitemaps (robots.txt Sitemap lines, /sitemap.xml, /sitemap_index.xml, or a sitemap URL you give), follows sitemap indexes (up to 6 files) and returns up to 1000 page URLs with lastmod, plus per-sitemap status. Cached 1 h. ~0.5-4 s.

Input parameters:

- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.
- `url` (string, required): Public http(s) URL or bare domain, e.g. https://example.com

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `cache` (object)
- `found` (boolean)
- `price_usd` (number)
- `provider` (string)
- `sitemaps` (array)
- `tool` (string)
- `truncated` (boolean)
- `url` (string)
- `url_count` (integer)
- `urls` (array)

### `link_preview` (~211 tokens)

Link preview / unfurl (title, description, image, favicon, logo) ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Fetch and read the web] Link preview / URL unfurl API. Everything needed to render a link card from one public page: title, description, site name, Open Graph image (size, alt), canonical URL, best favicon plus all icons, logo (JSON-LD Organization), web manifest, theme colour, Twitter card fields, author and dates. Cached 1 h. ~0.3-2 s.

Input parameters:

- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.
- `url` (string, required): Page to preview: a public http(s) URL, e.g. https://example.com/

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `cache` (object)
- `description` (string|null)
- `favicon` (string|null)
- `icons` (array)
- `image` (object|null)
- `logo` (string|null)
- `price_usd` (number)
- `provider` (string)
- `site_name` (string|null)
- `title` (string|null)
- `tool` (string)
- `url` (string)

### `readability` (~200 tokens)

Readability and word count (Flesch, reading time, top terms) ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Fetch and read the web] Text statistics for the main content of one page: word, sentence and character counts, Flesch reading ease and Flesch-Kincaid grade (English), level, long-sentence ratio, reading and speaking time, and top terms. Computed by formula, no AI. Cached 1 h. ~0.3-2 s.

Input parameters:

- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.
- `url` (string, required): Public http(s) URL or bare domain, e.g. https://example.com

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `cache` (object)
- `flesch_kincaid_grade` (number|null)
- `flesch_reading_ease` (number|null)
- `level` (string|null)
- `price_usd` (number)
- `provider` (string)
- `reading_time_minutes` (number)
- `sentence_count` (integer)
- `tool` (string)
- `top_terms` (array)
- `url` (string)
- `word_count` (integer)

### `structured_data` (~201 tokens)

Structured data extractor (JSON-LD, microdata, RDFa) ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [SEO, security and site verdicts] Extracts schema.org data from one page: every JSON-LD item (Product, Article, Organization, FAQPage, Event, Recipe and others) as parsed JSON with missing required / recommended properties, invalid JSON-LD blocks, microdata itemtypes and RDFa types. Cached 1 h. ~0.3-2 s.

Input parameters:

- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.
- `url` (string, required): Public http(s) URL or bare domain, e.g. https://example.com

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `cache` (object)
- `invalid_json_ld_blocks` (integer)
- `issues` (array)
- `items` (array)
- `json_ld_count` (integer)
- `json_ld_types` (array)
- `microdata_types` (array)
- `price_usd` (number)
- `provider` (string)
- `rdfa_types` (array)
- `tool` (string)
- `url` (string)

### `canonical_check` (~214 tokens)

Canonical, hreflang and indexability check ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [SEO, security and site verdicts] Is this URL indexable and which URL is canonical: canonical tag or HTTP Link header, self-referencing or pointing elsewhere, multiple/relative/cross-domain canonicals, og:url mismatch, meta robots and X-Robots-Tag (noindex/nofollow), hreflang list with code validation, x-default and self-reference. Cached 1 h. ~0.3-2 s.

Input parameters:

- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.
- `url` (string, required): Public http(s) URL or bare domain, e.g. https://example.com

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `cache` (object)
- `canonical` (string|null)
- `hreflang` (array)
- `indexable` (string)
- `issues` (array)
- `price_usd` (number)
- `provider` (string)
- `self_referencing` (boolean|null)
- `tool` (string)
- `url` (string)

### `cors_check` (~239 tokens)

CORS check (preflight + allowed origins) ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Web and domain checks] CORS check. Will a browser on a given origin be allowed to call this URL: sends a CORS preflight (OPTIONS) and a GET with Origin, reports Access-Control-Allow-Origin / Credentials / Methods / Headers / Max-Age, Vary: Origin, and flags arbitrary-origin reflection, wildcard with credentials and null origin. Cached 5 min. ~0.3-2 s.

Input parameters:

- `method` (string): Method for the preflight
- `origin` (string): Origin to test, e.g. https://app.example.com
- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.
- `url` (string, required): API or page URL to test, e.g. https://example.com/

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `allow_credentials` (boolean)
- `allow_origin` (string|null)
- `allowed` (boolean)
- `cache` (object)
- `issues` (array)
- `origin` (string)
- `price_usd` (number)
- `provider` (string)
- `reflects_arbitrary_origin` (boolean|null)
- `tool` (string)
- `url` (string)

### `http_ping` (~215 tokens)

HTTP ping: is a website up or down? Status and timings (DNS, TCP, TLS, TTFB) ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Web and domain checks] Is this website up or down? One live request to a URL with no redirect following: up or down (and why: DNS, timeout, refused, TLS), status, Location, timings in ms for DNS, TCP connect, TLS handshake, time to first byte and total, IP, HTTP version, server header. Measured from Malaysia. Never cached. ~0.1-2 s.

Input parameters:

- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.
- `url` (string, required): URL to ping: a public http(s) URL or bare domain, e.g. https://example.com

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `cache` (object)
- `ip` (string|null)
- `price_usd` (number)
- `provider` (string)
- `status` (integer|null)
- `timings_ms` (object)
- `tool` (string)
- `up` (boolean)
- `url` (string)

### `domain_lookalike` (~268 tokens)

Phishing lookalike domain check (homograph, punycode, typosquatting) ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Web and domain checks] Phishing lookalike domain check. Offline host-name check for phishing patterns: punycode, mixed-alphabet homographs, typo lookalikes of phished brands, brand off its official domain, risky TLD, login/wallet words. trust/2: signals with evidence, risk level low_observed_risk / elevated / high, 0-100 risk score, coverage, not_a_guarantee (a normal name says nothing about the site). < 50 ms. Method + error rates: https://shop.lordevo.com/docs/trust-methodology

Input parameters:

- `host` (string, required): Host name to check, e.g. xn--pple-43d.com or paypa1-secure.example (a URL also works; the host part is used)
- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `brand_lookalike` (string|null)
- `cache` (object)
- `coverage` (object)
- `host` (string)
- `methodology_url` (string)
- `mixed_script` (boolean)
- `not_a_guarantee` (boolean)
- `not_a_guarantee_text` (string)
- `price_usd` (number)
- `provider` (string)
- `punycode` (boolean)
- `reasons` (array)
- `risk` (object)
- `risk_score` (integer)
- `schema` (string)
- `signals` (array)
- `tool` (string)
- `unicode` (string)
- `verdict` (string): Deprecated alias of risk.level, removed after 2027-01-31

### `myr_rates` (~214 tokens)

Malaysian ringgit exchange rates + OPR (Bank Negara Malaysia data) ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Data utilities] Bank Negara Malaysia exchange rates against the ringgit (buying, selling, middle; MYR per unit) for one currency or ALL, plus the current Overnight Policy Rate. Source: Bank Negara Malaysia; data subject to the Terms of Use for BNM Datasets; not endorsed by BNM. Cached 15 min. ~0.5-2 s.

Input parameters:

- `currency` (string, required): 3-letter currency code to price in ringgit, e.g. USD, SGD or EUR, or ALL for every currency BNM publishes
- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `attribution` (string)
- `base` (string)
- `cache` (object)
- `currency` (string)
- `overnight_policy_rate` (object|null)
- `price_usd` (number)
- `provider` (string)
- `rates` (array)
- `session` (string|null)
- `tool` (string)

### `domain_intel` (~294 tokens)

Domain intel: DNS + RDAP/WHOIS + SPF/DMARC + TLS ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Web and domain checks] One call, one domain, four checks: DNS records (A, AAAA, MX, NS, TXT, CAA), WHOIS-style RDAP registration from the registry found via the IANA bootstrap (registrar, created / expiry dates, days to expiry, EPP status, nameservers, DNSSEC; no personal contact data), email authentication (SPF, DMARC, DKIM selector hints, MTA-STS, TLS-RPT, BIMI, grade, spoofable) and TLS certificate basics (issuer, expiry, days left, SAN count, trusted). The core of dns-lookup + domain-rdap + email-auth + ssl-cert for the price of one call. A failed part is flagged (partial); fewer than 2 parts = not charged. ~1-4 s.

Input parameters:

- `domain` (string, required): Domain name, e.g. example.com (a URL or email address also works)
- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `cache` (object)
- `checked_at` (string)
- `dns` (object)
- `domain` (string)
- `failed` (array)
- `mail` (object)
- `partial` (boolean)
- `price_usd` (number)
- `provider` (string)
- `rdap` (object)
- `skipped` (array)
- `summary` (object)
- `tls` (object)
- `tool` (string)

### `redirect_chain` (~229 tokens)

Redirect chain: every hop with status, Location and time ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Web and domain checks] Follows the redirects of one public http(s) URL hop by hop and returns each hop's URL, status code, Location header and time in ms, with flags for loops, HTTPS-to-HTTP downgrades, more than 10 redirects and cross-domain hops. Input: url. Limits: up to 15 redirects, 8 s per hop, public hosts only; robots.txt is checked before every hop is requested (a disallowed hop is reported, not requested). Not cached.

Input parameters:

- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.
- `url` (string, required): Public http(s) URL or bare domain, e.g. https://example.com

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `cache` (object)
- `final_status` (integer|null)
- `final_url` (string|null)
- `flags` (array)
- `hops` (array)
- `https_downgrade` (boolean)
- `loop` (boolean)
- `more_than_10_redirects` (boolean)
- `price_usd` (number)
- `provider` (string)
- `redirect_count` (integer)
- `stopped_because` (string)
- `tool` (string)
- `url` (string)

### `text_chunk` (~312 tokens)

Text chunker for RAG (heading-aware, token-sized chunks) ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Fetch and read the web] Splits text you send, or the main content of one public page, into heading-aware chunks of at most max_tokens with optional overlap, each with its heading path and an approximate token count, for RAG ingestion. Input: text (POST for long text) or url; max_tokens 50-4000, overlap_tokens. Limits: 400,000 characters, 2,000 chunks; robots.txt obeyed for url.

Input parameters:

- `max_tokens` (string): Max tokens per chunk, 50-4000 (default 500)
- `overlap_tokens` (string): Tokens repeated from the previous chunk, 0 to half of max_tokens (default 50)
- `text` (string): Plain text or Markdown, 1-400,000 characters (short text in the query; long text as POST JSON {"text": "..."}) (or give url)
- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.
- `url` (string): Public http(s) URL or bare domain, e.g. https://example.com (instead of text)

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `cache` (object)
- `chunk_count` (integer)
- `chunks` (array)
- `max_tokens` (integer)
- `overlap_tokens` (integer)
- `price_usd` (number)
- `provider` (string)
- `source` (string)
- `tool` (string)
- `total_tokens_estimate` (integer)
- `truncated` (boolean)

### `token_count` (~204 tokens)

Token count estimate (plus characters, words, bytes) ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Data utilities] Estimates how many LLM tokens a text uses with a documented offline heuristic (not an exact tokenizer; typically within about 15% for English), with a low/high range, characters, words, lines and UTF-8 bytes. Input: text (POST for long text). Limit: 400,000 characters.

Input parameters:

- `text` (string, required): Plain text or Markdown, 1-400,000 characters (short text in the query; long text as POST JSON {"text": "..."})
- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `bytes_utf8` (integer)
- `cache` (object)
- `characters` (integer)
- `chars_div_4` (integer)
- `is_estimate` (boolean)
- `lines` (integer)
- `method` (string)
- `price_usd` (number)
- `provider` (string)
- `range` (object)
- `tokens_estimate` (integer)
- `tool` (string)
- `words` (integer)

### `json_validate` (~274 tokens)

JSON Schema validator: check JSON (or LLM output) against a schema ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Data utilities] JSON Schema validator. Validates a JSON document against a JSON Schema (draft-07, 2019-09 or 2020-12, formats included) and returns valid true/false with every error as a JSON Pointer, keyword and message. Input: json and schema (POST for large documents). Limits: 1 MB JSON, 200 KB schema, 100 errors listed; remote $ref is not fetched. Offline.

Input parameters:

- `json` (string, required): JSON text to validate, up to 1 MB, e.g. {"name":"Ada","age":36} (a JSON value is also accepted in a POST body or MCP arguments)
- `schema` (string, required): JSON Schema (draft-07, 2019-09 or 2020-12) as JSON text or object, up to 200 KB
- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `cache` (object)
- `draft` (string|null)
- `error_count` (integer)
- `errors` (array)
- `price_usd` (number)
- `provider` (string)
- `tool` (string)
- `valid` (boolean)

### `json_repair` (~198 tokens)

JSON repair for LLM output (fences, quotes, commas, truncation) ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Data utilities] Turns malformed or LLM-style JSON into valid JSON: removes code fences and leading text, fixes trailing commas, single or smart quotes, unquoted keys, comments, Python constants and truncated endings, and lists the problem types found. Input: json (POST for large input). Limit: 1 MB. Offline.

Input parameters:

- `json` (string, required): JSON text, up to 1 MB (a JSON value is also accepted in a POST body or MCP arguments)
- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `cache` (object)
- `changed` (boolean)
- `fixes` (array)
- `input_was_valid` (boolean)
- `price_usd` (number)
- `provider` (string)
- `repaired` (string)
- `tool` (string)

### `time_convert` (~266 tokens)

Time zone conversion (IANA zones, offsets, DST) ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Data utilities] Converts a date-time from one IANA time zone to another, or gives the current time in a zone, with ISO 8601 output, UTC offsets, abbreviation, whether DST is in effect and the next DST change, and flags times skipped or repeated by DST. Input: to, optional from (default UTC) and datetime (default now). Offline.

Input parameters:

- `datetime` (string): ISO 8601 date/time (2026-11-01T09:30, optional Z or +08:00), Unix seconds, or now (default)
- `from` (string): IANA zone the datetime is in (default UTC)
- `to` (string, required): IANA time zone, e.g. Europe/London, America/New_York, Asia/Kuala_Lumpur or UTC
- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `cache` (object)
- `difference_hours` (number)
- `from` (object)
- `input` (object)
- `interpreted_as` (string)
- `notes` (array)
- `price_usd` (number)
- `provider` (string)
- `to` (object)
- `tool` (string)
- `unix_seconds` (integer)
- `utc` (string)

### `cron_next` (~275 tokens)

Cron next run times + plain-English description ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Data utilities] Reads a 5-field cron expression (or @daily-style macro) and returns the next N run times in UTC and in the given time zone, a plain-English description and the expanded fields. Input: cron, optional tz (default UTC), count 1-20, after. Limits: no seconds field, no L/W/#. Offline.

Input parameters:

- `after` (string): Start after this time (ISO 8601 or Unix seconds; default now)
- `count` (string): How many next runs, 1-20 (default 5)
- `cron` (string, required): 5-field cron expression (minute hour day-of-month month day-of-week), or @hourly, @daily, @weekly, @monthly, @yearly
- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.
- `tz` (string): IANA time zone the schedule runs in (default UTC)

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `cache` (object)
- `count` (integer)
- `description` (string)
- `expression` (string)
- `next_runs` (array)
- `normalized` (string)
- `notes` (array)
- `price_usd` (number)
- `provider` (string)
- `timezone` (string)
- `tool` (string)

### `url_clean` (~209 tokens)

URL cleaner: strip tracking parameters, normalise, dedupe (up to 50) ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Data utilities] Normalises up to 50 URLs offline: lowercases scheme and host, drops default ports, fragments, credentials and known tracking parameters (utm_*, gclid, fbclid, msclkid and similar), then removes duplicates; reports what changed per URL. Input: urls separated by spaces or new lines (or a JSON array via POST). No URL is fetched.

Input parameters:

- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.
- `urls` (string, required): 1-50 http(s) URLs separated by spaces or new lines (or a JSON array in a POST body)

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `cache` (object)
- `count_in` (integer)
- `count_unique` (integer)
- `count_valid` (integer)
- `duplicates_removed` (integer)
- `price_usd` (number)
- `provider` (string)
- `results` (array)
- `tool` (string)
- `unique` (array)

### `feed_parse` (~245 tokens)

Feed reader: RSS, Atom and JSON Feed to normalised items ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Fetch and read the web] Parses a feed URL, or finds the feed linked from a page (falls back to /feed, /rss.xml, /atom.xml), and returns normalised items with title, link, ISO date, summary and author, plus feed title and type. Input: url, optional limit 1-100. Limits: 5 MB, 10 s per request, up to 4 requests; robots.txt obeyed for every URL and redirect. Cached 10 min.

Input parameters:

- `limit` (string): Max items returned, 1-100 (default 20)
- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.
- `url` (string, required): Public http(s) URL or bare domain, e.g. https://example.com

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `cache` (object)
- `feed_type` (string)
- `feed_url` (string)
- `item_count` (integer)
- `items` (array)
- `price_usd` (number)
- `provider` (string)
- `title` (string|null)
- `tool` (string)
- `truncated` (boolean)
- `url` (string)

### `page_diff` (~254 tokens)

Page change check: content hash, clean text and line diff ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Fetch and read the web] Fetches one public page and returns a SHA-256 hash of its main text plus the clean text; if you send the previous hash or text it also says changed yes/no and, with previous text, lists added and removed lines. Input: url, optional previous_hash or previous_text. Limits: 1.5 MB page, 100,000 characters of text returned; robots.txt obeyed. Not cached.

Input parameters:

- `previous_hash` (string): content_sha256 from your previous call
- `previous_text` (string): text from your previous call (gives the changed lines; POST for long text)
- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.
- `url` (string, required): Public http(s) URL or bare domain, e.g. https://example.com

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `cache` (object)
- `changed` (boolean|null)
- `compared_with` (string|null)
- `content_sha256` (string)
- `diff` (object|null)
- `price_usd` (number)
- `provider` (string)
- `status` (integer)
- `text` (string)
- `text_truncated` (boolean)
- `tool` (string)
- `url` (string)

### `pdf_text` (~224 tokens)

PDF to text, page by page ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Fetch and read the web] Downloads one public PDF and returns its text layer page by page, with page count and title metadata. Input: url, optional max_pages. Limits: 10 MB, 50 pages, 500,000 characters; password-protected PDFs are refused and scanned images are not OCRed; robots.txt obeyed for every URL and redirect. Cached 1 h.

Input parameters:

- `max_pages` (string): Pages to read, 1-50 (default 50)
- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.
- `url` (string, required): Public http(s) URL or bare domain, e.g. https://example.com

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `bytes` (integer)
- `cache` (object)
- `info` (object)
- `page_count` (integer)
- `pages` (array)
- `pages_returned` (integer)
- `price_usd` (number)
- `provider` (string)
- `text_layer` (boolean)
- `tool` (string)
- `total_characters` (integer)
- `truncated` (boolean)
- `url` (string)

### `math_eval` (~316 tokens)

Exact calculator: arithmetic, fractions, big integers, functions ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Data utilities] Evaluates a math expression exactly: + - * / % ^ !, parentheses, big integers and fractions (1/3 stays 1/3), plus sqrt, round, floor, min, max, mean, gcd, lcm, comb, perm, ln, log, exp and trig (radians; deg constant). Returns result, fraction, decimal to N places, repeating decimal and whether it is exact. Input: expr, optional decimals 0-100. Limits: 1,000 characters, 10,000-digit values. Offline.

Input parameters:

- `decimals` (string): Decimal places in "decimal", 0-100 (default 20)
- `expr` (string, required): Math expression, up to 1,000 characters, e.g. sqrt(16/9) + cbrt(-27) + 8^(1/3) or comb(52, 5): numbers, + - * / % ^ ! ( ), functions like sqrt(), round(x, 2), constants pi, e, deg
- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `cache` (object)
- `decimal` (string)
- `decimals` (integer)
- `digits` (integer|null)
- `exact` (boolean)
- `expression` (string)
- `fraction` (string|null)
- `integer` (boolean)
- `notes` (array)
- `number` (number|null)
- `price_usd` (number)
- `provider` (string)
- `repeating` (string|null)
- `result` (string)
- `rounded` (boolean)
- `scientific` (string)
- `tool` (string)

### `date_calc` (~427 tokens)

Date calculator: add durations, business days, difference between dates ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Data utilities] Date arithmetic offline: adds or subtracts durations (ISO 8601 or plain text, including business days with your weekend and holiday list), and gives the difference to a second date in calendar days, weeks, years/months/days and business days, plus weekday, ISO week, day of year and quarter. Input: date (YYYY-MM-DD, ISO date-time, Unix seconds, today or now), optional add, subtract, until, tz, weekend, holidays. Years 1000-9999.

Input parameters:

- `add` (string): Duration to add: ISO 8601 (P1M2D, PT4H) or text (3 days, -2 weeks, 10 business days, 4h 30m; m = minutes, mo = months)
- `date` (string, required): Date: YYYY-MM-DD, ISO 8601 date-time (2026-11-01T09:30, optional Z or +08:00), Unix seconds, today or now
- `holidays` (string): Dates to skip as holidays in business-day math: up to 400 YYYY-MM-DD, comma-separated
- `subtract` (string): Duration to subtract (same formats as add)
- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.
- `tz` (string): IANA time zone for today/now and local times (default UTC)
- `until` (string): Second date: returns the difference in days, weeks, years/months/days and business days
- `weekend` (string): Weekend days for business-day math, e.g. sat,sun (default), fri,sat, sun or none

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `applied` (object|null)
- `business_rules` (object)
- `cache` (object)
- `difference` (object|null)
- `input` (object)
- `notes` (array)
- `price_usd` (number)
- `provider` (string)
- `result` (object|null)
- `start` (object)
- `timezone` (string)
- `tool` (string)

### `regex_test` (~354 tokens)

Regex tester: matches, groups, replace and split (JavaScript flavor) ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Data utilities] Runs a JavaScript (ECMAScript) regular expression on your text and returns every match with index, line, column, numbered and named groups, or the result of replace or split. Catastrophic patterns are stopped after 3 seconds and not charged. Input: pattern (or /pattern/flags), text, optional flags, mode, replace, max_matches (POST for long text). Limits: 2,000-character pattern, 400,000-character text. Offline.

Input parameters:

- `flags` (string): Regex flags, e.g. gi (or write the pattern as /.../flags)
- `max_matches` (string): Matches to list, 1-1000 (default 100)
- `mode` (string): match (all matches with groups, default), test (first match only), replace or split
- `pattern` (string, required): JavaScript regular expression, up to 2,000 characters, either the bare pattern or /pattern/flags
- `replace` (string): Replacement for mode=replace ($1, $<name>, $&; default empty = delete matches)
- `text` (string, required): Text to run the regex on, up to 400,000 characters (POST for long text)
- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `cache` (object)
- `flags` (string)
- `flavor` (string)
- `group_count` (integer)
- `group_names` (array)
- `match_count` (integer)
- `matched` (boolean)
- `matches` (array)
- `mode` (string)
- `notes` (array)
- `parts` (array)
- `pattern` (string)
- `price_usd` (number)
- `provider` (string)
- `replaced_count` (integer)
- `result` (string)
- `tool` (string)
- `truncated` (boolean)

### `text_diff` (~334 tokens)

Text diff: unified diff, hunks and similarity of two texts ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Data utilities] Compares two texts you send and returns whether they are identical, a similarity score, counts of added, removed and unchanged lines (or words or characters), plus a unified diff and hunks in line mode or a change list in word and char mode. Input: before, after, optional mode, context, ignore_whitespace, ignore_case (POST for long text). Limits: 200,000 characters per side (word 100,000, char 20,000). Offline.

Input parameters:

- `after` (string, required): The new text, up to 200,000 characters (POST for long text)
- `before` (string, required): The original text, up to 200,000 characters (POST JSON {"before": "...", "after": "..."} for long text)
- `context` (string): Unchanged lines around each change in line mode, 0-20 (default 3)
- `ignore_case` (string): Ignore upper/lower case
- `ignore_whitespace` (string): Line mode: ignore leading/trailing whitespace
- `mode` (string): Compare by line (default, unified diff), word or character
- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `cache` (object)
- `changes` (array)
- `hunks` (array)
- `identical` (boolean)
- `mode` (string)
- `price_usd` (number)
- `provider` (string)
- `similarity` (number)
- `stats` (object)
- `tool` (string)
- `unified` (string)
- `unit` (string)

### `csv_parse` (~386 tokens)

CSV/TSV to JSON with delimiter, header and type detection ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Data utilities] Parses CSV or TSV text into JSON rows (objects or arrays). Detects the delimiter (comma, semicolon, tab, pipe), the header row and quoting (RFC 4180: quoted commas, doubled quotes, newlines in quotes), infers column types and flags formula-injection cells (= + - @). Input: csv (POST for long text), optional delimiter, header, output, types, quote, max_rows. Limits: 1,000,000 characters, 50,000 rows, 500 columns. Offline.

Input parameters:

- `csv` (string, required): CSV or TSV text, up to 1,000,000 characters (POST JSON {"csv": "..."} for long text)
- `delimiter` (string): Field separator: auto (default, detected), comma, semicolon, tab or pipe
- `header` (string): Is the first row a header? auto (default, detected), yes or no
- `max_rows` (string): Rows returned, 1-5000 (default 1000); column stats still cover every parsed row
- `output` (string): Rows as objects keyed by column name (default) or as arrays
- `quote` (string): Quote character: double (default), single or none
- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.
- `types` (string): Infer column types and convert numbers and booleans (default yes); no keeps every cell as text

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `cache` (object)
- `column_count` (integer)
- `columns` (array)
- `delimiter` (string)
- `delimiter_detected` (boolean)
- `formula_cells` (object)
- `header` (boolean)
- `header_detected_by` (string)
- `output` (string)
- `price_usd` (number)
- `provider` (string)
- `row_count` (integer)
- `rows` (array)
- `rows_returned` (integer)
- `tool` (string)
- `truncated` (boolean)
- `warnings` (array)

### `json_query` (~318 tokens)

JSON query: JSONPath (RFC 9535) or JSON Pointer ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Data utilities] Selects values from a JSON document with a JSONPath query (RFC 9535: names, indexes, slices, wildcards, .. descendants, filters with comparisons, && || ! and length/count/value) or a JSON Pointer (RFC 6901). Returns every match with its normalized path and pointer. Input: json and query (POST for large documents), optional max_results. Limits: 1 MB JSON, 1,000-character query; match() and search() are not offered. Offline.

Input parameters:

- `json` (string, required): JSON text, up to 1 MB (a JSON value is also accepted in a POST body or MCP arguments)
- `max_results` (string): Values returned, 1-1000 (default 100); match_count is always the full count
- `query` (string, required): JSONPath starting with $ (RFC 9535, e.g. $.items[?@.price < 10].name) or JSON Pointer starting with / (RFC 6901, e.g. /items/0/name)
- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `cache` (object)
- `language` (string)
- `match_count` (integer)
- `notes` (array)
- `price_usd` (number)
- `provider` (string)
- `query` (string)
- `results` (array)
- `results_returned` (integer)
- `tool` (string)
- `truncated` (boolean)

### `json_schema_infer` (~342 tokens)

JSON Schema 2020-12 inferred from sample JSON ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Data utilities] Infers a JSON Schema (2020-12) from 1-1,000 sample documents: types with null and integer vs number, properties, required (keys present in every sample), array items, string formats (date-time, date, email, uri, uuid, ipv4, ipv6) when every value matches, optional enums and strict mode. Input: json (one document or an array of samples; POST for large input), optional samples, enums, strict. Limits: 1 MB, depth 64. Pair with json-validate. Offline.

Input parameters:

- `enums` (string): yes: add enum for string fields with at most 10 distinct values, each seen at least twice (default no)
- `json` (string, required): JSON text, up to 1 MB (a JSON value is also accepted in a POST body or MCP arguments)
- `samples` (string): auto (default): a top-level array of objects is a list of samples; yes: the top-level array is a list of samples; no: the whole input is one sample
- `strict` (string): yes: additionalProperties false on every object (default no)
- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `cache` (object)
- `notes` (array)
- `price_usd` (number)
- `provider` (string)
- `sample_count` (integer)
- `samples_mode` (string)
- `schema` (object)
- `stats` (object)
- `tool` (string)

### `unit_convert` (~352 tokens)

Unit converter with exact factors (NIST SP 811) ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Data utilities] Converts a value between units exactly, with rational factors from NIST SP 811 and HB 44 (inch = 0.0254 m, pound = 0.45359237 kg, US gallon = 231 in3): length, area, volume (US and imperial), mass, temperature, time, speed and data size (kB vs KiB). Returns the exact fraction, a decimal, the factor and its source. Input: value (decimal, 1e6 or 1/3), from, optional to (default all), decimals. Offline.

Input parameters:

- `decimals` (string): Decimal places in "value", 0-30 (default 12); "fraction" is always exact
- `from` (string, required): Unit of the value, e.g. mi, km, lb, kg, F, C, GiB, MB, gal, l, mph, acre (symbols or names)
- `to` (string): Target unit of the same kind, or all (default): every unit of that kind
- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.
- `value` (string, required): Number to convert: decimal (12.5), scientific (1e6) or fraction (1/3), up to 100 characters

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `cache` (object)
- `decimals` (integer)
- `dimension` (string)
- `factor` (object|null)
- `input` (object)
- `notes` (array)
- `price_usd` (number)
- `provider` (string)
- `result` (object)
- `results` (array)
- `tool` (string)

### `text_extract` (~313 tokens)

Text extraction: URLs, dates, money, numbers and more ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Data utilities] Finds URLs, domains, dates (ISO, written and numeric, ambiguous ones flagged with both readings, as ISO 8601), money amounts with currency, percentages, numbers and hashtags in text you send, each with position and occurrences. Email addresses and phone-like numbers only when listed in types; nothing is looked up or stored; names and addresses are never extracted. Input: text (POST for long text), optional types, max_items. Limit: 400,000 characters. Offline.

Input parameters:

- `max_items` (string): Unique items per type, 1-1000 (default 200)
- `text` (string, required): Plain text or Markdown, 1-400,000 characters (short text in the query; long text as POST JSON {"text": "..."})
- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.
- `types` (string): Comma list of: urls, domains, emails, phones, dates, money, percentages, numbers, hashtags. Default: urls, domains, dates, money, percentages, numbers, hashtags (emails and phones only when listed)

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `cache` (object)
- `dates` (array)
- `domains` (array)
- `emails` (array)
- `hashtags` (array)
- `money` (array)
- `notes` (array)
- `numbers` (array)
- `percentages` (array)
- `phones` (array)
- `price_usd` (number)
- `provider` (string)
- `summary` (object)
- `text_length` (integer)
- `tool` (string)
- `truncated_types` (array)
- `types` (array)
- `urls` (array)

### `prompt_injection_scan` (~409 tokens)

Prompt-injection scan for untrusted text ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Data utilities] Screens text an agent is about to read (web page, email, tool output, document) for prompt injection: instruction overrides ("ignore previous instructions"), role hijacks and jailbreak modes, fake chat delimiters (<|im_start|>, [INST], "system:" lines), requests to reveal the system prompt or send secrets, Markdown-image exfiltration URLs, hiding things from the user, coerced tool calls, payments or shell one-liners, and text hidden from humans (zero-width, bidi and Unicode tag characters, HTML comments, display:none blocks, base64), which is decoded and scanned too. Returns verdict likely_injection / suspicious / no_injection_found, a 0-100 score, findings with excerpt and line, and hidden-content counts. Rule-based and offline: not a model and not a guarantee. Input: text (POST for long text), optional format, max_findings, clean. Limit: 200,000 characters.

Input parameters:

- `clean` (string): yes: also return cleaned_text with invisible characters (zero-width, bidi, Unicode tags) removed
- `format` (string): auto (default, detected), text, html or markdown; html and markdown also read HTML comments and hidden elements
- `max_findings` (string): Findings returned, 1-200 (default 50)
- `text` (string, required): Untrusted text, HTML or Markdown to scan, 1-200,000 characters (POST JSON {"text": "..."} for long text)
- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `cache` (object)
- `categories` (object)
- `cleaned_note` (string)
- `cleaned_text` (string|null)
- `confidence` (string)
- `finding_count` (integer)
- `findings` (array)
- `findings_truncated` (boolean)
- `format` (string)
- `hidden_content` (object)
- `lines` (integer)
- `notes` (array)
- `price_usd` (number)
- `provider` (string)
- `recommendation` (string)
- `score` (integer)
- `text_length` (integer)
- `tool` (string)
- `verdict` (string)

### `federal_register` (~372 tokens)

US Federal Register search (rules, notices) ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Public records] Searches US Federal Register documents (rules, proposed rules, notices, presidential documents) through the official FederalRegister.gov API: full-text term, optional agency slug, type and date range. Returns the total count and up to 20 documents with title, type, action, abstract, agencies, publication date, effective date, comment deadline (comments_open), docket IDs, RINs, citation and the HTML and official PDF links. Public-domain data, no key; cached 15 min. ~0.5-2 s.

Input parameters:

- `agency` (string): Agency slug as used by FederalRegister.gov, e.g. securities-and-exchange-commission, environmental-protection-agency
- `max_results` (string): Documents returned, 1-20 (default 10); total_count is always the full count
- `order` (string): Sort: newest (default), oldest or relevance
- `since` (string): Published on or after this date, YYYY-MM-DD
- `term` (string, required): Search words for Federal Register documents, 2-200 characters, e.g. stablecoin or "emission standards"
- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.
- `type` (string): Document type: any (default), rule, proposed_rule, notice or presidential_document
- `until` (string): Published on or before this date, YYYY-MM-DD

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `attribution` (string)
- `cache` (object)
- `documents` (array)
- `fetched_at` (string)
- `notes` (array)
- `price_usd` (number)
- `provider` (string)
- `query` (object)
- `response_ms` (integer)
- `returned` (integer)
- `source` (string)
- `tool` (string)
- `total_count` (integer)

### `sec_filings` (~354 tokens)

SEC EDGAR filings of a listed company ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Public records] Recent SEC EDGAR filings of a US-listed company by ticker (AAPL, BRK-B) or CIK: company name, CIK, tickers, exchanges, SIC industry, fiscal year end and state of incorporation, then the filings (form, filing and report date, accession number, description, 8-K items, XBRL flag, document and index URLs), filtered by form types and date, with counts per form. Listed companies only (CIKs in the SEC ticker list; no individuals). Documents are linked, not read. No key; cached 10 min. ~0.5-3 s.

Input parameters:

- `company` (string, required): Stock ticker of a US-listed company (AAPL, BRK-B) or its SEC CIK number (320193)
- `forms` (string): Comma list of form types to keep, e.g. 10-K,10-Q,8-K (amendments like 10-K/A are included); default all
- `max_results` (string): Filings returned, 1-100 (default 20); matched is always the full count in the recent list
- `since` (string): Filed on or after this date, YYYY-MM-DD
- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `attribution` (string)
- `cache` (object)
- `company` (object)
- `fetched_at` (string)
- `filings` (array)
- `filter` (object)
- `form_counts` (object)
- `matched` (integer)
- `notes` (array)
- `price_usd` (number)
- `provider` (string)
- `recent_total` (integer)
- `response_ms` (integer)
- `returned` (integer)
- `source` (string)
- `tool` (string)
- `truncated` (boolean)

### `verdict_card` (~215 tokens)

Shareable risk-signals card for a site (SVG) ($0.01/call)

$0.01 per call (x402, USDC on Base; the call returns the payment terms: pay and retry with _meta["x402/payment"]; not covered by the free trial). [SEO, security and site verdicts] The site-verdict risk signals rendered as a branded 1200x630 SVG card: risk level (low observed risk / elevated / high / unknown), risk score 0-100, a one-line summary and the top signals, with a permanent public URL (card_url) to share or embed, plus the inline SVG, signals with evidence and coverage (trust/2). The card says "signals only, not a safety certification" and never shows a safe or legit seal. Text comes from Lordevo's own local model (no cloud AI) blended with rules. Method and measured error rates: https://shop.lordevo.com/docs/trust-methodology

Input parameters:

- `url` (string, required): Public http(s) URL or bare domain, e.g. https://example.com

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `cache` (object)
- `card_page` (string)
- `card_svg` (string)
- `card_url` (string)
- `coverage` (object)
- `domain` (string)
- `height` (integer)
- `methodology_url` (string)
- `not_a_guarantee` (boolean)
- `not_a_guarantee_text` (string)
- `one_liner` (string)
- `price_usd` (number)
- `provider` (string)
- `reasons` (array)
- `risk` (object)
- `schema` (string)
- `signals` (array)
- `tool` (string)
- `url` (string)
- `verdict` (string): Deprecated alias of risk.level, removed after 2027-01-31
- `width` (integer)

### `page_markdown` (~347 tokens)

URL to Markdown: LLM-ready web page reader (main content) ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Fetch and read the web] URL to Markdown web scraper for agents and RAG: read any public web page as clean, LLM-ready Markdown. Fetch one public web page and return its main content as clean Markdown: navigation, cookie banners, footers, share bars and related-post blocks removed; headings, nested lists, links, images with alt, tables as pipe tables and code as fenced blocks with language. Plus title, description, lang, canonical, published/modified date when the page states one, word count and token estimate. Options: include_links=false (text only), max_tokens=100-100000 (cut at block boundaries, truncated flag). Up to 60,000 characters. Obeys robots.txt. ~1-3 s.

Input parameters:

- `include_links` (string): false = drop link targets and images, keep the text (default true)
- `max_tokens` (string): Cut the Markdown to about this many tokens at block boundaries (100-100000); sets truncated and truncated_reason "max_tokens"
- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.
- `url` (string, required): Web page to read: a public http(s) URL, e.g. https://example.com/blog/post (a bare domain reads the home page)

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `cache` (object)
- `description`
- `extraction` (object|null)
- `lang` (string|null)
- `markdown` (string|null)
- `markdown_chars` (number|null)
- `markdown_tokens` (number|null)
- `metadata` (object|null)
- `price_usd` (number)
- `provider` (string)
- `status` (number|null)
- `title` (string|null)
- `tool` (string|null)
- `truncated` (boolean|null)
- `truncated_reason`
- `url` (string|null)
- `word_count` (number|null)

### `page_markdown_batch` (~270 tokens)

Batch URL to Markdown: up to 5 web pages per call (LLM-ready) ($0.01/call)

$0.01 per call (x402, USDC on Base; the call returns the payment terms: pay and retry with _meta["x402/payment"]; not covered by the free trial). [Fetch and read the web] Batch URL to Markdown web scraper for RAG ingest and research agents. page-markdown for 1-5 public URLs in one paid call (comma-separated): the same clean main-content Markdown, metadata and options (include_links, max_tokens) per URL, with a per-URL error (robots_disallowed, target_http_error...) where a page cannot be read. If every URL fails, nothing is charged. One payment for 5 URLs = $0.002 per URL, the same as 5 single page-markdown calls; for 1-4 URLs single calls ($0.002 each) are cheaper. robots.txt checked per URL and redirect. ~2-10 s.

Input parameters:

- `include_links` (string): false = drop link targets and images, keep the text (default true)
- `max_tokens` (string): Cut the Markdown to about this many tokens at block boundaries (100-100000); sets truncated and truncated_reason "max_tokens"
- `urls` (string, required): 1-5 public http(s) URLs, comma-separated

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `cache` (object)
- `count` (integer)
- `failed` (integer)
- `ok` (integer)
- `price_usd` (number)
- `provider` (string)
- `results` (array)
- `tool` (string)

### `page_meta` (~195 tokens)

Page metadata + Markdown ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Fetch and read the web] Read one public web page and return clean Markdown of the main content plus metadata: title, meta description, canonical, robots, lang, Open Graph/Twitter tags, headings outline, JSON-LD types, internal/external links, images missing alt, word count. Obeys robots.txt. ~1-3 s.

Input parameters:

- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.
- `url` (string, required): Public http(s) URL or bare domain, e.g. https://example.com

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `cache` (object)
- `canonical`
- `headings` (array|null)
- `images` (object|null)
- `json_ld_types` (array|null)
- `lang` (string|null)
- `links` (object|null)
- `markdown` (string|null)
- `meta_description`
- `price_usd` (number)
- `provider` (string)
- `status` (number|null)
- `title` (string|null)
- `tool` (string|null)
- `url` (string|null)
- `word_count` (number|null)

### `email_auth` (~227 tokens)

Email authentication check (SPF, DKIM, DMARC) ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Web and domain checks] SPF, DKIM and DMARC check. Check a domain's email authentication and spoofing risk from public DNS: MX and mail provider, SPF (record, all-qualifier, DNS lookup count vs the 10 limit), DMARC policy/pct/rua, DKIM at 30 common selectors, MTA-STS, TLS-RPT, BIMI. Returns grade, spoofable flag and fixes. ~1-3 s.

Input parameters:

- `domain` (string, required): Domain that sends the email, e.g. example.com (a URL or an address like jane@example.com also works)
- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `cache` (object)
- `dkim` (object|null)
- `dmarc` (object|null)
- `domain` (string|null)
- `grade` (string|null)
- `issues` (array|null)
- `mail_provider` (array|null)
- `mx` (array|null)
- `price_usd` (number)
- `provider` (string)
- `score` (number|null)
- `spf` (object|null)
- `spoofable` (boolean|null)
- `tool` (string|null)

### `security_headers` (~215 tokens)

Security headers + TLS quick grade ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [SEO, security and site verdicts] Security headers check. Passive check of a public website's HTTPS setup: TLS version and certificate expiry, HTTP->HTTPS redirect, HSTS, CSP, X-Frame-Options/frame-ancestors, X-Content-Type-Options, Referrer-Policy, Permissions-Policy, cookie flags, version disclosure. Returns grade A+..F and fixes. ~1-3 s.

Input parameters:

- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.
- `url` (string, required): Website to check: a public http(s) URL or bare domain, e.g. https://example.com

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `cache` (object)
- `grade` (string|null)
- `headers` (object|null)
- `http_to_https` (string|null)
- `https` (boolean|null)
- `issues` (array|null)
- `price_usd` (number)
- `provider` (string)
- `score` (number|null)
- `tls` (object|null)
- `tool` (string|null)
- `url` (string|null)

### `tech_stack` (~202 tokens)

Tech stack detection ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [Web and domain checks] Detect what a website is built with from its homepage HTML and headers: CMS/site builder, ecommerce platform, JS framework, analytics and ad pixels, tag manager, chat/support widgets, payments, consent, CDN, hosting, web server, language. ~90 signatures with evidence-based detection and versions where visible. Obeys robots.txt. ~1-3 s.

Input parameters:

- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.
- `url` (string, required): Public http(s) URL or bare domain, e.g. https://example.com

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `by_category` (object|null)
- `cache` (object)
- `price_usd` (number)
- `provider` (string)
- `server` (string|null)
- `technologies` (array|null)
- `tool` (string|null)
- `url` (string|null)

### `seo_page` (~233 tokens)

On-page SEO check (one page) ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [SEO, security and site verdicts] On-page SEO check of one URL: title/meta lengths, H1, canonical, noindex, viewport, lang, Open Graph, JSON-LD, images alt, thin content, compression, response time, plus robots.txt, XML sitemap, llms.txt and which AI crawlers (GPTBot, ClaudeBot, PerplexityBot...) are allowed. Score 0-100 with issues and fixes. Obeys robots.txt. ~2-5 s.

Input parameters:

- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.
- `url` (string, required): Page to check: a public http(s) URL or bare domain, e.g. https://example.com/blog/post

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `cache` (object)
- `issues` (array|null)
- `price_usd` (number)
- `provider` (string)
- `score` (number|null)
- `site` (object|null)
- `summary` (object|null)
- `tool` (string|null)
- `url` (string|null)

### `site_snapshot` (~144 tokens)

Site snapshot (SEO + security + tech + email) ($0.02/call)

$0.02 per call (x402, USDC on Base; the call returns the payment terms: pay and retry with _meta["x402/payment"]; not covered by the free trial). [SEO, security and site verdicts] All four quick checks in one call for a website: on-page SEO score and issues, security headers/TLS grade, tech stack, and the domain's SPF/DKIM/DMARC email authentication. Good for lead qualification, vendor due diligence or a first look before a full audit. ~3-8 s.

Input parameters:

- `url` (string, required): Public http(s) URL or bare domain, e.g. https://example.com

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `cache` (object)
- `domain` (string|null)
- `email` (object|null)
- `price_usd` (number)
- `provider` (string)
- `scores` (object|null)
- `security` (object|null)
- `seo` (object|null)
- `tech` (object|null)
- `tool` (string|null)
- `top_issues` (array|null)
- `url` (string|null)

### `page_quality` (~214 tokens)

Page quality verdict (AI) ($0.005/call)

$0.005 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [SEO, security and site verdicts] AI verdict on one page's content quality: high/medium/low with a 0-100 score, topic, strengths, problems and one-line summary, blended with measured metrics (word count, Flesch readability, headings, duplicate sentences, link ratio, author/date). Runs on Lordevo's own local model (no cloud AI). Obeys robots.txt. ~3-20 s.

Input parameters:

- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.
- `url` (string, required): Public http(s) URL or bare domain, e.g. https://example.com

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `ai` (object|null)
- `ai_score` (number|null)
- `cache` (object)
- `metrics` (object|null)
- `price_usd` (number)
- `problems` (array|null)
- `provider` (string)
- `quality_score` (number|null)
- `rule_score` (number|null)
- `strengths` (array|null)
- `summary` (string|null)
- `tool` (string|null)
- `topic` (string|null)
- `url` (string|null)
- `verdict` (string|null)

### `site_verdict` (~224 tokens)

Business-site risk signals (evidence + risk level, AI-assisted) ($0.01/call)

$0.01 per call (x402, USDC on Base; the call returns the payment terms: pay and retry with _meta["x402/payment"]; not covered by the free trial). [SEO, security and site verdicts] Risk signals for a business website (trust/2): risk level low_observed_risk / elevated / high / unknown with a 0-100 RISK score, confidence and signals[] with evidence, from public data: HTTPS, domain age (RDAP), MX/SPF/DMARC, contact details, address, company registration text, policies, social links, parked/for-sale and scam-phrase detection, plus Lordevo's own local model (no cloud AI, basis: inferred). Never certifies a site as legit or safe; registrations are detected, not verified. ~3-20 s. Method and measured error rates: https://shop.lordevo.com/docs/trust-methodology

Input parameters:

- `url` (string, required): Public http(s) URL or bare domain, e.g. https://example.com

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `ai` (object)
- `business_type` (string|null)
- `cache` (object)
- `coverage` (object)
- `domain` (string)
- `evidence` (object)
- `methodology_url` (string)
- `not_a_guarantee` (boolean)
- `not_a_guarantee_text` (string)
- `observed` (object)
- `price_usd` (number)
- `provider` (string)
- `reasons` (array)
- `risk` (object)
- `schema` (string)
- `signals` (array)
- `summary` (string)
- `tool` (string)
- `url` (string)
- `verdict` (string): Deprecated alias of risk.level, removed after 2027-01-31

### `seo_audit_lite` (~232 tokens)

SEO audit, one page: top 10 issues with fixes (LITE) ($0.002/call)

$0.002 per call (x402, USDC on Base; add "trial": true to try up to 3 calls per IP per day free on tools up to $0.005; otherwise the call returns the payment terms: pay and retry with _meta["x402/payment"]). [SEO, security and site verdicts] SEO audit of one page (on-page SEO check with fixes). LITE version of the $2 SEO Audit: one page, the top 10 issues ranked by severity and effort with why/fix, plus up to 12 internal links checked for 404s, mixed content, headings, structured data, Open Graph, robots.txt/sitemap/llms.txt. ~5-15 s. Upgrade: full 10-page SEO Audit ($2).

Input parameters:

- `trial` (boolean): Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.
- `url` (string, required): Page to audit: a public http(s) URL or bare domain, e.g. https://example.com

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `cache` (object)
- `counts` (object|null)
- `issues_found` (number|null)
- `links_checked` (array|null)
- `price_usd` (number)
- `provider` (string)
- `score` (number|null)
- `tier` (string|null)
- `tool` (string|null)
- `top_issues` (array|null)
- `upsell` (object|null)
- `url` (string|null)

### `security_scan_lite` (~161 tokens)

Website Security Scan LITE (passive summary) ($0.02/call)

$0.02 per call (x402, USDC on Base; the call returns the payment terms: pay and retry with _meta["x402/payment"]; not covered by the free trial). [SEO, security and site verdicts] LITE version of the Website Security Check: passive summary only (headers, TLS/certificate, HTTP->HTTPS, cookies, SPF/DKIM/DMARC, CAA, IPv6, security.txt) with grade A-F and top 10 findings. Nothing intrusive. ~3-10 s. Upgrade: Passive check ($1) or Deep active scan ($5, ownership verification required).

Input parameters:

- `url` (string, required): Public http(s) URL or bare domain, e.g. https://example.com

Output parameters:

- `_trial` (object): Present when the call was a free trial call.
- `cache` (object)
- `domain` (string|null)
- `grade` (string|null)
- `passive_only` (boolean|null)
- `price_usd` (number)
- `provider` (string)
- `score` (number|null)
- `summary` (object|null)
- `tier` (string|null)
- `tool` (string|null)
- `top_findings` (array|null)
- `upsell` (array|null)
- `url` (string|null)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-lordevo-shop/shop#diagnostics

## Score history

- 2026-11-05: 77
- 2026-11-04: 76
- 2026-11-03: 67
- 2026-11-02: 66
- 2026-11-01: 66
- 2026-10-31: 65
- 2026-10-30: 65
- 2026-10-29: 73
- 2026-10-28: 73
- 2026-10-27: 72
- 2026-10-26: 72

## Common questions

### What is the Lordevo Shop (x402 website checks) MCP server?

Lordevo Shop (x402 website checks) is an MCP server listed in the public MCP registry as com.lordevo/shop. 33 paid x402 web/DNS/email/SSL checks for agents from $0.01 per call, plus 2 free tools. This page covers its hosted endpoint (https://shop.lordevo.com/mcp).

### Is the Lordevo Shop (x402 website checks) MCP server safe to use?

Lordevo Shop (x402 website checks) scores 77 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Lordevo Shop (x402 website checks) MCP server expose?

Lordevo Shop (x402 website checks) exposes 63 tools: site_report, site_report_status, site_check, list_services, get_sample_output, and 58 more. Their descriptions and schemas cost roughly 15,575 tokens of context every time the server is loaded.

### Does the Lordevo Shop (x402 website checks) MCP server require authentication?

No. We connected to Lordevo Shop (x402 website checks) without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the Lordevo Shop (x402 website checks) MCP server still maintained?

Lordevo Shop (x402 website checks) is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://shop.lordevo.com/mcp
- Website: https://shop.lordevo.com/
- Changelog RSS feed: https://verifymcp.io/servers/com-lordevo-shop/shop.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-lordevo-shop/shop.json
- HTML version of this page: https://verifymcp.io/servers/com-lordevo-shop/shop
