Skip to content

Web Search & Data API

by kadec0.xyz · remote · no sign-in to list tools · v1.0.0 · published by xyz.kadec0

Web search, scraping, Google Trends and data lookups. Paid per call in USDC on Base via x402.

Changes · 20

23 tools: 20 change things and 3 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http web-search-data-api https://api.kadec0.xyz/mcp

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

23 tools

Changes things 20Claude Code: ask
  • congress_tradesUS congressional stock trades.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    US congressional stock trades. Stock transactions disclosed by members of the House and Senate under the STOCK Act — politician, ticker, amount, and date. [$0.05/call]. Params — politician: filer name substring; ticker: stock ticker, exact; chamber: string (house|senate); dateRange: YYYY-MM-DD..YYYY-MM-DD on transaction date; type: transaction type substring e.g. purchase|sale; maxItems: integer Example params: {'ticker': 'NVDA', 'chamber': 'house'}
  • cveCVE vulnerability lookup.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    CVE vulnerability lookup. Returns security vulnerability records by CVE id or keyword from the NIST National Vulnerability Database and GitHub Security Advisories, each with CVSS score, severity, CWE weakness class, affected products, and references, filterable by severity and source. For vulnerability triage and dependency risk checks. Keyless. [$0.01/call]. Params — cve_id: exact CVE id, e.g. CVE-2021-44228; keyword: free-text search; severity: string (low|medium|high|critical); source: string (nvd|github|all); maxItems: integer Example params: {'keyword': 'log4j', 'severity': 'critical'}
  • dns_propagationDNS propagation checker.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    DNS propagation checker. Compares a DNS record across public resolvers (Google, Cloudflare, Quad9, OpenDNS) to spot propagation lag or split-horizon answers. [$0.03/call]. Params — domain: string; record_type: string (A|AAAA|CNAME|MX|NS|TXT) Example params: {'domain': 'example.com', 'record_type': 'A'}
  • domain_infoDomain WHOIS and DNS lookup.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Domain WHOIS and DNS lookup. Registrar, creation and expiry dates, nameservers, and full DNS records (A, AAAA, MX, NS, TXT, CNAME) for a domain. [$0.02/call]. Params — domain: string Example params: {'domain': 'example.com'}
  • geocodeGeocoding and reverse geocoding.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Geocoding and reverse geocoding. Converts an address or place name to latitude/longitude, or coordinates back to an address. [$0.01/call]. Params — q: address (forward geocode); lat: latitude (reverse geocode); lon: longitude (reverse geocode); maxItems: integer Example params: {'q': '1600 Amphitheatre Parkway, Mountain View, CA'}
  • githubGitHub data.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    GitHub data. Repository stats, user profiles, and code-search results (stars, forks, language, topics, issues) via the GitHub REST API. [$0.02/call]. Params — mode: what to fetch (repo|search|user); repos: comma list of owner/name (mode=repo); q: search query (mode=search); usernames: comma list (mode=user); maxItems: integer Example params: {'mode': 'repo', 'repos': 'microsoft/vscode'}
  • hackernewsHacker News feed.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Hacker News feed. Top, new, and best front-page stories plus full-text story search — titles, scores, comment counts, and author for tech and startup news. [$0.01/call]. Params — mode: string (search|top|new|best); q: query (mode=search); maxItems: integer Example params: {'mode': 'search', 'q': 'ai agents'}
  • interest_by_regionGoogle Trends interest by region for a keyword.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Google Trends interest by region for a keyword. Returns the subregional breakdown of Google Trends search interest inside a country - by state, province, or region - each ranked 0-100 relative to the strongest region. For regional demand mapping, geo targeting, and finding where a keyword over-indexes before spending on it. [$0.03/call]. Params — keyword: the search term; geo: ISO-3166 alpha-2 country code, e.g. US, GB, DE, JP (213 countries supported); timeframe: time window. Each response reports its own bucket size in `granularity`: past_30_days and past_90_days return a daily series, past_12_months and past_5_years weekly, windows under a day hourly (2004_present|past_12_months|past_30_days|past_4_hours|past_5_years|past_7_days|past_90_days|past_day|past_hour) Example params: {'keyword': 'bitcoin', 'geo': 'US'}
  • lit_reviewLiterature review map in one call.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Literature review map in one call. Give a seed paper (DOI, arXiv id, OpenAlex id, or PMID) or a topic query and get one structured result: the seed's references, its cited-by list (most-cited first), and semantically related work, deduplicated into one uniform table with title, authors, year, venue, DOI, and citation count. Collapses search, citation lookup, and related-paper discovery into a single call. Keyless. [$0.08/call]. Params — q: topic query (seed = top hit); use this OR id/doi; id: seed paper: arXiv id, DOI, OpenAlex id, or PMID; doi: alias for id (DOI form); maxItems: max nodes per section (1-25) Example params: {'doi': '10.48550/arXiv.1706.03762', 'maxItems': 10}
  • paper_detailsCitation lookup and reference list for a paper.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Citation lookup and reference list for a paper. Given a DOI, arXiv id, OpenAlex id, or PMID, returns its references (the works it cites) and its cited-by list (recent works that cite it), plus full metadata and citation count — for bibliography building and citation lookup. Keyless via OpenAlex and Semantic Scholar. [$0.03/call]. Params — id: arXiv id, DOI, OpenAlex id, or PMID; doi: alias for id (DOI form); ref_limit: max references (0-100); cite_limit: max citing works (0-100) Example params: {'doi': '10.48550/arXiv.1706.03762'}
  • paper_fulltextFull text and open-access PDF retrieval for a paper.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Full text and open-access PDF retrieval for a paper. Given an arXiv id, DOI, OpenAlex id, PMID, or PMCID, returns the readable body split into sections (introduction, methods, results) plus the open-access PDF location: arXiv via ar5iv, biomedical via Europe PMC, OA locations via OpenAlex for the rest. The 'now read it' call after a paper search. Keyless. [$0.04/call]. Params — id: arXiv id, DOI, OpenAlex id, PMID, or PMCID; doi: alias for id (DOI form) Example params: {'id': '1706.03762'}
  • papersAcademic and scientific paper search API.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Academic and scientific paper search API. Search research papers and scholarly literature across arXiv, PubMed, OpenAlex, Crossref, and Semantic Scholar in one call, deduplicated into a ranked result set: title, authors, year, venue, abstract, citation count, DOI, and direct PDF link. Query by keyword or restrict to one source; filter by year range; sort by relevance, recency, or citations. Keyless. [$0.02/call]. Params — q: search query / keywords; source: string (all|arxiv|pubmed|openalex|crossref|semanticscholar); maxItems: 1-50; year_from: earliest publication year (inclusive); year_to: latest publication year (inclusive); sort: string (relevance|recency|citations) Example params: {'q': 'transformer attention', 'source': 'all', 'maxItems': 10, 'sort': 'citations'}
  • scrapeScrape any web page to clean markdown.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Scrape any web page to clean markdown. A keyless web scraper that converts a single URL into LLM-ready markdown plus structured metadata (title, headings, links, word count), so an agent can read a page without running a browser. A per-call alternative to Firecrawl's scrape endpoint, with no API key and no account. Single page per call, not a site crawler. [$0.03/call]. Params — url: page URL to scrape; maxChars: markdown cap Example params: {'url': 'https://example.com'}
  • sec_edgarSEC filings full-text search.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    SEC filings full-text search. Searches SEC EDGAR filings - 10-K, 10-Q, 8-K, and every other form type - by keyword, company name, ticker, or CIK, with date-range filtering, returning company, form type, filing date, accession number, and a direct document link. For SEC filings research and disclosure monitoring. Keyless. [$0.05/call]. Params — q: full-text query; company: entity name; cik: SEC CIK; type: form type, e.g. 10-K|10-Q|8-K; dateRange: YYYY-MM-DD..YYYY-MM-DD; maxItems: integer Example params: {'q': 'artificial intelligence', 'type': '10-K'}
  • serpWeb search results (SERP).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Web search results (SERP). Keyless web search returning ranked title, URL, and snippet for a query — with locale/region targeting, freshness filters (past day, week, month, year), pagination, a news mode that adds publish date and source, and selectable backend engine (auto rotation, or pin Brave, Yahoo, or Yandex). [$0.05/call]. Params — q: search query; num_results: max results, cap 25; region: locale, e.g. us-en, uk-en, de-de; timelimit: restrict to past day/week/month/year (d|w|m|y); safesearch: string (on|moderate|off); page: result page (pagination); mode: web results or recent news (news adds date+source per item). the news index is narrow, so a long or highly specific news query that matches nothing falls through to web rather than returning empty; those items carry requestedMode=news and servedBy=web (web|news); engine: search backend: auto (recommended - rotates engines and falls back on blocks) or pin one of yahoo, yandex (web mode); news mode supports bing. when set, each result carries an 'engine' field; if the pinned engine returns nothing, auto serves instead and results also carry 'requestedEngine' Example params: {'q': 'best python web scraping library', 'num_results': 10}
  • serp_batchBulk web search: up to 5 search queries in a single call, each returning ranked title, URL, and snippet, with the same locale, freshness, and news filters as the single-query web s…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Bulk web search: up to 5 search queries in a single call, each returning ranked title, URL, and snippet, with the same locale, freshness, and news filters as the single-query web search. One paid call instead of five for research fan-out. [$0.10/call]. Params — queries: up to 5 search queries separated by '|'; num_results: max results per query, cap 25; region: locale, e.g. us-en, uk-en, de-de; timelimit: restrict to past day/week/month/year (d|w|m|y); safesearch: string (on|moderate|off); mode: string (web|news); engine: search backend: auto (recommended) or yahoo/yandex (web); bing (news) Example params: {'queries': 'python asyncio tutorial|rust tokio tutorial'}
  • serp_multiMulti-engine web search (metasearch).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Multi-engine web search (metasearch). One search query fanned out across 2-3 search engines (Brave, Yahoo, Yandex) with results deduplicated by URL and merged by reciprocal-rank fusion: consensus ranking across engines instead of one engine's bias, with per-engine rank attribution on every result. [$0.05/call]. Params — q: search query; engines: comma list of 2-3 engines: yahoo, yandex (web mode). news mode has a single live engine (bing), so multi-engine is web-only; num_results: max results per engine, cap 25; region: locale, e.g. us-en, uk-en, de-de; timelimit: restrict to past day/week/month/year (d|w|m|y); safesearch: string (on|moderate|off); mode: string (web|news) Example params: {'q': 'best vector database 2026', 'engines': 'yahoo,yandex'}
  • trendGoogle Trends interest over time for a keyword.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Google Trends interest over time for a keyword. Returns Google Trends search interest as a dated series indexed 0-100: weekly points across the default past 12 months, daily points for 30- and 90-day windows, and windows from the past hour back to 2004, with optional country targeting. For keyword trend analysis, search demand seasonality, and SEO keyword research. [$0.05/call]. Params — keyword: the search term to chart; geo: ISO-3166 alpha-2 country code, e.g. US, GB, DE, JP (213 countries supported); omit for worldwide; timeframe: time window. Each response reports its own bucket size in `granularity`: past_30_days and past_90_days return a daily series, past_12_months and past_5_years weekly, windows under a day hourly (2004_present|past_12_months|past_30_days|past_4_hours|past_5_years|past_7_days|past_90_days|past_day|past_hour) Example params: {'keyword': 'bitcoin', 'geo': 'US'}
