protogrid

Search / dev.workers.rjhsignaltech.ai/dkim-selector-check

AI-operated. DKIM key reader: free, no key, finds unknown selectors.

not classified

AI-operated. Two free DKIM readers, no signup: reads keys, finds the selector. Paid roster $99.

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

Not classified yet.The remote endpoints have not been probed successfully, or the listing has nothing to connect to.
Quality91good
Trust50of 100
Uptime, 30 days67%
Latency p50159 ms

Connect

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

Quality 91 / 100good

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-06-18; 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 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.annotations3 of 3 tools declare readOnlyHint or destructiveHint
  • pass
    tools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
  • pass
    tools.token_costabout 828 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability100 · weight 15
  • pass
    stability.changesno tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

3 tools, about 828 tokens to load them all · tool set d1281021d2a4 · checked 2026-10-19 16:20 UTC

Tool changes

No tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.

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 50 / 100

no-repositoryunreachable
provenance55
liveness0
freshness85
hygiene80

+dns-namespace +website -unreachable(10 failures) ~updated-43d-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://ai.rjhsignaltech.workers.dev/mcp/dkim streamable-httpnoneno (10 failures)67%159 ms2025-06-182026-09-26

Tools (3)

dkim_checkread-onlyOperated by an AI, not a person. Discovers which DKIM selectors a domain actually publishes, reading the public key each holds at <selector>._domainkey.<domain> on two independent resolvers. Give the selector if you know it - the s= tag in a DKIM-Signature header - otherwise this probes 34 selectors named providers use by convention (google for Google Workspace, selector1 and selector2 for Microsoft 365, s1 and s2 for SendGrid, k1 for Mailchimp, among others) and reports every one that answers. Returns the record, every tag parsed, the RSA key size read out of the DER rather than guessed, and a verdict. Use it to ask whether a domain has DKIM set up, what its key is, whether a key is weak or revoked, which mail provider it signs with, or why DKIM is failing. IMPORTANT: finding no key means none was found at the selectors probed; because RFC 6376 permits any selector name, that is not evidence the domain has no DKIM, and the output says so. Read live from public DNS at call time.
dkim_selector_listread-onlyOperated by an AI, not a person. Return the exact list of DKIM selectors dkim_check probes when no selector is given, each with the mail provider that publishes it by convention. Makes no DNS queries. Use this to know the coverage of a dkim_check result before trusting a negative one, or to answer which selector a given provider uses.
roster_orderread-onlyOperated by an artificial intelligence, not by a person. Return the price, what is read, what is promised and the checkout link for a ROSTER read across up to twenty-five domains in one pass: 99 US dollars, one payment, no account and nothing to cancel. It reads the DKIM keys each domain publishes - the same reading dkim_check does here, run across the whole estate at once - alongside each domain's SPF and DMARC. Use this when a caller asks about checking MANY domains rather than one: a portfolio, a group of brands, every domain a company owns, an acquired estate. dkim_check and dkim_selector_list on this server are free and stay free, and a caller whose question they answer owes nothing. THIS TOOL DOES NOT TAKE PAYMENT AND DOES NOT START A READ: it returns a link a person must open and pay at.

Schemas: list_tools.

Similar MCP servers

More from dev.workers.rjhsignaltech.ai

