addrbookFor publishers
← The evidence ledger

Evidence row 560984

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint b72d7b36-cec2-48b6-a541-601e26051758
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
6320799725ab34bad563faf3a28e36c56d5e4810ab2305d7592eacb41132a17b
Leaf
0xb0742c0e56352701933752aa4a6e695dc450e94962fd7755551b57d0b83c72bd

What was observed

{
  "count": 17,
  "tools": [
    {
      "description": "Use this when the user asks why their emails go to spam or wants a full deliverability check of a domain. Runs SPF, DKIM (finds the selector on its own), DMARC, blacklist and MX checks in one call and returns pass, warning or fail for each, an overall result, and the fixes to apply in priority order with help links. Takes about 10 seconds. mailX never changes DNS.",
      "inputSchema": {
        "properties": {
          "dkim_selector": {
            "description": "The DKIM selector, e.g. google (Google Workspace), selector1 or selector2 (Microsoft 365). Optional: omit it to try common selectors.",
            "type": "string"
          },
          "domain_name": {
            "description": "The domain to audit, e.g. example.com",
            "type": "string"
          }
        },
        "required": [
          "domain_name"
        ],
        "type": "object"
      },
      "name": "audit_domain"
    },
    {
      "description": "Use this when the user asks about BIMI or showing a brand logo next to their emails in inboxes. Returns the live BIMI record, the logo URL it declares, and a fix suggestion.",
      "inputSchema": {
        "properties": {
          "domain_name": {
            "description": "The domain to check BIMI records for, e.g. example.com",
            "type": "string"
          }
        },
        "required": [
          "domain_name"
        ],
        "type": "object"
      },
      "name": "bimi_check"
    },
    {
      "description": "Use this when the user suspects their domain is blacklisted or blocked. Checks the domain against major DNS blocklists and returns the result for each list.",
      "inputSchema": {
        "properties": {
          "domain_name": {
            "description": "The domain name or IP address to check against blacklists, e.g. example.com or 1.2.3.4",
            "type": "string"
          }
        },
        "required": [
          "domain_name"
        ],
        "type": "object"
      },
      "name": "blacklist_check"
    },
    {
      "description": "Use this when the user wants to know whether a hostname is an alias of another one, for example to verify DKIM or tracking CNAMEs. Returns the live CNAME target.",
      "inputSchema": {
        "properties": {
          "domain_name": {
            "description": "The domain to look up CNAME records for, e.g. www.example.com",
            "type": "string"
          }
        },
        "required": [
          "domain_name"
        ],
        "type": "object"
      },
      "name": "cname_lookup"
    },
    {
      "description": "Use this when the user wants to verify DKIM for a domain. Pass the DKIM selector if known (for example google for Google Workspace, selector1 or selector2 for Microsoft 365). If the selector is unknown, omit it: mailX then tries common selectors and returns the ones it finds. Returns the published key and its status. A miss on common selectors does not prove DKIM is absent.",
      "inputSchema": {
        "properties": {
          "dkim_selector": {
            "description": "The DKIM selector, e.g. google (Google Workspace), selector1 or selector2 (Microsoft 365). Optional: omit it to try common selectors.",
            "type": "string"
          },
          "domain_name": {
            "description": "The domain to check DKIM records for, e.g. example.com",
            "type": "string"
          }
        },
        "required": [
          "domain_name"
        ],
        "type": "object"
      },
      "name": "dkim_check"
    },
    {
      "description": "Use this when the user asks about DMARC, spoofing protection, or what happens to emails that fail authentication. Returns the live DMARC record, its policy and a fix suggestion.",
      "inputSchema": {
        "properties": {
          "domain_name": {
            "description": "The domain to check DMARC records for, e.g. example.com",
            "type": "string"
          }
        },
        "required": [
          "domain_name"
        ],
        "type": "object"
      },
      "name": "dmarc_check"
    },
    {
      "description": "Use this when the user needs a DMARC record. Returns the record name, value and type ready to publish. mailX does not publish it.",
      "inputSchema": {
        "properties": {
          "dmarc_policy": {
            "description": "The DMARC policy: none (monitor only), quarantine (mark as spam), or reject (block entirely)",
            "enum": [
              "none",
              "quarantine",
              "reject"
            ],
            "type": "string"
          },
          "domain_name": {
            "description": "The domain to generate a DMARC record for, e.g. example.com",
            "type": "string"
          },
          "email": {
            "description": "The email address to receive DMARC aggregate reports, e.g. dmarc@example.com",
            "type": "string"
          }
        },
        "required": [
          "domain_name",
          "email",
          "dmarc_policy"
        ],
        "type": "object"
      },
      "name": "dmarc_generate"
    },
    {
      "description": "Use this when the user wants every DNS record for a domain in one view (A, AAAA, CNAME, MX, NS, TXT, SOA). Returns the live records grouped by type.",
      "inputSchema": {
        "properties": {
          "domain_name": {
            "description": "The domain to look up all DNS records for, e.g. example.com",
            "type": "string"
          }
        },
        "required": [
          "domain_name"
        ],
        "type": "object"
      },
      "name": "dns_lookup"
    },
    {
      "description": "Use this only when the user explicitly asks to test an IMAP login for a mailbox they control and provides its credentials. Connects to the IMAP server and reports whether connection, encryption and authentication succeed. Credentials are not stored.",
      "inputSchema": {
        "properties": {
          "imap_encryption": {
            "description": "The encryption protocol: ssl, tls, or none",
            "enum": [
              "ssl",
              "tls",
              "none"
            ],
            "type": "string"
          },
          "imap_host": {
            "description": "The IMAP server hostname, e.g. imap.gmail.com",
            "type": "string"
          },
          "imap_port": {
            "description": "The IMAP port number, e.g. 993 for SSL, 143 for unencrypted",
            "maximum": 65535,
            "minimum": 1,
            "type": "integer"
          },
          "password": {
            "description": "The IMAP password or app-specific password",
            "type": "string"
          },
          "username": {
            "description": "The IMAP username for authentication",
            "type": "string"
          }
        },
        "required": [
          "imap_host",
          "imap_port",
          "username",
          "password",
          "imap_encryption"
        ],
        "type": "object"
      },
      "name": "imap_check"
    },
    {
      "description": "Use this when the user needs the incoming mail (IMAP) server settings for an email provider, such as Gmail, Outlook, Yahoo, iCloud or Zoho. Returns the host, ports with encryption and the provider's setup guide. Never asks for the user's credentials.",
      "inputSchema": {
        "properties": {
          "imap_provider_name": {
            "description": "The email provider name to look up, e.g. gmail, outlook, yahoo",
            "type": "string"
          }
        },
        "required": [
          "imap_provider_name"
        ],
        "type": "object"
      },
      "name": "imap_finder"
    },
    {
      "description": "Use this when the user wants to know which mail servers receive email for a domain. Returns the domain's live MX records with their priorities.",
      "inputSchema": {
        "properties": {
          "domain_name": {
            "description": "The domain to look up MX records for, e.g. example.com",
            "type": "string"
          }
        },
        "required": [
          "domain_name"
        ],
        "type": "object"
      },
      "name": "mx_lookup"
    },
    {
      "description": "Use this when the user wants the reverse DNS (PTR) of an IP address, for example to check a sending server's reverse DNS. Returns the hostname the IP resolves to.",
      "inputSchema": {
        "properties": {
          "ip_address": {
            "description": "The IP address to look up, e.g. 8.8.8.8 or 142.250.80.46",
            "type": "string"
          }
        },
        "required": [
          "ip_address"
        ],
        "type": "object"
      },
      "name": "ptr_lookup"
    },
    {
      "description": "Use this only when the user explicitly asks to test an SMTP login for a mail account they control and provides its credentials. Connects to the SMTP server and reports whether connection, encryption and authentication succeed. If from_email and to_email are both given, it also sends one test email. Credentials are not stored.",
      "inputSchema": {
        "properties": {
          "encryption": {
            "description": "The encryption protocol: ssl, tls, or none",
            "enum": [
              "ssl",
              "tls",
              "none"
            ],
            "type": "string"
          },
          "from_email": {
            "description": "Optional sender email address for sending a test email",
            "type": "string"
          },
          "host": {
            "description": "The SMTP server hostname, e.g. smtp.gmail.com",
            "type": "string"
          },
          "password": {
            "description": "The SMTP password or app-specific password",
            "type": "string"
          },
          "port": {
            "description": "The SMTP port number, e.g. 587 for TLS, 465 for SSL, 25 for unencrypted",
            "maximum": 65535,
            "minimum": 1,
            "type": "integer"
          },
          "to_email": {
            "description": "Optional recipient email address for sending a test email",
            "type": "string"
          },
          "username": {
            "description": "The SMTP username for authentication",
            "type": "string"
          }
        },
        "required": [
          "host",
          "port",
          "username",
          "password",
          "encryption"
        ],
        "type": "object"
      },
      "name": "smtp_check"
    },
    {
      "description": "Use this when the user needs the outgoing mail (SMTP) server settings for an email provider or sending service, such as Gmail, Outlook, Microsoft 365, Zoho, Amazon SES or SendGrid. Returns the host, ports with encryption, what to use to log in, and the provider's setup guide. Never asks for the user's credentials.",
      "inputSchema": {
        "properties": {
          "provider_name": {
            "description": "The email provider name to look up, e.g. gmail, sendgrid, mailgun, outlook",
            "type": "string"
          }
        },
        "required": [
          "provider_name"
        ],
        "type": "object"
      },
      "name": "smtp_finder"
    },
    {
      "description": "Use this when the user asks whether a domain's SPF record is valid, which servers may send email for a domain, or why SPF fails. Returns the live SPF record, a pass/fail status and a fix suggestion.",
      "inputSchema": {
        "properties": {
          "domain_name": {
            "description": "The domain to check SPF records for, e.g. example.com",
            "type": "string"
          }
        },
        "required": [
          "domain_name"
        ],
        "type": "object"
      },
      "name": "spf_check"
    },
    {
      "description": "Use this when the user needs a new SPF record for their email provider. Returns a TXT record ready to publish, or explains what to set up instead when the provider does not need a root SPF include. mailX does not publish it.",
      "inputSchema": {
        "properties": {
          "domain_name": {
            "description": "The domain to generate an SPF record for, e.g. example.com",
            "type": "string"
          },
          "hard_fail_boolean": {
            "description": "If true, uses strict -all policy (reject unauthorized senders). If false, uses soft ~all (mark but deliver).",
            "type": "boolean"
          },
          "provider": {
            "description": "Email provider identifier. Google Workspace or Gmail = google. Microsoft 365, Office 365 or Outlook = microsoft. Amazon SES = amazon-ses. Common provider names are also accepted.",
            "enum": [
              "activecampaign",
              "amazon-ses",
              "aweber",
              "bluehost",
              "brevo",
              "campaign-monitor",
              "constant-contact",
              "elastic-email",
              "fastmail",
              "freshdesk",
              "gandi",
              "getresponse",
              "godaddy",
              "google",
              "hostgator",
              "hostinger",
              "hubspot",
              "icloud",
              "infomaniak",
              "intercom",
              "ionos",
              "ionos-eu",
              "kit",
              "klaviyo",
              "mailbox-org",
              "mailchimp",
              "mailersend",
              "mailgun",
              "mailjet",
              "mandrill",
              "microsoft",
              "migadu",
              "moosend",
              "namecheap",
              "ovh",
              "postmark",
              "protonmail",
              "purelymail",
              "rackspace",
              "resend",
              "salesforce",
              "sendgrid",
              "smtp2go",
              "sparkpost",
              "titan",
              "yandex",
              "zendesk",
              "zeptomail",
              "zoho"
            ],
            "type": "string"
          }
        },
        "required": [
          "domain_name",
          "provider",
          "hard_fail_boolean"
        ],
        "type": "object"
      },
      "name": "spf_generate"
    },
    {
      "description": "Use this when the user wants to see a domain's TXT records, for example to find verification tokens or check what SPF or other policies are published. Returns all live TXT records.",
      "inputSchema": {
        "properties": {
          "domain_name": {
            "description": "The domain to look up TXT records for, e.g. example.com",
            "type": "string"
          }
        },
        "required": [
          "domain_name"
        ],
        "type": "object"
      },
      "name": "txt_lookup"
    }
  ]
}

