MCP HeartbeatTHE MCP OBSERVATORY
Public workspace

Explore

Evidence for your next connection.

Independent measurements of remote MCP servers. Every observation has a timestamp.

Read-only probes

MCP server · Data access / search

PublicWWW

Search the source code (HTML, JavaScript, CSS) of web pages.

Checks passed
15 / 22

0 failed · 7 not measured

Median response
119 ms

Median of successful probes over 7 days

30-day uptime
Not measured

Share of countable probes over 30 days, including daily rollups. Auth challenges are excluded.

Discovered tools
11

Tool definitions returned by this server

Independent monitoring

Health & checks

Status history

Responded

The server completed its last measured handshake. This is an observation, not a guarantee.

Last checked
Check summary by test group
Test areaPassedFailedUnmeasured
ConnectionCan a client connect and discover tools?
500
Reliability & speedDoes it respond consistently and quickly?
103
Access & authenticationWhat is required to use this server?
102
Tool qualityAre the tool definitions usable by an agent?
400
Publisher identityCan the publisher be traced to its source?
402

Unmeasured means there is not enough evidence to decide. How these checks work

Inspect individual checks 22 recorded

Core

  • Pass
    Reachable

    Latest probe returned HTTP 200 in 127 ms.

  • Pass
    Valid handshake

    protocolVersion 2025-11-25, serverInfo.name publicwww.

  • Pass
    Lists tools

    tools/list returned 11 tools.

  • Pass
    Current protocol

    Negotiated 2025-11-25. The bar is 2025-06-18 or newer.

  • Pass
    HTTPS

    The endpoint URL is https.

Performance

  • Not measured
    Fast (p50)

    Median latency 119 ms over 2 samples in 7 days. The bar is 1000 ms. Need at least 5 samples.

  • Not measured
    Consistent (p95)

    95th percentile 126 ms over 2 samples in 7 days. The bar is 3000 ms. Need at least 20 samples.

  • Not measured
    Reliable (uptime)

    2 of 2 attempts returned a tool list in 30 days (100%). The bar is 99%. Need at least 30 samples.

  • Pass
    Stable tool list

    No tool was removed and no required parameter was added in the last 30 days.

Access

  • Pass
    Open access

    tools/list succeeded with no credential, and the record declares none.

  • Not measured
    Standard auth

    Auth is not required, so the OAuth metadata check does not apply.

  • Not measured
    Free tier cited

    No publisher quote has been checked.

Tools

  • Pass
    Tools described

    Every tool description is at least 20 characters.

  • Pass
    Valid input schemas

    Every inputSchema is a JSON Schema object.

  • Pass
    Parameters documented

    24 of 27 parameters have a description (89%). The bar is 80%.

  • Pass
    Safety hints

    Every tool sets readOnlyHint or destructiveHint.

Publisher

  • Pass
    Verified namespace

    Listed in the Official MCP Registry.

  • Pass
    Website matches publisher

    The website host matches the reverse-domain namespace.

  • Pass
    Source repo linked

    A repository URL is on file.

  • Not measured
    Repo owner matches

    This namespace is not an io.github login, so the owner comparison does not apply.

  • Pass
    Recently updated

    Updated 2026-11-07T02:22:38.625383Z, within 180 days.

  • Not measured
    Open-source licence

    The GitHub licence lookup has not returned an OSI result yet.

Start using PublicWWW

Connect to this server

Choose your client, copy the configuration, then enable the server in your client’s MCP settings.

Run this command in your terminal, then restart Claude Code.

Claude Code

claude mcp add --transport http publicwww https://api.publicwww.com/mcp

Capabilities

Tools 11

account

The account behind the token: the current time (now, UTC), plan, searches used today and left, rate limit, result limits. Spends nothing. In clusters, max is how many clusters the account can keep and max_size how many websites one can hold.

Discovered
build_signatures

Find signatures that lead to more websites like the ones in a cluster: their common platform, theme, plugin, tracker, network or owner. Each result is a ready search - pass its search (the query in double quotes) to the search tool to find more such websites. Best on a cluster made by one search or of one network; a mixed cluster may give none. Sorted best first; take the one with the highest in_cluster - how many of the websites looked at have the code (coverage: "4 of 5", in_all: every one of them), websites - rough count in the whole index (null when rarer than websites_max; the search gives the exact number), technology - its name when the code belongs to a technology we know. Spends nothing.

Discovered
combine_clusters

A new cluster from existing ones: 'and' - domains in every cluster, 'or' - in any of them, 'diff' - the first cluster minus the second (exactly two, order matters): clusters [7, 3] keeps the domains of 7 that are not in 3. Spends nothing.

Discovered
create_cluster

