Public MCP server

Three read-only tools, no account and no key, ten requests a minute per IP.

A second MCP server with no account, no key and no sign-up.

  • Endpoint POST https://domduck.com/api/mcp/public
  • Authentication none
  • Rate limit 10 requests a minute, per IP
  • Server name domduck-public, so a client with both connected can tell them apart
claude mcp add --transport http domduck-public https://domduck.com/api/mcp/public
{
  "mcpServers": {
    "domduck-public": {
      "type": "http",
      "url": "https://domduck.com/api/mcp/public"
    }
  }
}

What it reads, and what it will not do

This server answers from what Domduck has already collected. It never fetches a domain on demand. A domain nobody has ever looked up returns hasReading: false, and that is a real answer rather than an error: it says nobody has looked, not that the domain does not exist.

That single rule is why the tier can exist. It also means:

  • One domain per call. There is no bulk argument and no bulk tool.
  • No history. The dated series is the product and it cannot be backfilled by anyone who did not collect it.
  • No list tool, no search tool, no ranking. You have to know the name already.

A free Domduck account adds the history, unlimited tracked domains with a daily re-read of every source, tags, alerts, the write tools, and 240 requests a minute instead of 10.

Tools

ToolWritesWhat it does
[lookup_domain](#lookup-domain)noPublic reputation snapshot for one domain from Domduck's store: Domain Rating, Tranco rank, OpenPageRank, registration date, TLS certificate state and AI crawler policy.
[get_ai_crawler_policy](#get-ai-crawler-policy)noWhich of the eight tracked AI crawlers a domain's robots.txt admits, and whether it publishes an llms.txt.
[list_sources](#list-sources)noWhat Domduck reads and what each source means, including the eight AI crawlers whose robots.txt policy is tracked.

A worked call

curl -s https://domduck.com/api/mcp/public \
  -H "content-type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
       "params":{"name":"get_ai_crawler_policy","arguments":{"domain":"stripe.com"}}}'

lookup_domain

Public reputation snapshot for one domain from Domduck's store: Domain Rating, Tranco rank, OpenPageRank, registration date, TLS certificate state and AI crawler policy. Returns hasReading false for a domain nobody has looked up yet, which is a real answer and not an error. One domain per call, and no history: the dated series is what a Domduck account is for.

ArgumentTypeRequiredNotes
domainstringyesA domain name. Scheme, www and trailing dots are stripped.

get_ai_crawler_policy

Which of the eight tracked AI crawlers a domain's robots.txt admits, and whether it publishes an llms.txt. Three states per agent: allowed, disallowed, unspecified. Unspecified is NOT allowed, because a catch-all Disallow blocks an agent the file never names, so read effective for what is in force. Reads the last stored reading; it does not fetch the file.

ArgumentTypeRequiredNotes
domainstringyesA domain name. Scheme, www and trailing dots are stripped.

list_sources

What Domduck reads and what each source means, including the eight AI crawlers whose robots.txt policy is tracked. A constant. Read it first: it is what lets a model interpret lookup_domain without guessing at field names or at which direction is better. Takes no arguments.