protogrid

Search / com.snoopscan/snoopscan

SnoopScan

R1· needs a key

Web scraping for agents: scrape, crawl, map, search and extract pages as clean markdown or JSON.

v1.0.0 · active · repository · website · descriptor JSON · versions

An agent can connect on its own if it already holds SNOOPSCAN_TOKEN.Remote endpoint behind a static API key or header. The registry never sees the value; the agent fills the placeholder.
Quality76good
Trust100of 100
Uptime, 30 days100%
Latency p50471 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "snoopscan": {
      "type": "http",
      "url": "https://api.snoopscan.com/mcp",
      "headers": {
        "Authorization": "Bearer ${SNOOPSCAN_TOKEN}"
      }
    }
  }
}
claude mcp add --transport http snoopscan https://api.snoopscan.com/mcp --header "Authorization: Bearer ${SNOOPSCAN_TOKEN}"
[mcp_servers.snoopscan]
url = "https://api.snoopscan.com/mcp"
bearer_token_env_var = "SNOOPSCAN_TOKEN"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "snoopscan": {
      "type": "remote",
      "url": "https://api.snoopscan.com/mcp",
      "enabled": true,
      "headers": {
        "Authorization": "Bearer {env:SNOOPSCAN_TOKEN}"
      }
    }
  }
}
{
  "mcpServers": {
    "snoopscan": {
      "type": "http",
      "url": "https://api.snoopscan.com/mcp",
      "headers": {
        "Authorization": "Bearer ${SNOOPSCAN_TOKEN}"
      }
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=snoopscan&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vYXBpLnNub29wc2Nhbi5jb20vbWNwIiwiaGVhZGVycyI6eyJBdXRob3JpemF0aW9uIjoiQmVhcmVyICR7U05PT1BTQ0FOX1RPS0VOfSJ9fQ%3D%3D"
}
{
  "servers": {
    "snoopscan": {
      "type": "http",
      "url": "https://api.snoopscan.com/mcp",
      "headers": {
        "Authorization": "Bearer ${SNOOPSCAN_TOKEN}"
      }
    }
  }
}
{
  "mcpServers": {
    "snoopscan": {
      "httpUrl": "https://api.snoopscan.com/mcp",
      "headers": {
        "Authorization": "Bearer ${SNOOPSCAN_TOKEN}"
      }
    }
  }
}
extensions:
  "snoopscan":
    enabled: true
    name: "snoopscan"
    type: streamable_http
    uri: "https://api.snoopscan.com/mcp"
    headers:
      "Authorization": "Bearer ${SNOOPSCAN_TOKEN}"
    timeout: 300

Placeholders to fill from your own secret store: ${SNOOPSCAN_TOKEN}. The registry never accepts secret values.

Quality 76 / 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
authorization83 · weight 15
  • pass
    auth.prmProtected Resource Metadata (RFC 9728) published
  • pass
    auth.as_metadataauthorization server metadata reachable
  • warn
    auth.cimdonly Dynamic Client Registration, deprecated in 2026-07-28 in favour of CIMD
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene100 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations34 of 34 tools declare readOnlyHint or destructiveHint
  • pass
    tools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
  • pass
    tools.token_costabout 6,760 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability25 · weight 15
  • warn
    stability.changes63 tool changes in 30 days
  • fail
    stability.rug_pull1 tools kept their name but changed most of their description in 30 days; review before trusting them
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

34 tools, about 6,760 tokens to load them all · tool set 41618775a4b0 · tools last changed 2026-10-19 · checked 2026-10-19 10:52 UTC

Tool changes

  • testMentionschangeddescription, input schema
    before

    Run keywords against the sources now and list what they find from the last 7 days, where a source allows. Nothing is saved. Give `keywords` to try before creating a watch, or `watchId` to run a saved one. Each answered source query is recorded on the account's usage. Needs a free SnoopScan key.

    after · 71% of words in common

    Run keywords against the sources now and list what they find from the last 7 days, where a source allows. Nothing is saved. Sources: reddit, hackernews, bluesky, youtube, threads, web (blogs, forums and news), github (issues and pull requests) and feeds (the RSS or Atom addresses in `feeds`). Give `keywords` to try before creating a watch, or `watchId` to run a saved one. Each answered source query is recorded on the account's usage. Needs a free SnoopScan key.

  • watchMentionschangeddescription, input schema
    before

    Create a watch that looks for keywords on Reddit, Hacker News, Bluesky, YouTube and Threads on a schedule, and sorts each find into bug report, complaint, question, buying intent, praise or competitor. Give `name` and `keywords` to create one, or `watchId` plus the fields to change. `competitors` are extra keywords filed as competitor mentions; `exclude` removes posts containing those words; `platforms` limits the sources; `intervalMinutes` is 5 to 10,080 (default 15). Each answered source query is recorded on the account's usage. Read results with `listMentions`; try keywords first with `testMentions`. Needs a free SnoopScan key.

    after · 85% of words in common

    Create a watch that looks for keywords on Reddit, Hacker News, Bluesky, YouTube, Threads, the web and news, GitHub and RSS or Atom feeds on a schedule, and sorts each find into bug report, complaint, question, buying intent, praise or competitor. Give `name` and `keywords` to create one, or `watchId` plus the fields to change. `competitors` are extra keywords filed as competitor mentions; `exclude` removes posts containing those words; `platforms` limits the sources (reddit, hackernews, bluesky, youtube, threads, web, github, feeds; default all); `feeds` are up to 10 feed addresses the feeds source reads for new entries that name a keyword; `intervalMinutes` is 5 to 10,080 (default 15). Each answered source query is recorded on the account's usage. Read results with `listMentions`; try keywords first with `testMentions`. Needs a free SnoopScan key.

  • markMentionadded

    Set a mention's status to new, seen, irrelevant or done. Needs a free SnoopScan key.

  • testMentionsadded

    Run keywords against the sources now and list what they find from the last 7 days, where a source allows. Nothing is saved. Give `keywords` to try before creating a watch, or `watchId` to run a saved one. Each answered source query is recorded on the account's usage. Needs a free SnoopScan key.

  • listMentionsadded

    List the mentions this account's watches have found, newest first, each with its category and the phrase that decided it. Filter by `watchId`, `category` (bug_report, complaint, question, buying_intent, praise, competitor, other), `platform` or `status` (new, seen, irrelevant, done). With no `watchId` the account's watches are listed first. Needs a free SnoopScan key.

  • watchMentionsadded

    Create a watch that looks for keywords on Reddit, Hacker News, Bluesky, YouTube and Threads on a schedule, and sorts each find into bug report, complaint, question, buying intent, praise or competitor. Give `name` and `keywords` to create one, or `watchId` plus the fields to change. `competitors` are extra keywords filed as competitor mentions; `exclude` removes posts containing those words; `platforms` limits the sources; `intervalMinutes` is 5 to 10,080 (default 15). Each answered source query is recorded on the account's usage. Read results with `listMentions`; try keywords first with `testMentions`. Needs a free SnoopScan key.

  • socialadded

    Structured data from a social platform: profiles, posts, videos, comments, transcripts and search, as named fields rather than a page. Example: platform "youtube", endpoint "transcript", params {"id": "dQw4w9WgXcQ"}. Call `socialEndpoints` for the full list and each endpoint's inputs. Only public data, as a signed-out visitor sees it. Billed per call, and nothing when no data comes back. Needs a free SnoopScan key.

  • socialEndpointsadded

    List the social endpoints `social` can call: platform, name, what it returns, its inputs and its price. Platforms include YouTube, TikTok, Instagram, X, LinkedIn, Facebook, Threads and Pinterest. Free. Needs a free SnoopScan key.

  • parsechangeddescription
    before

    Read a document at a URL, such as a PDF, and return its text as markdown. Use this for a link to a document rather than a web page. A URL that turns out to be an ordinary page is returned as that page. Billed per document page.

    after · 94% of words in common

    Read a document at a URL, such as a PDF, and return its text as markdown. Use this for a link to a document rather than a web page. A URL that turns out to be an ordinary page is returned as that page. Billed per 10 document pages.

  • googleSerpadded

    Read a Google results page for a search: who ranks, and what the AI Overview says and cites. Give your `domain` and the answer says where it ranks and whether the AI Overview cites it. `country` is a two-letter code such as `gb`. The AI Overview is read only where a paid results provider is set up; otherwise the answer is the classic organic list, up to 10 results, with a note saying so. Billed per search, and nothing when no results come back. Needs a free SnoopScan key.

Showing the latest 10. 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 100 / 100

provenance100
liveness100
freshness100
hygiene100

+repository +namespace-matches-repo +dns-namespace +website +reachable +uptime-100% +updated-24d-ago

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://api.snoopscan.com/mcp-oauth streamable-httpoauth2 AS: https://snoopscan.comyes100%471 ms–2026-10-19
https://api.snoopscan.com/mcp streamable-httpapi_key ${SNOOPSCAN_TOKEN}yes100%475 ms2025-11-252026-10-19

Tools (34)

batchScrapeScrape up to 50 pages as one background job. Returns a job id at once; follow it with `crawlStatus` and read the pages with `crawlPages`. Every page fetched is billed. For one page, use `scrape`. Needs a free SnoopScan key.
checkChangesCheck whether a page has changed since this account last recorded it. Fetches the page now and compares it with the latest version stored for the same URL; a changed page is stored as the new latest version. The first check of a URL reports it as new. With `includeDiff`, a changed page's current content is returned too. Needs a free SnoopScan key.
checkMonitorRun a monitor's check now and report which pages are new, changed, unchanged or failing. Billed like a scheduled check. Needs a free SnoopScan key.
companyread-onlyEverything a company's own website says about itself. Give it a company domain and get back its name, phone, address, LinkedIn, headcount, industry and founded year, plus the contact emails, social links and contact form the site publishes. Reads the homepage and a few contact/about pages, nothing behind a login. Profiles one company at a time. To find businesses by trade and place, use `findLeads`. Needs a free SnoopScan key.
crawlStart crawling a website. Runs in the background and returns a job id immediately. Follow it with `crawlStatus` and read the results with `crawlPages`. A crawl can take minutes, every page it fetches is billed, and `limit` caps how many pages it fetches. Needs a free SnoopScan key.
crawlPagesread-onlyRead the pages a crawl has collected, a few at a time. Returns a few pages per call, because a whole crawl is too large for one response; pass the returned `cursor` to read the next pages. Needs a free SnoopScan key.
crawlStatusread-onlyCheck the progress of a crawl. Returns counts and cost, never page bodies. Needs a free SnoopScan key.
domainread-onlyHow old a domain is, who registered it, where it is hosted, and who links to it. The off-page questions a page scrape cannot answer. Use it when a page looks fine and you need to know whether the SITE is old, established or linked to — comparing competitors, judging a source, or checking whether a domain was registered last week. Nothing here fetches the page, so nothing here can be blocked. Needs a free SnoopScan key.
domainReportread-onlyA buyer's report on a domain: key findings, concerns, and the questions nobody can answer from outside, each tied to its evidence. `depth` is `quick` (registration, DNS, today's site), `buyer` (adds the Internet Archive history, known backlinks and a re-read sample of linking pages) or `deep` (larger samples). Brand, SEO and acquisition are judged separately; there is no overall score. One flat price per depth; `buyer` includes 6 archived snapshots and `deep` 12. Needs a free SnoopScan key.
domainScreenread-onlyWhich of up to 500 domain names can be registered, from each registry's own record (RDAP) and DNS. Use it to cut a long list of candidate or dropping names down to a shortlist, then run domainReport on the few that matter. Nothing is fetched from the names' websites. Each name comes back `likely_available`, `registered`, `unknown` or `no_registry_record`, with the reason. 1 credit per name its registry answered for; invalid names, duplicates and unanswered names are free. Needs a free SnoopScan key.
domainSnapshotsread-onlyRead the archived homepage snapshots a `buyer` domainReport left pending. A buyer report answers at once with the Internet Archive's timeline and the snapshots already held; the rest are marked pending. Call this with the same domain (and optionally the pending years) to read them: what the site was about in each year, its language, and whether it was parked, for sale or redirecting. Free for the snapshots a buyer or deep report included; beyond those, charged only for snapshots actually fetched. Needs a free SnoopScan key.
extractread-onlyExtract structured data from one or more pages according to a JSON schema. The output is validated against the schema — if a page does not contain the required fields, that page returns an error rather than invented values. An error for a page means the required fields are not on it. Needs a free SnoopScan key.
fetchMoreread-onlyRead the remainder of a page that was truncated. Pass the token from a truncation marker. Returns the next section of the same page, truncating again if it is still too long. Needs a free SnoopScan key.
findContactsread-onlyFind contact information for a company website. Returns the contact page, any contact form and its vendor, published email addresses with where each was found, and social links. Needs a free SnoopScan key.
findLeadsFind businesses by what they do and where, with how to reach each one. `who` is the trade or kind of business ("roofing contractors", "dentists"), `where` is a town or area ("Houston, TX"); `country` is an ISO code such as GB, read from `where` when omitted. `contacts` adds the emails, socials and contact form each business publishes, and `roles` (e.g. ["Owner"]) adds a named person. `questions` (up to three, such as "offers commercial roofing") are answered from each business's own website, each with a quoted line and the page it is on. Runs in the background for 2 to 5 minutes: call `leadsStatus` with the job id to follow it and read the leads. Charged per lead delivered, never for what it cannot find. Needs a free SnoopScan key.
googleSerpread-onlyRead a Google results page for a search: who ranks, and what the AI Overview says and cites. Give your `domain` and the answer says where it ranks and whether the AI Overview cites it. `country` is a two-letter code such as `gb`. The AI Overview is read only where a paid results provider is set up; otherwise the answer is the classic organic list, up to 10 results, with a note saying so. Billed per search, and nothing when no results come back. Needs a free SnoopScan key.
hiringread-onlyWhat a company is currently recruiting for. Give it a company domain. It finds the careers page, identifies the applicant tracking system, and reads that system's public job feed, so it returns the listed roles rather than a careers page's empty markup. Not every company exposes a feed. When none is found it says so and names the careers page. "No feed found" does not mean the company is not hiring. Needs a free SnoopScan key.
leadsStatusread-onlyFollow a Find Leads run, and read its leads once it has finished. Returns the stage while it runs. When done, returns the leads 25 at a time: name, phone, email, website and address; call again with `offset` for the next 25. Needs a free SnoopScan key.
listMentionsread-onlyList the mentions this account's watches have found, newest first, each with its category and the phrase that decided it. Filter by `watchId`, `category` (bug_report, complaint, question, buying_intent, praise, competitor, other), `platform` or `status` (new, seen, irrelevant, done). With no `watchId` the account's watches are listed first. Needs a free SnoopScan key.
listMonitorsread-onlyList this account's page monitors with their schedule and when each last ran. Needs a free SnoopScan key.
listPostsread-onlyList a site's posts or articles from its own API or feed. WordPress, Substack, Squarespace and Discourse answer through their APIs; anything else through RSS or Atom. Titles, URLs and dates — use `scrape` on a URL to read one. Needs a free SnoopScan key.
listProductsread-onlyList every product a store publishes, from the store's own catalog. Works for Shopify and WooCommerce stores without a key: one request per page of up to 250 products, with title, price, availability, variants and the product URL. Needs a free SnoopScan key.
mapread-onlyList the URLs on a website without fetching page content. Use it to see a site's structure before choosing which pages to scrape. Needs a free SnoopScan key.
markMentionSet a mention's status to new, seen, irrelevant or done. Needs a free SnoopScan key.
parseread-onlyRead a document at a URL, such as a PDF, and return its text as markdown. Use this for a link to a document rather than a web page. A URL that turns out to be an ordinary page is returned as that page. Billed per 10 document pages.
peopleread-onlyFind the people at a company, by what they do and how senior they are. Give it a company and optionally a `role` and a `seniority`. It returns named people from public search results; it does not sign in anywhere or read profile pages. role: executive, engineering, product, sales, marketing, finance, procurement, talent, operations, data, security, legal, support, design seniority: exec, vp, director, manager, ic Each person says whether the employer was confirmed in the source text. For an unconfirmed person the company name did not appear beside them in the source, and a person marked former has left the company. Needs a free SnoopScan key.
scraperead-onlyFetch a single web page and return its content as clean markdown. Use this when you have a specific URL and need to read what is on it. For finding pages first, use `search` or `map`.
searchread-onlySearch the web and return each result's title, URL and snippet. With `fetchContent`, it also fetches each result's page and returns its content. That is slower, and each page fetched is billed.
searchPlacesread-onlySearch Google Maps the way a person would: "plumbers" in "Leeds". Returns each business with its category, address, rating and review count, and with `includeDetails` its phone number and website too. Up to 20 a call. For a whole list with emails, owners and several sources, use `findLeads`. Billed per results page and per detail fetched. Needs a free SnoopScan key.
socialread-onlyStructured data from a social platform: profiles, posts, videos, comments, transcripts and search, as named fields rather than a page. Example: platform "youtube", endpoint "transcript", params {"id": "dQw4w9WgXcQ"}. Call `socialEndpoints` for the full list and each endpoint's inputs. Only public data, as a signed-out visitor sees it. Billed per call, and nothing when no data comes back. Needs a free SnoopScan key.
socialEndpointsread-onlyList the social endpoints `social` can call: platform, name, what it returns, its inputs and its price. Platforms include YouTube, TikTok, Instagram, X, LinkedIn, Facebook, Threads and Pinterest. Free. Needs a free SnoopScan key.
testMentionsread-onlyRun keywords against the sources now and list what they find from the last 7 days, where a source allows. Nothing is saved. Sources: reddit, hackernews, bluesky, youtube, threads, web (blogs, forums and news), github (issues and pull requests) and feeds (the RSS or Atom addresses in `feeds`). Give `keywords` to try before creating a watch, or `watchId` to run a saved one. Each answered source query is recorded on the account's usage. Needs a free SnoopScan key.
watchMentionsCreate a watch that looks for keywords on Reddit, Hacker News, Bluesky, YouTube, Threads, the web and news, GitHub and RSS or Atom feeds on a schedule, and sorts each find into bug report, complaint, question, buying intent, praise or competitor. Give `name` and `keywords` to create one, or `watchId` plus the fields to change. `competitors` are extra keywords filed as competitor mentions; `exclude` removes posts containing those words; `platforms` limits the sources (reddit, hackernews, bluesky, youtube, threads, web, github, feeds; default all); `feeds` are up to 10 feed addresses the feeds source reads for new entries that name a keyword; `intervalMinutes` is 5 to 10,080 (default 15). Each answered source query is recorded on the account's usage. Read results with `listMentions`; try keywords first with `testMentions`. Needs a free SnoopScan key.
watchPagesStart a monitor that re-reads up to 50 pages on a schedule and records which are new, changed or failing. `intervalMinutes` is 5 to 10,080. Each check bills the pages it fetches. Read the latest result with `checkMonitor`; list yours with `listMonitors`. Needs a free SnoopScan key.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "com.snoopscan/snoopscan",
  "icons": [
    {
      "src": "https://snoopscan.com/brand/icon-v3-512.png",
      "sizes": [
        "512x512"
      ],
      "mimeType": "image/png"
    },
    {
      "src": "https://snoopscan.com/brand/icon-v3-192.png",
      "sizes": [
        "192x192"
      ],
      "mimeType": "image/png"
    }
  ],
  "title": "SnoopScan",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://api.snoopscan.com/mcp-oauth",
      "type": "streamable-http"
    },
    {
      "url": "https://api.snoopscan.com/mcp",
      "type": "streamable-http",
      "headers": [
        {
          "name": "Authorization",
          "isSecret": true,
          "isRequired": true,
          "description": "Bearer followed by your SnoopScan API key (snoopscan.com, free plan available)"
        }
      ]
    }
  ],
  "version": "1.0.0",
  "repository": {
    "url": "https://github.com/SnoopScan/snoopscan-core",
    "source": "github"
  },
  "websiteUrl": "https://snoopscan.com/docs/mcp",
  "description": "Web scraping for agents: scrape, crawl, map, search and extract pages as clean markdown or JSON."
}