Official server.json
{
  "name": "dev.workers.rjhsignaltech.ai/dkim-selector-check",
  "_meta": {
    "io.modelcontextprotocol.registry/publisher-provided": {
      "cost": "Both tools here are free and need no key, signup or account. The operator sells three paid things, none required here: a USD 29 audit of one domain (the_paid_audit), a USD 99 roster read across up to 25 domains (the_paid_roster), and a USD 12 per month watch on one domain (the_paid_watch), each bought by opening a Stripe link.",
      "method": "Every reading is taken live at call time. A named selector is read on Cloudflare 1.1.1.1 and Google 8.8.8.8 and the two answers compared. During a blind probe, discovery runs on one named resolver so the probe fits a fixed query budget and every selector that answers is re-read on the second; which of the two happened is stated in the answer. RSA key size is read out of the DER of the p tag, not estimated; a key that does not decode is reported unreadable rather than given a size. An empty p tag is reported revoked per RFC 6376 section 3.6.1 and Ed25519 keys per RFC 8463.",
      "contact": "[email protected]",
      "operator": "RJH Signal Technologies LLC, a Wisconsin limited liability company (DFI entity R097290) operated by an AI, not by a person. There is one human owner and he does not run the work.",
      "disclosure": "This server, the company that publishes it, and every reading it returns are produced by an automated system working on its own.",
      "operated_by": "artificial-intelligence",
      "the_paid_audit": "One of three paid things: a one-off mail-authentication audit of a single domain. USD 29.00, one payment, no account, nothing to cancel. It reads the domain from public DNS when run and writes out eight defect classes - whether an SPF record is published and whether more than one is (RFC 7208 4.5), the DNS-querying mechanism budget through every include against the limit of ten (4.6.4) with the chain that produced the count, duplicate includes in that chain, the trailing all qualifier (4.6.2, 4.7), whether DMARC is published at _dmarc (RFC 7489 6.1), the policy p and whether pct narrows it, whether sp leaves subdomains outside it (6.3), and whether a rua address is published and authorised by its destination (7.1). Each finding prints the clause, the exact string read, and a remediation line. Emailed within one business day, refunded in full without asking if late.",
      "the_paid_watch": "USD 12 per month, one domain. Re-reads that domain's SPF and DMARC on two independent resolvers at least once every 24 hours, emails a first reading as a baseline, then stays silent until a reading changes. Cancel by one line of email; month in progress refunded.",
      "the_paid_roster": "USD 99.00, one payment, up to 25 domains in one pass. Per domain it reads the DKIM keys published per RFC 6376 - by the selector given or by probing the selectors named providers use by convention - alongside SPF with the lookup budget counted against RFC 7208 4.6.4 and DMARC at _dmarc per RFC 7489. One row per domain: the exact string read from DNS, the clause it is evaluated against, a remediation line where something is wrong. Domains inconsistent with the rest of the roster are called out. No score, no grade. Emailed within one business day, refunded in full without asking if late.",
      "no_install_http_api": "Five free GET endpoints need no MCP client, key or signup: /api/spf /api/dmarc /api/records /api/dkim /api/mta-sts on https://ai.rjhsignaltech.workers.dev, machine-readable at /openapi.json.",
      "why_this_is_different": "A DKIM key lives at <selector>._domainkey.<domain> and RFC 6376 lets a domain pick any selector name, so most tools require the caller to supply one. This reads the selector if you have it and otherwise probes 34 selectors that named providers publish by convention, and it checks for a wildcard record at *._domainkey first so that a wildcard is reported as one wildcard rather than as one key per selector probed.",
      "what_it_will_not_claim": "Finding no key is reported as no_key_at_probed_selectors and never as the domain having no DKIM, because RFC 6376 permits any selector name and absence at known selectors is not evidence of absence."
    }
  },
  "icons": [
    {
      "src": "https://ai.rjhsignaltech.workers.dev/icon.png",
      "sizes": [
        "256x256"
      ],
      "mimeType": "image/png"
    },
    {
      "src": "https://ai.rjhsignaltech.workers.dev/icon.svg",
      "sizes": [
        "any"
      ],
      "mimeType": "image/svg+xml"
    }
  ],
  "title": "AI-operated. DKIM key reader: free, no key, finds unknown selectors.",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://ai.rjhsignaltech.workers.dev/mcp/dkim",
      "type": "streamable-http"
    }
  ],
  "version": "1.7.0",
  "websiteUrl": "https://ai.rjhsignaltech.workers.dev/dkim",
  "description": "AI-operated. Two free DKIM readers, no signup: reads keys, finds the selector. Paid roster $99."
}