Save a list of websites as a cluster, to extract data from them or combine with other clusters. From a search: pass 'query' (PublicWWW syntax, as in the search tool) - the cluster takes the results up to the plan's limit, and it costs one search. With like: that is the plan's maximum, so pass limit. From a list: pass 'domains' - names or urls; only sites in the index are kept (a www. name missing from the index is looked up without the www), nothing is spent; if none is in the index, no cluster is created. 'dropped' in the answer counts what was left out: not_a_domain, duplicate, not_in_index, over_limit. The plan caps the size of a cluster. To keep only some of a cluster's sites, make a new one from those domains: it costs nothing.

Discovered
delete_cluster

Delete a cluster for good. It cannot be undone - confirm with the user first.

Discovered
extract_from_cluster

Pull values out of the page source of every website in a cluster: contacts, social profiles, analytics and tag ids, anything a regular expression can match. Easiest: name ready-made presets - email (email addresses from mailto: links), phone (phone numbers from tel: links and schema.org telephone), whatsapp (WhatsApp numbers (wa.me and click-to-chat links)), telegram (Telegram usernames (t.me and tg:// links)), viber (Viber numbers (viber:// links)), line (LINE account links (line.me)), facebook (facebook.com page links), instagram (instagram.com profile links), x (x.com and twitter.com profile links), linkedin (linkedin.com personal and company profile links), youtube (youtube.com channel links and video links (youtu.be, embed)), tiktok (tiktok.com profile links), pinterest (pinterest profile links), threads (threads profile links), bluesky (bsky.app profile links), discord (Discord server invite links), github (github.com user and organization profile links), google_play (Google Play app ids (package names)), app_store (App Store app ids). Or write regex: PCRE in slashes, the first capture group is the value (with no group, the whole match), e.g. /data-site-id="([0-9]+)"/i. Up to 10 expressions, one column each. Works through the cluster in parts of up to 100 domains: call again with offset = next_offset until it is null. Costs extraction points: each website found in the index costs as many points as values found, 0.1 if none; the account tool shows the daily allowance. It reads every indexed page of a website, not only the home page. Every call is paid for, a repeat of the same websites too: keep the answer and go on from next_offset. The REST API gives the same as a file (format=csv). A worked example, from a niche to contacts: the read_docs page clusters/example-contacts.

Discovered
get_cluster

A page of the domains in one cluster. Spends nothing.

Discovered
list_clusters

The account's clusters - saved lists of websites - newest first: id, name, number of domains, creation time. An account keeps at most 100. Spends nothing.

Discovered
read_docs

PublicWWW's own documentation and price list, in Markdown: query syntax and operators, websites about a topic (like:), regular expressions (snipexp:), country domains, ready-made example queries, clusters and extraction, the REST API, this MCP server, site languages, plans and prices with what each plan opens. Without page or pages - the table of contents, every page with the headings inside it. Read every page that may matter at once: several ids in pages. Use it for any question about how PublicWWW works or what it costs. Spends nothing.

Discovered
rename_cluster

Give a cluster a new name. Spends nothing.

Discovered
search

Find websites whose page source (HTML, JavaScript, CSS) contains a string: a library name, a script url, a tracking or widget id, a meta tag, any code fragment. Results are ranked by site popularity. Look a technology up by its ready-made query on the examples pages (read_docs: the Technologies pages listed in its table of contents), not by its name. Query syntax: quote an exact phrase ("angular.min.js"); several words must all appear; a leading minus excludes a word (-wordpress); | means OR; site:de limits to a top-level domain, site:example.com lists the pages of one site, -site:com or -site:example.com leaves them out; depth:all searches inner pages too (by default only home pages, one per site) - then total counts pages, and sites counts the distinct websites among them (a lower bound when sites_exact is false; without depth: there is no sites). Websites about a topic or like a given one, most similar first instead of by popularity: like:"a few words" - websites about that topic, in any language, by meaning rather than the exact words (site:de keeps only that domain zone); like:example.com - websites about the same thing as that one (it compares home pages: when a shop or landing page has too little text there, the search finds nothing - describe the topic in words instead); with words, like: orders their results. like: is the topic of a site, not its code: websites that share code with given ones are found by build_signatures on a cluster of them. With like:, total counts everything the filters let through: read the first rows rather than total. rank is the place by popularity, 1 being the most popular, an estimate with no guarantees. More operators are in read_docs. Searches count against the account's daily allowance. At most 10 calls a minute of search and the cluster tools, shared with the REST API; account and read_docs do not count. On too_many_requests wait retry_after seconds. Ask for a small number of rows first.

Discovered

Recent measurements

Probe history

View status
Latest stored probes. Raw probe rows are kept for 14 days.
CheckedResultResponseTools
Connected127 ms11
Connected110 ms11