Mail Server Lookup
Look up a domain's MX, A, AAAA, NS, TXT and SOA records, identify its email provider, and show its SPF and DMARC records.
Pay by wallet (x402)
mx-lookup Example
Input
{
"domain": "google.com"
} Answer
{
"soa": {
"serial": 879543655,
"primary_ns": "ns1.google.com",
"admin_email": "dns-admin.google.com"
},
"domain": "google.com",
"has_mx": true,
"has_spf": true,
"has_ipv6": true,
"a_records": [
"172.253.115.138",
"172.253.115.102",
"172.253.115.100",
"172.253.115.113",
"172.253.115.139",
"172.253.115.101"
],
"has_dmarc": false,
"mx_records": [
{
"exchange": "smtp.google.com",
"priority": 10
}
],
"spf_record": "v=spf1 include:_spf.google.com ~all",
"nameservers": [
"ns3.google.com",
"ns2.google.com",
"ns1.google.com",
"ns4.google.com"
],
"aaaa_records": [
"2607:f8b0:4004:c1f::71",
"2607:f8b0:4004:c1f::8a",
"2607:f8b0:4004:c1f::65",
"2607:f8b0:4004:c1f::66"
],
"dmarc_record": null,
"email_provider": "Google Workspace"
} Inputs
| Field | Type | Required | What it is |
|---|---|---|---|
domain | string | Yes | — |
Output fields
How reliably each field appears in a successful answer.
| Field | Type | Appears |
|---|---|---|
domain | string | Always (present in every successful answer) |
has_spf | boolean | Always (present in every successful answer) |
has_dmarc | boolean | Always (present in every successful answer) |
mx_records | array | Always (present in every successful answer) |
email_provider | string | Always (present in every successful answer) |
How to call it
The same tool through each route. MCP clients reach it through Strale’s server at https://api.strale.io/mcp; the call below is what the agent sends.
# Needs an API key. max_price_cents caps what this call may cost.
curl -X POST https://api.strale.io/v1/do \
-H "Authorization: Bearer $STRALE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"capability_slug": "mx-lookup",
"inputs": {
"domain": "google.com"
},
"max_price_cents": 2
}' {
"tool": "strale_execute",
"arguments": {
"slug": "mx-lookup",
"inputs": {
"domain": "google.com"
},
"max_price_cents": 2
}
} import { Strale } from "straleio";
const strale = new Strale({ apiKey: process.env.STRALE_API_KEY! });
const result = await strale.do({
capability_slug: "mx-lookup",
inputs: {
"domain": "google.com"
},
max_price_cents: 2,
}); import os
from straleio import Strale, DoRequest
strale = Strale(api_key=os.environ["STRALE_API_KEY"])
result = strale.do(DoRequest(
capability_slug="mx-lookup",
inputs={
"domain": "google.com",
},
max_price_cents=2,
)) # No account. The first request answers 402 with the price in USDC;
# an x402 client pays it from your wallet and repeats the request.
curl -i 'https://api.strale.io/x402/v2/mx-lookup?domain=google.com' Limitations
MX records do not confirm server reachability
Returns MX records from DNS — cannot verify whether the mail server is actually accepting connections
What to do instead: Combine with port-check on port 25 of the returned MX hosts to verify mail server reachability
Related tools
- Page Existence Check €0.02
- Port Check €0.05
- Redirect Trace €0.05
- Robots.txt Parser €0.02
- Sitemap Parser €0.05
- SSL Certificate Chain €0.05