Saltar al contenido
iseeu.cc

API y servidor MCP

Todo lo que muestra la página de inicio, para scripts, servidores y agentes de IA. HTTPS, sin clave de API, sin registro, con CORS activado y gratis para uso comercial dentro del límite de uso razonable.

Respuesta corta

curl iseeu.cc imprime tu dirección IP pública y un salto de línea; /json devuelve todo lo que muestra la página de inicio en un solo objeto JSON, y /mcp es un servidor de Model Context Protocol con cinco herramientas. Es gratis y no necesita clave mientras no pases de 60 solicitudes por minuto por dirección IP, o de 10 por minuto en los dos endpoints que hacen una consulta hacia afuera.

Cómo se obtiene

La misma URL responde según la solicitud: si el encabezado Accept pide text/html, recibes la página web; si no, texto plano. Los endpoints JSON aceptan ?format=text para devolver líneas key: value, y un encabezado Accept que prefiera text/plain hace lo mismo (negociación de contenido, RFC 9110). Las respuestas nunca se guardan en caché y las pueden leer scripts de cualquier origen. El endpoint MCP usa Streamable HTTP y no tiene estado.

Ejemplo práctico

$ curl iseeu.cc
192.0.2.1
$ curl -s "iseeu.cc/geo?format=text" | grep '^country:'
country: US

192.0.2.1 y el país son valores de ejemplo del rango reservado para documentación (RFC 5737); tu solicitud devuelve tus propios valores.

Límites

  • Los datos describen la máquina que envía la solicitud; si usas un asistente de IA que corre en la nube, esa máquina es el servidor del proveedor, no tú.
  • El límite de solicitudes se cuenta por cada ubicación de Cloudflare, así que es aproximado.
  • Los datos de ubicación son una estimación a partir de una base de datos de IP.

Fuentes

Fuentes revisadas el . Página actualizada el .

Inicio rápido

Las salidas de ejemplo de abajo usan 192.0.2.1, una dirección reservada para documentación que nunca pertenece a un dispositivo real. Cuando ejecutes estos comandos, verás tu propia IP.

$ curl iseeu.cc
192.0.2.1

$ curl -s iseeu.cc/json | jq '{ip, country: .location.country, asn: .network.asn, tls: .tls.version}'
{
  "ip": "192.0.2.1",
  "country": "US",
  "asn": 7922,
  "tls": "TLSv1.3"
}

La URL de inicio decide qué devolver según tu encabezado Accept: los navegadores piden text/html y reciben la página; curl, wget, HTTPie, PowerShell y las bibliotecas HTTP no lo piden, y reciben una sola línea con tu dirección IP y un salto de línea.

Endpoints

RutaDevuelve
/Tu IP en texto plano (clientes que no son navegadores) o la página web (navegadores)
/ipTu IP en texto plano, siempre
/jsonTodo: IP, ubicación, red, TLS, HTTP, User-Agent desglosado, encabezados de la solicitud, hora del servidor
/geoIP, ubicación, ASN, organización y centro de datos de Cloudflare
/tlsVersión de TLS, cifrado, tamaño del ClientHello, hashes de cifrados y extensiones, versión de HTTP
/uaTu User-Agent, desglosado en navegador, motor, sistema operativo, dispositivo y tipo de cliente
/headersLos encabezados de la solicitud que enviaste y los que agregó Cloudflare
/api/rdap?q=Datos de registro RDAP de un dominio, una dirección IP o un CIDR, o un número AS, desde el registro que IANA indica para cada caso: un resumen más el JSON RDAP sin procesar
/api/headers-check?url=Los encabezados de respuesta de una URL pública (siguiendo redirecciones y sin leer nunca el cuerpo) con una calificación de seguridad
/mcpServidor MCP (Streamable HTTP, sin estado): ver más abajo

Para ver la dirección de un solo protocolo, fuérzalo en curl: curl -4 iseeu.cc imprime tu dirección IPv4 y curl -6 iseeu.cc tu dirección IPv6 (falla de inmediato si tu máquina no tiene ruta IPv6); lo mismo funciona con JSON usando curl -4 iseeu.cc/json y curl -6 iseeu.cc/json.

Agrega ?format=text (o envía Accept: text/plain) a cualquier endpoint JSON para obtener líneas planas key: value, prácticas con grep. format solo acepta json o text; cualquier otro valor recibe un 400 con "error": "invalid_format" en lugar de un valor por defecto silencioso. curl "iseeu.cc/ua?format=text" imprime solo la cadena del User-Agent. La descripción legible por máquinas está en /openapi.json (OpenAPI 3.1).

