DomainRef
Servidor MCP remoto para comprobaciones de dominios y seguridad de correo electrónico. domain_check devuelve un informe clasificado de aprobado/advertencia/fallo para SPF, DKIM, DMARC, MX, certificado TLS, inquilino de Microsoft 365, DNSSEC, BIMI y una comprobación de lista de bloqueo de UCEPROTECT, con la corrección DNS exacta para cada problema. domain_age devuelve el registrador junto con las fechas de creación y caducidad. Pago por llamada ($0.01 / $0.005) con una clave de API; incluido en el MCP Registry oficial como dev.domainref/domainref. Endpoint MCP: https://domainref.dev/mcp (HTTP con streaming).
Servidor MCP alojado
npx add-mcp 'https://domainref.dev/mcp'Se instala en Claude Code, Codex, Cursor y más
Documentación
Qué comprueba
-
SPF
Qué servidores tienen permitido enviar correo en nombre de tu dominio. Guía de SPF -
DKIM
Una firma en tu correo que demuestra que realmente proviene de ti. Guía de DKIM -
DMARC
Qué deben hacer los receptores con el correo que suplanta tu dominio, y quién recibe los informes. Guía de DMARC -
MX
Si tu dominio puede recibir correo y qué servidores lo reciben. -
Certificado del sitio web
Si el certificado HTTPS de tu sitio es válido, coincide con el nombre y no está a punto de caducar. -
Inquilino de Microsoft 365
Si el dominio funciona en Microsoft 365 y si sus claves de firma están activadas. -
DNSSEC
Si tus respuestas DNS están firmadas para que nadie pueda falsificarlas en el camino. Guía de DNSSEC -
BIMI
El registro que coloca tu logotipo junto a tu correo en algunas bandejas de entrada, y su certificado. Guía de BIMI -
Lista de bloqueo
Si las direcciones de tus servidores de correo están en la lista de bloqueo UCEPROTECT Nivel 1. Guía de listas de bloqueo -
Antigüedad del dominio
Quién es el registrador, cuándo se registró el dominio y cuándo caduca. Los dominios muy nuevos son una señal de fraude.
También MTA-STS, TLS-RPT y CAA, que protegen el correo en tránsito y controlan quién puede emitir certificados para ti. 13 comprobaciones en total. Las funciones opcionales que no hayas configurado aparecen como información con el registro que debes añadir. Nunca reducen la puntuación.
Detalle técnico de cada comprobación
| Comprobación | Qué se evalúa |
|---|---|
| SPF | Un registro, como máximo 10 consultas DNS y 2 consultas vacías, sin ptr. ~all pasa cuando DMARC aplica. |
| DKIM | Se sondean 46 selectores comunes en paralelo, incluidos los de Microsoft 365 selector1 / selector2, Google, Zoho, Proton, Fastmail, Mandrill, Mailjet, SendGrid, Amazon SES y Mimecast. Señala cada clave de menos de 2048 bits por selector, con el paso de rotación del proveedor. |
| DMARC | Política, sp=, pct, informes (rua) y autorización de informes externos. Un nombre de host recurre a su dominio organizativo (Public Suffix List). |
| MX | Presente y resoluble. Solo un MX nulo explícito (0 .) cuenta como sin correo. |
| MTA-STS | El registro TXT _mta-sts y la política HTTPS en mta-sts.<domain>: modo, cobertura de mx, max_age. Una política que los remitentes no pueden aplicar (ilegible, inválida, TXT duplicado o mode: none) es información como si no hubiera MTA-STS; las líneas mx que omiten un MX fallan en modo enforce. |
| TLS-RPT | Un registro _smtp._tls con un rua válido. |
| DNSSEC | Validado por Cloudflare y Google (deben coincidir): las firmas rotas (SERVFAIL que responde con la comprobación desactivada) fallan, con el texto de error del propio resolutor. También señala una zona firmada sin DS en el registrador, los algoritmos RSA/SHA-1 5 y 7 y los resúmenes DS SHA-1 (RFC 8624). |
| CAA | Qué CAs pueden emitir y si la CA del certificado actual está permitida. |
| Certificado del sitio web | El certificado HTTPS en el puerto 443: emisor, días hasta la caducidad, coincidencia con el nombre de host, cadena. Una pequeña parte de la puntuación. |
| Registro | Registrador (solo nombre e ID de IANA), antigüedad, caducidad y marcas de retención del RDAP del registro. Un dominio con menos de seis meses se informa aquí como información, ya que solo el tiempo lo cambia; el endpoint de antigüedad lo evalúa. Si el registro no responde, el resumen indica que no se comprobó. |
| Microsoft 365 | Detección del inquilino a partir de los endpoints públicos de descubrimiento de inicio de sesión de Microsoft. Solo información. |
| BIMI | Registro default._bimi y su certificado de marca: VMC o CMC, emisor, caducidad, coincidencia de dominio y si la cadena conduce a una raíz de Mark Verifying Authority de DigiCert, GlobalSign o SSL.com (de lo contrario se informa como una declaración). También si DMARC aplica. Solo información, nunca puntúa. |
| Lista de bloqueo | IPs de envío de MX y SPF (IPv4, hasta 10) en UCEPROTECT Nivel 1, consultadas solo mientras la propia entrada de prueba de la lista responde correctamente. El Nivel 1 enumera IPs individuales vistas golpeando los spamtraps de UCEPROTECT u otros abusos, de forma automática o manual; las entradas caducan 7 días después del último incidente. Información o advertencia, nunca puntúa. Copyright © 2001-2021 UCEPROTECT-Network http://www.uceprotect.net, usado bajo la licencia de UCEPROTECT. |
Ver un informe de ejemplo
Esto es lo que recibe una pequeña empresa típica en Microsoft 365. El dominio es inventado (.example está reservado para ejemplos), pero cada línea la escribe la comprobación real.
D
yourbusiness.example
Puntuación 45/100. 1 fallo, 2 advertencias, 3 correctas, 7 informativas.
Ejemplo
- FALLO DMARC No hay registro DMARC, ni aquí ni en el dominio organizativo. Los receptores no tienen política para el correo que falla SPF y DKIM, y no recibes informes. Solución: Publica TXT en _dmarc.yourbusiness.example: "v=DMARC1; p=none; rua=mailto:[email protected] ", lee los informes durante dos a cuatro semanas y luego pasa a p=quarantine. [email protected] es un marcador de posición: sustitúyelo por un buzón real que leas (créalo primero).
- ADVERTENCIA SPF SPF es válido (2 de 10 consultas) pero termina en ~all y DMARC no aplica, así que el correo suplantado solo recibe un fallo suave. Solución: Aplica DMARC (p=quarantine o reject), o cambia ~all a -all una vez que todos los remitentes estén listados. "v=spf1 include:spf.protection.outlook.com -all"
- ADVERTENCIA DKIM No hay clave DKIM en los 46 selectores comunes. Un selector personalizado no se puede descubrir desde DNS, así que esto puede ser una falsa alarma. Solución: En el portal de Microsoft Defender (Email & collaboration > Policies & rules > Threat policies > Email authentication settings, pestaña DKIM, o https://security.microsoft.com/authentication?viewid=DKIM) activa la firma para este dominio y publica los dos registros CNAME que muestra para selector1._domainkey y selector2._domainkey.
- CORRECTO MX 1 host MX, todos resolubles.
- CORRECTO Certificado del sitio web (HTTPS en 443) Certificado válido de Let's Encrypt R11, quedan 71 días.
- CORRECTO Registro (registrador y antigüedad) Registrado el 2014-03-02 a través de Example Registrar, 4615 días de antigüedad, caduca el 2027-03-02. 7 extras opcionales (información, no puntúan)
- INFO Inquilino de Microsoft 365 Inquilino de Microsoft 365 00000000-0000-0000-0000-000000000000 (inicio de sesión en la nube). El correo va a Exchange Online pero los selectores DKIM selector1/selector2 no están publicados. Solución: Activa DKIM para el dominio en el portal de Microsoft Defender y publica sus registros CNAME selector1 y selector2.
- INFO MTA-STS Sin MTA-STS. Los servidores remitentes entregarán en texto plano si se fuerza una degradación de TLS. Solución: Publica TXT en _mta-sts.yourbusiness.example: "v=STSv1; id=2026102001" y sirve https://mta-sts.yourbusiness.example/.well-known/mta-sts.txt como text/plain con el contenido: version: STSv1 mode: testing mx: *.mail.protection.outlook.com max_age: 604800 Pasa a mode: enforce una vez que los informes de TLS-RPT estén limpios.
- INFO TLS-RPT Sin registro TLS-RPT, así que no recibes informes cuando los remitentes no logran alcanzarte por TLS. Solución: Publica TXT en _smtp._tls.yourbusiness.example: "v=TLSRPTv1; rua=mailto:[email protected] ". [email protected] es un marcador de posición: sustitúyelo por un buzón real que leas (créalo primero).
- INFO DNSSEC DNSSEC no está activado. Las respuestas DNS de este dominio pueden falsificarse en el camino. Solución: Activa DNSSEC en tu proveedor de DNS, espera hasta que sirva el DNSKEY y luego publica el registro DS que te da en el registrador para yourbusiness.example (algoritmo 13, tipo de resumen 2). Publica el DS al final: un DS que no coincide con la zona deja el dominio fuera de línea para los resolutores que validan hasta que expire el TTL del DS.
- INFO CAA Sin registro CAA, así que cualquier CA pública puede emitir certificados para este dominio. Solución: Publica CAA en yourbusiness.example: 0 issue "letsencrypt.org", más un registro 0 issue por cada otra CA que emita para ti (revisa tu CDN, p. ej. Cloudflare o AWS, y cualquier segunda CA), y 0 iodef "mailto:[email protected] ". Una CA que falte en la lista no podrá renovar. [email protected] es un marcador de posición: sustitúyelo por un buzón real que leas (créalo primero).
- INFO BIMI Sin registro BIMI (opcional: muestra tu logotipo en Gmail, Apple Mail y Yahoo).
- INFO Lista de bloqueo (UCEPROTECT Nivel 1) No está en UCEPROTECT Nivel 1 (1 IP de correo comprobada).
FALLO Roto o ausente. Corrige esto primero. ADVERTENCIA Funciona, pero más débil de lo que debería. CORRECTO Configurado correctamente. INFO Opcional o informativo. Nunca reduce la puntuación.
Cómo ejecutar una comprobación
- Consigue una forma de pagar. Compra crédito de tarjeta para una clave de API de Afriref en afriref.dev/pricing, o usa cualquier monedero o agente de IA que pague x402 o MPP. Aquí no hay ninguna cuenta que crear.
- Pide el informe. Ejecuta un comando, con tu propio dominio en lugar de yours.com:
curl -H "X-API-Key: YOUR_KEY" "https://domainref.dev/v1/domain/check?domain=yours.com" - Corrige lo que encuentre. Empieza por FALLO, luego por ADVERTENCIA. Cada línea incluye su solución, y las guías de abajo explican cada registro.
¿Solo necesitas la antigüedad y el registrador? GET /v1/domain/age?domain=example.com cuesta $0.005. No disponible para registros sin RDAP, p. ej. .za/.co.za, .me, .de, .io, .eu: la consulta de antigüedad se rechaza gratis (422). Un nombre de dominio incorrecto, un dominio que no existe, un dominio solo privado, una caída de DNS o un límite de velocidad se rechazan gratis, antes de cualquier cargo.
Cómo corregir lo que encuentra
Guías breves con registros de ejemplo, de lectura gratuita:
-
SPF
Corrige SPF paso a paso: un registro v=spf1, el límite de 10 consultas DNS, los includes de Microsoft 365 y Google Workspace, ~all frente a -all, y dominios que no envían correo. -
DKIM
Configura la firma DKIM: CNAMEs selector1 y selector2 de Microsoft 365, la clave google._domainkey de Google Workspace, otros remitentes, claves de 2048 bits y cómo comprobarlas. -
DMARC
Despliega DMARC de forma segura: publica p=none con informes, alinea SPF y DKIM para cada remitente y luego pasa a p=quarantine y p=reject. Incluye registros de ejemplo. -
MTA-STS y TLS-RPT
Configura MTA-STS para que los servidores remitentes deban usar TLS hacia tu MX, además de informes TLS-RPT: el registro TXT _mta-sts, el archivo de política, modo de prueba y luego enforce. -
DNSSEC
Activa DNSSEC de forma segura (firma en tu proveedor de DNS y luego publica el DS en el registrador) y corrige el SERVFAIL causado por un DS que ya no coincide con tus claves. -
BIMI
Configura BIMI paso a paso: DMARC en modo de aplicación, un logotipo SVG Tiny PS, el registro TXT default._bimi y un certificado de marca VMC o CMC con su cadena completa. -
Comprobación de listas negras
Comprueba si la IP de tu servidor de correo está en una lista de bloqueo DNS (DNSBL): encuentra tus IPs de envío, consulta la lista por DNS, lee la respuesta y solicita la exclusión.
Para desarrolladores y agentes de IA
- API:
GET /v1/domain/check?domain=($0.01) yGET /v1/domain/age?domain=($0.005). Consulta /openapi.json. - MCP:
https://domainref.dev/mcp(streamable HTTP) con dos herramientas, domain_check y domain_age. Pasa api_key; el pago por llamada con x402 y MPP es solo por HTTP. - Para LLMs: /llms.txt. Descubrimiento x402: /.well-known/x402.
Si lo llamas sin pagar, recibes el desafío de precio x402:
$ curl -si "https://domainref.dev/v1/domain/check?domain=example.com" | grep -iE "^HTTP|^payment-required"
HTTP/2 402
payment-required: eyJ4NDAyVmVyc2lvbiI6Mi...
Cualquier cliente x402 lee ese 402, paga $0.01 en USDC en Base (eip155:8453) y reintenta. Sin clave, sin registro.
La respuesta es JSON. Salida real para example.com, recortada a tres comprobaciones:
{
"domain": "example.com",
"score": 100,
"letter": "A",
"summary": "example.com scores 100/100 (A): 6 pass, 0 warn, 0 fail, 7 info. Nothing to fix.",
"checks": [
{ "check": "dmarc", "label": "DMARC", "grade": "pass",
"finding": "DMARC enforces p=reject on 100% of mail.", "fix": null },
{ "check": "mta_sts", "label": "MTA-STS", "grade": "info",
"finding": "Not applicable: the domain publishes a null MX, so it takes no mail.", "fix": null },
{ "check": "registration", "label": "Registration (registrar and age)", "grade": "pass",
"finding": "Registered 1995-08-14 via RESERVED-Internet Assigned Numbers Authority (IANA 376), 11390 days old, expires 2027-08-13.", "fix": null }
]
}
No intrusivo y privado. Solo las peticiones ordinarias que hace un navegador o un servidor de correo: DNS público, el RDAP del registro, los endpoints públicos de descubrimiento de Microsoft, un handshake TLS en el puerto 443 y, cuando está publicado, la política MTA-STS en el puerto 443. Sin escaneos de puertos. La aplicación DomainRef no almacena los dominios consultados; nuestro registro de firewall conserva las URL de las peticiones (con el dominio) durante unos 6 meses. Los resolutores DNS, Microsoft y el registro ven el dominio pero nunca quién lo preguntó. Nuestro CDN necesariamente ve tu IP y la petición. Consulta privacidad y términos.