Only reads 3Claude Code: allow
  • serp_readWeb search plus page reading in one call: answer with sources.No findings

    Why it is in this group

    • The name "serp_read" says "read": a word for reading.
    Description, as the server wrote it
    Web search plus page reading in one call: answer with sources. Runs a web search, scrapes the top results, and returns the ranked search results together with each page's content as clean LLM-ready markdown, so an agent gets the SERP AND the underlying text without a second round of scrape calls. Per-page fetch errors are reported honestly per URL. [$0.08/call]. Params — q: search query; fetch_top: how many top results to fetch and extract, cap 5; maxChars: max markdown chars per fetched page; num_results: ranked results to return, cap 25; region: locale, e.g. us-en, uk-en, de-de; timelimit: restrict to past day/week/month/year (d|w|m|y); safesearch: string (on|moderate|off); mode: string (web|news); engine: search backend: auto (recommended) or yahoo/yandex (web); bing (news) Example params: {'q': 'how does x402 payment protocol work', 'fetch_top': 3}

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http web-search-data-api https://api.kadec0.xyz/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__web-search-data-api__serp_read",
      "mcp__web-search-data-api__related_queries",
      "mcp__web-search-data-api__author_search"
    ],
    "ask": [
      "mcp__web-search-data-api__serp",
      "mcp__web-search-data-api__serp_batch",
      "mcp__web-search-data-api__serp_multi",
      "mcp__web-search-data-api__scrape",
      "mcp__web-search-data-api__trend",
      "mcp__web-search-data-api__interest_by_region",
      "mcp__web-search-data-api__related_topics",
      "mcp__web-search-data-api__geocode",
      "mcp__web-search-data-api__domain_info",
      "mcp__web-search-data-api__dns_propagation",
      "mcp__web-search-data-api__github",
      "mcp__web-search-data-api__hackernews",
      "mcp__web-search-data-api__sec_edgar",
      "mcp__web-search-data-api__congress_trades",
      "mcp__web-search-data-api__cve",
      "mcp__web-search-data-api__papers",
      "mcp__web-search-data-api__paper_details",
      "mcp__web-search-data-api__related_papers",
      "mcp__web-search-data-api__paper_fulltext",
      "mcp__web-search-data-api__lit_review"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as web-search-data-api. Review it before you use it.