El objeto /json

Una respuesta de ejemplo (de nuevo con la dirección de ejemplo reservada 192.0.2.1):

{
  "ip": "192.0.2.1",
  "ipVersion": 4,
  "location": {
    "country": "US", "countryName": "United States",
    "region": "Texas", "regionCode": "TX", "city": "Austin",
    "postalCode": "78701", "metroCode": "635", "continent": "NA",
    "isEU": false, "latitude": 30.27, "longitude": -97.74,
    "timezone": "America/Chicago"
  },
  "network": { "asn": 7922, "asOrganization": "Comcast Cable", "colo": "DFW",
               "clientTcpRttMs": 22, "clientQuicRttMs": null, "deliveryRateBps": null },
  "tls": { "version": "TLSv1.3", "cipher": "AEAD-AES128-GCM-SHA256", "clientHelloLength": 508,
           "clientCiphersSha1": "…", "clientExtensionsSha1": "…" },
  "http": { "protocol": "HTTP/2", "method": "GET", "priority": null, "acceptEncoding": "gzip, br" },
  "userAgent": { "raw": "curl/8.9.1", "browser": {…}, "engine": {…}, "os": {…},
                 "device": {…}, "cpu": {…}, "kind": "cli", "bot": { "name": "curl", "kind": "cli", "operator": null } },
  "headers": { "accept": "*/*", "host": "iseeu.cc", "user-agent": "curl/8.9.1" },
  "edgeHeaders": { "cf-ray": "…", "cf-ipcountry": "US", … },
  "time": { "server": "2026-10-08T12:00:00.000Z", "serverMs": 1791460800000 },
  "meta": { "docs": "https://iseeu.cc/api/", "privacy": "https://iseeu.cc/privacy/", "simulated": false }
}

Los valores que faltan son null, nunca se omiten, así que la estructura es estable. Eso incluye las mediciones que no aplican o que no se hicieron: clientTcpRttMs solo existe en conexiones TCP (HTTP/1.1 y HTTP/2), clientQuicRttMs solo en HTTP/3, y Cloudflare informa un valor no medido como 0, que nosotros pasamos como null en lugar de como un viaje de ida y vuelta de cero milisegundos. Los datos de ubicación y de red vienen de la información de IP de Cloudflare para la dirección desde la que te conectaste; describen la red de tu proveedor, no una dirección postal. tls.clientCiphersSha1 y clientExtensionsSha1 son hashes que calcula Cloudflare a partir de tu ClientHello, no JA3 ni JA4. Chrome cambia al azar el orden de sus extensiones TLS, así que su hash de extensiones suele cambiar entre conexiones; el hash de cifrados es el más estable de los dos. userAgent.kind es uno de browser, search-crawler, ai-crawler, ai-assistant, social-preview, http-library, cli, headless-browser, monitoring, bot o unknown.

Usos comunes

Comprobar que una VPN o un proxy está activo antes de ejecutar una tarea. Compara el país de salida con el que esperas y detente si no coincide:

country=$(curl -s "iseeu.cc/geo?format=text" | awk -F': ' '$1=="country"{print $2}')
[ "$country" = "DE" ] || { echo "VPN not in Germany (got $country)"; exit 1; }

Averiguar la dirección pública de un servidor desde dentro de un contenedor, un runner de CI o una función en la nube, donde la interfaz de red solo muestra una dirección privada. Basta con curl -s iseeu.cc, y el salto de línea final hace que sea seguro usarlo en una sustitución de comandos del shell.

Ver lo que tu cliente HTTP realmente envía. Las bibliotecas agregan, renombran y reordenan encabezados. Llama a /headers desde tu código para ver el conjunto exacto, o a /tls para confirmar qué versión de TLS y qué cifrado negocia tu entorno de ejecución.

Desde otros lenguajes:

// JavaScript (browser or Node 18+)
const me = await (await fetch("https://iseeu.cc/json")).json();

# Python
import requests; me = requests.get("https://iseeu.cc/json", timeout=5).json()

// Go
resp, _ := http.Get("https://iseeu.cc/ip")

