protogrid

Search / tech.ratlabs/rat-radar

Rat Radar

R0· no sign-in

Ask before you scrape: is a site open, may I fetch this URL, and how do I extract a page. No key.

v1.4.0 · active · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality80good
Trust83of 100
Uptime, 30 days100%
Latency p50189 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "rat-radar": {
      "type": "http",
      "url": "https://rat-radar.github-a18.workers.dev/mcp"
    }
  }
}
claude mcp add --transport http rat-radar https://rat-radar.github-a18.workers.dev/mcp
[mcp_servers.rat-radar]
url = "https://rat-radar.github-a18.workers.dev/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "rat-radar": {
      "type": "remote",
      "url": "https://rat-radar.github-a18.workers.dev/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "rat-radar": {
      "type": "http",
      "url": "https://rat-radar.github-a18.workers.dev/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=rat-radar&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vcmF0LXJhZGFyLmdpdGh1Yi1hMTgud29ya2Vycy5kZXYvbWNwIn0%3D"
}
{
  "servers": {
    "rat-radar": {
      "type": "http",
      "url": "https://rat-radar.github-a18.workers.dev/mcp"
    }
  }
}
{
  "mcpServers": {
    "rat-radar": {
      "httpUrl": "https://rat-radar.github-a18.workers.dev/mcp"
    }
  }
}
extensions:
  "rat-radar":
    enabled: true
    name: "rat-radar"
    type: streamable_http
    uri: "https://rat-radar.github-a18.workers.dev/mcp"
    timeout: 300

Quality 80 / 100good

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene75 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • fail
    tools.annotationsno tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: check_site (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); get_playbook (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); list_sites (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
  • pass
    tools.token_costabout 1,155 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
  • pass
    tools.hidden_textno hidden text in tool names, descriptions, schemas or annotations
stability100 · weight 15
  • pass
    stability.changes1 tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
  • pass
    stability.new_linksno tool change named a new site
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

8 tools, about 1,155 tokens to load them all · tool set 9a42b9b690aa · tools last changed 2026-11-01 · checked 2026-11-14 06:30 UTC

Tool changes

  • check_sitechangeddescription
    before

    Can I scrape this site, and how? Returns a verdict (open, guarded, hostile, blocked), a hostility score, a recommended approach with steps and risks, bot protections, robots.txt and AI-crawler policy, machine-readable surfaces (sitemap, llms.txt, JSON-LD), and eu_ai_training: the signals the EDPB draft Guidelines 03/2026 on web scraping for generative AI count against collecting personal data (robots.txt, ai.txt, CAPTCHAs, login walls), as none, some or strong. Signals, not legal advice. Uses a weekly-probed dataset of several hundred sites; for any other domain it probes live from a datacenter IP.

    after · 93% of words in common

    Can I scrape this site, and how? Returns a verdict (open, guarded, hostile, blocked), a hostility score, a recommended approach with steps and risks, bot protections, robots.txt and AI-crawler policy, machine-readable surfaces (sitemap, llms.txt, JSON-LD), and eu_ai_training: the signals the EDPB draft Guidelines 03/2026 on web scraping for generative AI count against collecting personal data (robots.txt blocks on AI training crawlers, a Content-Signal of ai-train=no, ai.txt, CAPTCHAs, login walls), as none, some or strong. Signals, not legal advice. Uses a weekly-probed dataset of several hundred sites; for any other domain it probes live from a datacenter IP.

Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 83 / 100

no-repository
provenance55
liveness100
freshness100
hygiene80

+dns-namespace +website +reachable +uptime-100% +updated-16d-ago -no-repository

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://rat-radar.github-a18.workers.dev/mcp streamable-httpnoneyes100%189 ms2025-11-252026-11-14

Tools (8)

can_fetchDoes robots.txt allow fetching this exact URL? Fetches the live robots.txt and applies the longest-match rule for a user agent (default: * plus GPTBot, ClaudeBot, Google-Extended, CCBot, PerplexityBot). Returns allowed or not, the rule that decided it, and any crawl delay. A courtesy check, not a legal opinion.
check_siteCan I scrape this site, and how? Returns a verdict (open, guarded, hostile, blocked), a hostility score, a recommended approach with steps and risks, bot protections, robots.txt and AI-crawler policy, machine-readable surfaces (sitemap, llms.txt, JSON-LD), and eu_ai_training: the signals the EDPB draft Guidelines 03/2026 on web scraping for generative AI count against collecting personal data (robots.txt blocks on AI training crawlers, a Content-Signal of ai-train=no, ai.txt, CAPTCHAs, login walls), as none, some or strong. Signals, not legal advice. Uses a weekly-probed dataset of several hundred sites; for any other domain it probes live from a datacenter IP.
get_playbookWhat should I build with this site, and how? Give a domain and, optionally, a goal in plain words (for example "price alerts", "sales leads", "new jobs", "change log", "knowledge base"). Returns the best-matching workflow for that site: what it does, its cadence, a trigger, collect, shape, store, act pipeline, the fields to keep, and step-by-step build recipes for n8n, Make, Zapier and Apify (or just one with platform). Workflows marked found_on_this_site come from what the weekly probe saw on the site itself. Also returns the other workflows, the golden data, and the guardrails.
list_sitesList the sites in the dataset, optionally by category or verdict. Use it to find easy targets or to see what is covered.
search_sitesFind sites in the dataset by a word: a name, host, category (jobs, shop, news, gov), country or verdict. Use it to discover what is covered before calling check_site.
summaryHeadline numbers across the dataset: verdict mix, how many sites block AI crawlers (and which), protection vendors, by category and country.
xray_diagramDraw a page's anatomy as an Excalidraw diagram: its regions, the ranked ways to get its data, proof rows, the best route and what the page is made of. Returns a download link for the .excalidraw file (give it to the user; it opens at excalidraw.com or in Obsidian) and a file_name. With include_scene, also the scene itself (a few hundred KB).
xray_pageHow do I extract the data from THIS page? Fetches one public page and returns a ranked extraction plan: embedded JSON, JSON-LD, repeated records with CSS selectors and field names, tables, feeds, hidden API calls. Each source has a reliability, proof rows pulled from the real page, and the plan notes pagination and blockers. Set include_code for a starter Python script. Works on the raw HTML only, so JavaScript-built pages report a blocker instead of data. Use check_site first to learn whether the site allows scraping at all.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "tech.ratlabs/rat-radar",
  "icons": [
    {
      "src": "https://ratlabs.tech/radar/assets/icons/icon-192.png",
      "sizes": [
        "192x192"
      ],
      "mimeType": "image/png"
    }
  ],
  "title": "Rat Radar",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://rat-radar.github-a18.workers.dev/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "1.4.0",
  "websiteUrl": "https://ratlabs.tech/radar/",
  "description": "Ask before you scrape: is a site open, may I fetch this URL, and how do I extract a page. No key."
}