Skip to main content
Glama

infosec_domain

Check a domain: email deliverability, blocklists, DNS, whois, TLS — op picks the check.

Read-only and passive: DNS-over-HTTPS, RDAP, public CT logs, a TLS handshake, one HTTP GET. No port scan, no vulnerability probing, no key needed.

op :

  • "deliverability" : full email-deliverability report for YOUR sending domain — SPF/DMARC/DKIM/MTA-STS/TLS-RPT/BIMI + blocklists, a score /100, a grade and recommendations sorted by priority. Start here to answer « do our emails land in spam? ». What could not be read (DNS error, time budget) is listed in coverage and NOT scored — coverage.partial says so. Pass ip for a dedicated sending IP and dkim_selector if the domain signs with a custom selector.

  • "blocklist" : is the domain or a sending IPv4 on a spam blocklist (DNSBL)? Domain lists + IP lists (SpamCop, PSBL, NordSpam, s5h — lists whose terms allow automated commercial lookups), with reverse DNS of each IP. IPs come from ip, else from the domain's SPF ip4: entries. Each list answers listed / clean / error — an error is NOT a clean result. ⚠️ Spamhaus, SURBL, URIBL, Barracuda, Mailspike and UCEPROTECT are returned under not_checked (public resolvers refused, or terms that forbid automated commercial use), never as clean. A domain sending through Google/Microsoft/an emailing tool has no IP of its own to check — the response says so in notes.

  • "email_security" : email authentication posture — SPF (record, all qualifier, DNS lookup count vs the 10 limit), DMARC (policy, sp, pct, rua, alignment), DKIM on common selectors (+ dkim_selector), MTA-STS, TLS-RPT, BIMI, MX. ⚠️ DKIM selectors cannot be enumerated: an empty dkim_selectors_found does not prove DKIM is absent.

  • "whois" : domain registration via RDAP — registrar, creation/expiration dates, statuses, nameservers, registrant org when public.

  • "dns" : A/AAAA/MX/NS/TXT records, with stack hints (mail provider, SaaS verification tokens).

  • "subdomains" : known subdomains from Certificate Transparency logs (crt.sh). count = all distinct found, subdomains = truncated to limit. crt.sh often fails transiently: the response then carries error.

  • "tls" : TLS certificate of the host (issuer, validity, SANs, protocol); a failed validation is reported (validated=false + error), not hidden.

  • "headers" : HTTP security headers (HSTS, CSP, …) + server fingerprint.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "op": "<op>"
    },
    "name": "infosec_domain"
  }
}

Input Schema

NameRequiredDescriptionDefault
ipNoop="blocklist"/"deliverability" — an IPv4 sending address to check.
opYesdeliverability | blocklist | email_security | whois | dns | subdomains | tls | headers.
_orgNoOrg (id) de CET APPEL. `oto_list_orgs()`.
portNoop="tls" — TLS port (default 443).
limitNoop="subdomains" — max distinct subdomains returned (default 100).
_groupNoÉquipe (id) de CET APPEL, sous son org parente.
domainNoa domain, URL or email address (only the domain part is kept). Required except for op="blocklist" with `ip`.
_run_idNoOBLIGATOIRE à chaque appel dès `run_start` ou `data_claim_next` : sans lui, l'écriture sur une ligne réservée est refusée. Hérité seulement si le serveur tient un run actif — n'y compte pas.
_projectNoProjet (id) de CET APPEL — jeton PRIMAIRE. `oto_project(op='list')`.
_instanceNoInstance de connecteur PRÉCISE (un credential exact). `oto_instance(op='list')`.
dkim_selectorNoop="email_security"/"deliverability" — DKIM selector to test in addition to the common ones.

Schema Changelog

Changes observed during successful MCP inspections.

No schema history has been recorded yet.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full burden and does so richly: read-only and passive by construction (DoH, RDAP, CT logs, one HTTP GET), no port scan, no key needed. It also discloses failure semantics that matter — an `error` is NOT a clean result, Spamhaus/SURBL/URIBL returned under `not_checked`, coverage.partial on partial reads, crt.sh transient failures, and the DKIM enumeration impossibility.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well front-loaded: one-line summary, a safety sentence, then a scannable bullet per `op` with warnings inline. It is long, but nearly every clause carries operational value (the caveats could be tightened slightly).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-mode dispatcher with 11 params and no output schema, the description supplies the return shape for each mode (`score`/100, `grade`, `recommendations`, `coverage`, `listed`/`clean`/`error`, `not_checked`, `count`/`subdomains`, `validated`). Nothing essential for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds genuine cross-parameter meaning: `ip` feeding blocklist or a dedicated sending IP, IPs otherwise derived from SPF `ip4:` entries, `dkim_selector` as an extra selector beyond common ones, and `limit` as a truncation of the full `count`. `port` and the internal `_org`/`_project`/`_run_id` plumbing params are left to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource ("Check a domain") and immediately enumerates the full scope: deliverability, blocklists, DNS, whois, TLS, plus the remaining ops. Each `op` value is then defined with concrete outputs, so an agent knows exactly what this tool covers versus anything else in the catalogue.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit selection guidance per mode, including an entry point ("Start here to answer « do our emails land in spam? »" for deliverability) and mode-specific prerequisites ("Pass `ip` for a dedicated sending IP"). It does not name sibling tools (e.g. lemlist_deliverability, mailpool_spam_checks) as alternatives, so cross-tool routing is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources