mcpField
D
domaintrack

domaintrack

Local
github.com/CloudCorpRecordsSecurity0Updated 1w ago

About domaintrack

domaintrack is a forwarding client for Domduck’s public domain data, intended for domain reputation and crawler-policy lookups. It provides three tools, serves their list locally, and relays calls to the keyless public endpoint; domains without a stored reading are reported as such.

Key features

  1. 01Domain reputation snapshots
  2. 02AI crawler policy from robots.txt
  3. 03llms.txt publication status
  4. 04Catalogue of data sources

Use cases

  1. 01Check a domain’s stored reputation
  2. 02Review rules for tracked AI crawlers
  3. 03See whether a domain publishes llms.txt
  4. 04Interpret fields using the source catalogue

MCP support

Exposes three tools to MCP clients and forwards tool calls to Domduck’s public endpoint over a Streamable HTTP session. The tool list is served locally; no credentials are sent.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"cloudcorprecords-domaintrack": {
"command": "npx",
"args": [
"-y",
"@reneturcios/domaintrack"
]
}
}
}
Run commandnpx -y @reneturcios/domaintrack

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@reneturcios/domaintrack0.1.0
ocighcr.io/cloudcorprecords/domaintrack:0.1.0

Tools

3

Saved tool list · updated 1w ago

ParameterTypeRequiredDescription
domainstringYesA domain name. Scheme, www and trailing dots are stripped.

Details

From the project README

domaintrack

domaintrack looks up what is publicly known about a domain: its reputation snapshot, the AI crawler policy its robots.txt sets, and the list of data sources those answers are built from.

It is a forwarding client, not a data store. The answers live in Domduck's public store and are served by its keyless public endpoint; this package carries the endpoint's three-tool surface, serves the tool list locally, and forwards each call upstream, returning the upstream answer exactly as it arrives. There is no account and no API key: the public endpoint is the whole surface. Domduck's authenticated endpoint, with its dated history series, is separate and is not touched here — this client sends no credentials of any kind.

One behaviour is worth knowing before you automate against it: asking about a domain nobody has looked up yet is not an error. The snapshot comes back with hasReading set to false, which is the store honestly saying it holds no reading for that name yet.

Tools

  • lookup_domain — the stored reputation snapshot for one domain: Domain Rating, Tranco rank, OpenPageRank, registration date, TLS certificate state and AI crawler policy. Requires domain.
  • get_ai_crawler_policy — for each of the eight tracked AI crawlers, whether the domain's robots.txt allows it, blocks it, or never mentions it, plus whether an llms.txt is published. Requires domain.
  • list_sources — the catalogue of sources behind the other two tools and what each one means. No arguments; read it first if a snapshot field is unfamiliar.

CLI

npx @reneturcios/domaintrack lookup_domain '{"domain":"example.com"}'
npx @reneturcios/domaintrack get_ai_crawler_policy '{"domain":"example.com"}'
npx @reneturcios/domaintrack list_sources
npx @reneturcios/domaintrack --version

Each tool subcommand forwards one call and prints the result content as JSON. Exit codes: 0 on success, 1 when the upstream call comes back as an error result, 2 on a usage error (unknown subcommand, malformed JSON argument).

MCP server

npx @reneturcios/domaintrack mcp

MCP client configuration:

{
  "mcpServers": {
    "domaintrack": {
      "command": "npx",
      "args": ["-y", "@reneturcios/domaintrack", "mcp"]
    }
  }
}

The server answers tools/list itself and forwards every tools/call to the public endpoint over a Streamable HTTP session (initialize, then notifications/initialized, then the call), reusing the session — and its Mcp-Session-Id, when the endpoint issues one — for the life of the process.

Failures on the wire are reported in this package's own words, as a text result starting with domaintrack error: — a JSON-RPC error from upstream, a non-2xx HTTP status, an unparseable response body, or a failed request each map to that prefix followed by the detail.

Docker

docker run -i ghcr.io/cloudcorprecords/domaintrack            # stdio MCP server
docker run --rm ghcr.io/cloudcorprecords/domaintrack lookup_domain '{"domain":"example.com"}'

Configuration

  • DOMDUCK_MCP_URL — overrides the upstream endpoint, which defaults to https://domduck.com/api/mcp/public. (This override is a reconstruction on our side; the endpoint itself is the pinned public one.)

Development

npm install
npm run build   # tsc -> dist/
npm test        # node test runner via tsx; stubbed upstream, no network
npm run dev     # run the CLI from source

License

MIT — see LICENSE.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.