{"serverId":"mcp-registry/io.github.zadengg/x402-zadenworks","tools":[{"name":"audit_site_health","fixed":{"name":"audit_site_health","description":"Run a COMPLETE health check on a page behind a single payment, and the tool to reach for when someone asks 'is this page any good?' rather than one narrow question. Covers on-page SEO and meta tags, JSON-LD structured data and social preview tags, and WCAG accessibility -- optionally plus broken links and robots.txt/sitemap crawlability. Returns one overall score, every finding in a single worst-first list with the check that produced it, and the full per-check detail. Cheaper and far simpler th","inputSchema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"Page to audit"},"x_payment":{"type":"string","description":"Optional X-PAYMENT header value from a completed x402 payment. Omit on first call to receive the payment challenge; complete the payment with your x402 wallet tooling, then retry with this set."},"includeLinks":{"type":"boolean","default":false,"description":"Also check every link on the page (slower)"},"includeSitemap":{"type":"boolean","default":false,"description":"Also audit robots.txt and the XML sitemap (slower)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":315,"tokensAfter":315},{"name":"check_email_dns","fixed":{"name":"check_email_dns","description":"Grade a domain's email authentication from DNS -- the tool to reach for when mail is landing in spam, or someone asks whether a domain is protected against spoofing. Checks MX (can it receive mail), SPF (who may send as it, and whether '+all' lets anyone), DMARC policy (none / quarantine / reject) and DKIM under the common selectors. Returns a 0-100 score, a letter grade, the records found and a prioritised issue list. Up to 4 domains per call. Paid: $0.01 per call in USDC on Base via x402 -- ca","inputSchema":{"type":"object","required":["domains"],"properties":{"domains":{"type":"array","items":{"type":"string"},"description":"Domains to grade (max 4)"},"x_payment":{"type":"string","description":"Optional X-PAYMENT header value from a completed x402 payment. Omit on first call to receive the payment challenge; complete the payment with your x402 wallet tooling, then retry with this set."},"dkimSelectors":{"type":"array","items":{"type":"string"},"description":"DKIM selectors to try (max 7; sensible defaults)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":298,"tokensAfter":298},{"name":"check_links","fixed":{"name":"check_links","description":"Check every link on a page and report which are broken. Each anchor is resolved to an absolute URL, de-duplicated, and checked with a HEAD request (falling back to GET where the server rejects HEAD), returning its status code, whether it redirected, response time and a severity. Gives a 0-100 score and a letter grade per page. Anchors, mailto: and tel: links are excluded because they cannot be broken. Up to 5 pages and 40 link checks per call. Paid: $0.02 per call in USDC on Base via x402 — call","inputSchema":{"type":"object","required":["urls"],"properties":{"urls":{"type":"array","items":{"type":"string"},"description":"Pages to check (max 5)"},"x_payment":{"type":"string","description":"Optional X-PAYMENT header value from a completed x402 payment. Omit on first call to receive the payment challenge; complete the payment with your x402 wallet tooling, then retry with this set."},"maxLinksPerPage":{"type":"integer","default":40,"maximum":40,"minimum":1},"checkExternalLinks":{"type":"boolean","default":true,"description":"Also check links pointing off-site"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":310,"tokensAfter":310},{"name":"compare_pages","fixed":{"name":"compare_pages","description":"Compare two URLs' content and report what's different: paragraphs unique to each side, word count delta, whether they're identical. Paid: $0.02 per call in USDC on Base via x402 — call once without x_payment to receive the payment challenge.","inputSchema":{"type":"object","required":["urlA","urlB"],"properties":{"urlA":{"type":"string","description":"First public http/https URL"},"urlB":{"type":"string","description":"Second public http/https URL"},"selector":{"type":"string","description":"Optional CSS selector applied to both pages before comparing"},"x_payment":{"type":"string","description":"Optional X-PAYMENT header value from a completed x402 payment. Omit on first call to receive the payment challenge; complete the payment with your x402 wallet tooling, then retry with this set."},"maxDiffItems":{"type":"integer","default":10,"maximum":50,"minimum":1}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":254,"tokensAfter":254},{"name":"find_contacts","fixed":{"name":"find_contacts","description":"Find a company website's public contact details -- the tool to reach for when someone needs an email address, phone number or social profile for a business. Reads the homepage plus up to three likely pages (/contact, /about ...) and returns email addresses (including Cloudflare-obfuscated ones), phone numbers, social profiles (LinkedIn, X/Twitter, Facebook, Instagram, YouTube, TikTok, GitHub) and the contact page URL. Up to 5 sites per call; a site behind a bot-protection challenge is reported a","inputSchema":{"type":"object","required":["urls"],"properties":{"urls":{"type":"array","items":{"type":"string"},"description":"Sites to read: homepage URLs or bare domains (max 5)"},"x_payment":{"type":"string","description":"Optional X-PAYMENT header value from a completed x402 payment. Omit on first call to receive the payment challenge; complete the payment with your x402 wallet tooling, then retry with this set."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":269,"tokensAfter":269},{"name":"list_rank_categories","fixed":{"name":"list_rank_categories","description":"List the currently available x402 service ranking categories. Free, no payment required.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":52,"tokensAfter":52},{"name":"lookup_domain","fixed":{"name":"lookup_domain","description":"Look up domain registration over RDAP (the ICANN successor to WHOIS) -- the tool to reach for when someone asks when a domain expires, who its registrar is, or whether it is registered at all. Returns the registrar, creation and expiry dates, days until expiry, EPP status codes (e.g. clientTransferProhibited) and nameservers, with isExpired / isExpiringSoon flags, a 0-100 score and a one-line summary. Up to 10 domains per call; URLs and www. are stripped. A TLD with no RDAP service is reported a","inputSchema":{"type":"object","required":["domains"],"properties":{"domains":{"type":"array","items":{"type":"string"},"description":"Domains to look up (max 10)"},"x_payment":{"type":"string","description":"Optional X-PAYMENT header value from a completed x402 payment. Omit on first call to receive the payment challenge; complete the payment with your x402 wallet tooling, then retry with this set."},"expiryWarningDays":{"type":"integer","description":"Flag domains expiring within this many days (default 30)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":295,"tokensAfter":295},{"name":"read_page","fixed":{"name":"read_page","description":"Extract clean readable markdown/text from any public URL (title, byline, excerpt, body content with nav/ads/scripts stripped). Handles JS-rendered pages. Paid: $0.01 per call in USDC on Base via x402 — call once without x_payment to receive the payment challenge.","inputSchema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"Public http/https URL to read"},"selector":{"type":"string","description":"Optional CSS selector to scope extraction to"},"maxLength":{"type":"integer","default":50000,"maximum":200000,"minimum":1000},"x_payment":{"type":"string","description":"Optional X-PAYMENT header value from a completed x402 payment. Omit on first call to receive the payment challenge; complete the payment with your x402 wallet tooling, then retry with this set."},"includeLinks":{"type":"boolean","default":false},"includeImages":{"type":"boolean","default":false}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":263,"tokensAfter":263},{"name":"validate_structured_data","fixed":{"name":"validate_structured_data","description":"Validate a page's JSON-LD structured data and its social preview tags. Reports which schema.org types are present, whether each carries the fields Google's rich results require, whether any JSON-LD block fails to parse as JSON, and whether Open Graph and Twitter Card tags are complete. Useful before publishing, or to diagnose why a page renders no preview card when shared. Returns a 0-100 score, a letter grade and a prioritised issue list. Up to 10 URLs per call. Paid: $0.01 per call in USDC on ","inputSchema":{"type":"object","required":["urls"],"properties":{"urls":{"type":"array","items":{"type":"string"},"description":"Pages to validate (max 10)"},"x_payment":{"type":"string","description":"Optional X-PAYMENT header value from a completed x402 payment. Omit on first call to receive the payment challenge; complete the payment with your x402 wallet tooling, then retry with this set."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":265,"tokensAfter":265}],"toolsChanged":9,"tokensSaved":0,"todo":[{"tool":"batch_pages","params":["items"]},{"tool":"check_links","params":["maxLinksPerPage"]},{"tool":"compare_pages","params":["maxDiffItems"]},{"tool":"extract_tables","params":["maxTables","maxRowsPerTable"]},{"tool":"read_page","params":["maxLength","includeLinks","includeImages"]},{"tool":"render_url","params":["width","format","height","waitMs","fullPage"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}