What the leaf hashes

{"body":"6320799725ab34bad563faf3a28e36c56d5e4810ab2305d7592eacb41132a17b","id":560984,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793136710414046,"prev":null,"subject":"b72d7b36-cec2-48b6-a541-601e26051758","subject_kind":"endpoint"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (273461 rows).

  1. 0xb074da7980621db38302b1dc0fce8a21badc20bc659f89e14d8c1973899f1f4c
  2. 0xf177178289de92ef04a1c63ee8c687fa977aa8c903d4fc4800716cb88d134665
  3. 0xab030c8f48e19856a0c2badbb6c32bf4ef6b090ae19f7911cc93653df4dc3c55
  4. 0xf11a99cd22d7954ec470fafe014b21c6a4f005d9db76fcc8e2a84aba6b4c8539
  5. 0x170b8ee399d6e8fe8f17fdd6a2587263d2ec2cc89e3cb39ac5b65f4c290eb026
  6. 0x32fdc38c2ae9a1dfaf3057b9f1dff9bb6aedb46715c0ac0db5fa8b967b9c7b0b
  7. 0xf7c364fd03aea32ee5c606b7734656df9830ce43ba0caa1a54b2f26fb645ad36
  8. 0xb97ff8fde62002e43a090a078af95013465ee4a65d6a2f7353c9b8cbf9089f9e
  9. 0x89b6f53441c3d52ab46f487e6e1954a24ebe662ded738447e9b97b08153e5be2
  10. 0x0c46dda2e15f065ead08a037290f5610f861a452e45aada336acce8131bbb604
  11. 0x56e7aed5204b5b8c5add89512d1cb8ce0fb6387142ec4c11a09b2afad3fc0a97
  12. 0x6413c10d59083704c26ae4eedf79ca24dbf9c92cad846aac6f2a11f02ab3b17b
  13. 0x4c82d20074b9d7d77e728b0250a2c662412d8d0f7eccff2d8100bfcc4434597f
  14. 0x98c6ed3e7b5bb7f1757a8660af410226a11dd563bf83010040c2ce059ab45e54
  15. 0xec7bb68216a4deb1960acfbbd75da88f7e468b58adb9cf3ec62f2790e46508b3
  16. 0x64c405a28e8819716221eb2529fe4ce277ab08025e17e685cbd5ece75ceb75c7
  17. 0xf30fddbf4811226c58e8f0daf36fddd79fc5f1356b592bb1d99a8061ddbabe66
  18. 0x2bf8151e5f157dd183b9de6fa00469551932a7a6e3f33a694895000ac9061197
  19. 0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699
Day root
0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795
Chained
0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4
Published
On Arc Testnet, block 69414147: 0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4

How to check it · This row as JSON