# PowerShell
(Invoke-RestMethod https://iseeu.cc/json).location.country

Consultas que salen de iseeu.cc

/api/rdap y /api/headers-check hacen cada uno una solicitud hacia afuera, así que tienen su propio límite, más bajo: 10 llamadas por minuto por dirección IP; por encima de eso responden con 429 y Retry-After: 60. Las consultas RDAP solo van a servidores que figuran en el registro de arranque (bootstrap) de IANA. La verificación de encabezados acepta URL públicas http/https en los puertos 80 y 443, rechaza las direcciones privadas y reservadas e iseeu.cc mismo (también como destino de una redirección; eso da un 400 invalid_target), sigue hasta cinco redirecciones y se rinde a los cinco segundos. Ninguno de los dos endpoints guarda la consulta.

curl -s "iseeu.cc/api/rdap?q=AS64496" | jq .summary
curl -s "iseeu.cc/api/headers-check?url=https://example.com/" | jq '.grade | {grade, score}'

Límites y uso razonable

  • 60 solicitudes por minuto por dirección IP. Si te pasas, recibes 429 con Retry-After: 60. El límite se cuenta por cada ubicación de Cloudflare, así que es aproximado.
  • Las respuestas, incluidas las de MCP, nunca se guardan en caché (Cache-Control: no-store). Los endpoints REST llevan Access-Control-Allow-Origin: *, así que el JavaScript del navegador de cualquier sitio puede llamarlos.
  • El uso comercial está permitido. Por favor, no pongas /json detrás de una página que carguen todos tus visitantes; a esa escala, escríbenos antes.
  • Si 60 solicitudes por minuto de verdad no te alcanzan para lo que estás construyendo, cuéntanos a través de la página de contacto.

Servidor MCP para agentes de IA

https://iseeu.cc/mcp es un servidor remoto de Model Context Protocol sobre Streamable HTTP. No tiene estado, no necesita autenticación y ofrece cinco herramientas, todas de solo lectura; dns_lookup y rdap_lookup comparten el límite de 10 por minuto de las consultas hacia afuera.

HerramientaEntradaQué hace
whoamiinclude_headers?IP pública, ubicación, ASN y organización, centro de datos de Cloudflare, versión de TLS y de HTTP, y tipo de cliente de la máquina que llama al servidor
check_headersheaders?Señala rasgos que la detección de bots suele ponderar: falta de User-Agent o Accept-Language, Chrome sin Client Hints, versiones o plataformas que no coinciden, encabezados de proxy con otra IP, DNT y GPC. Son indicios posibles, no pruebas, porque cualquier cliente puede omitir o falsificar encabezados. Sin entrada, revisa los encabezados de la propia llamada.
parse_uauser_agent?Descompone un User-Agent en navegador, motor, sistema operativo, dispositivo y CPU, y clasifica rastreadores, agentes de IA, herramientas de línea de comandos y bibliotecas
dns_lookupname, type?Registros A, AAAA, MX, TXT, NS, CNAME, CAA o SOA a través del resolvedor de Cloudflare con DNS sobre HTTPS, con TTL, la marca DNSSEC y una nota que distingue un nombre inexistente (NXDOMAIN) de un tipo de registro que no existe
rdap_lookupquery, include_raw?Resumen del registro de un dominio, una dirección IP o un número AS desde el servidor RDAP autoritativo

Los clientes MCP que funcionan en el navegador pueden llamarlo desde cualquier origen. CORS permite POST, GET y DELETE con los encabezados de solicitud Content-Type, Mcp-Session-Id, Mcp-Protocol-Version y Last-Event-ID, y expone Mcp-Session-Id. Cada respuesta MCP se envía con Cache-Control: no-store, y el servidor no guarda nada entre llamadas. El cuerpo de una solicitud puede pesar hasta 64 KB y un lote JSON-RPC puede tener hasta 10 mensajes; los más grandes se rechazan con el error -32600 antes de que se ejecute cualquier herramienta.

Conectar

# Claude Code
claude mcp add --transport http iseeu https://iseeu.cc/mcp

# Cursor, Windsurf, VS Code and other JSON configs
{ "mcpServers": { "iseeu": { "url": "https://iseeu.cc/mcp" } } }

Una aclaración honesta sobre whoami: informa sobre la máquina que envía la solicitud HTTP a /mcp, sea cual sea. En los agentes de escritorio y de línea de comandos, esa es tu propia red, así que sirve para comprobar si un proxy o una VPN está funcionando. En los asistentes que corren en la nube, es el servidor del proveedor.

Archivos de descubrimiento

Privacidad

La API nunca registra direcciones IP, encabezados ni consultas, y no tiene base de datos. Las respuestas se arman en memoria a partir de la solicitud y luego se descartan; contamos las llamadas por endpoint sin direcciones IP. Los detalles están en la página de privacidad.

La API se ofrece tal como está, sin garantías de disponibilidad. Los datos de ubicación y de red pueden estar equivocados. No la uses como única señal para decisiones de seguridad o de fraude.