Internet-Names-MCP

Verificar disponibilidad de nombres de dominio, identificadores de redes sociales y subreddits

Documentación

Internet Names MCP Server

Un servidor MCP para comprobar la disponibilidad de nombres de dominio, nombres de usuario en redes sociales y subreddits. Devuelve respuestas JSON limpias adecuadas para uso programático.

Características

  • Nombres de dominio - Comprueba la disponibilidad mediante RDAP (gratuito) o la API de NameSilo (gratuita, pero requiere clave de API; las respuestas también incluyen precios de dominios)
  • Nombres de usuario en redes sociales - Instagram, Twitter/X, Reddit, YouTube, TikTok, Twitch, Threads
  • Subreddits - Comprueba si los nombres de subreddit están disponibles en Reddit
  • Búsqueda exhaustiva - Genera combinaciones de nombres y comprueba todo a la vez

Inicio rápido

1. Añadir a Claude Code (Recomendado)

claude mcp add --scope user internet-names-mcp uvx internet-names-mcp

¡Eso es todo! El servidor funciona inmediatamente usando RDAP para las consultas de dominios.

2. Opcional: Configurar la API de NameSilo (para precios de dominios)

La comprobación de disponibilidad de nombres de dominio funciona mejor si configuras una clave de API de NameSilo. Es gratuita y solo requiere un registro básico. De lo contrario, recurrimos a RDAP, que tiene algunas limitaciones significativas (ver más abajo).

Configura tu clave de API de NameSilo

  1. Crea una cuenta en namesilo.com (o inicia sesión)
  2. Ve al Administrador de API
  3. Haz clic en Generar nueva clave de API
  4. Copia la clave y ejecuta:
uvx internet-names-mcp --setup

Se te pedirá que pegues tu clave de API. En macOS, tu clave de API se almacena de forma segura en tu llavero de iCloud o de inicio de sesión como internet-names-mcp.namesilo. En otras plataformas, se almacena en ~/.config/internet-names-mcp/config.json.

Usar --setup es el método preferido, ya que almacena la clave de forma segura. Alternativamente, puedes configurarla mediante una variable de entorno (consulta Configuración manual más abajo).

Configuración manual

Si no usas Claude Code, o prefieres configurar los servidores MCP manualmente, añade esto al archivo de configuración de tu cliente MCP (por ejemplo, claude_desktop_config.json para Claude Desktop):

{
  "mcpServers": {
    "internet-names-mcp": {
      "command": "uvx",
      "args": ["internet-names-mcp"]
    }
  }
}

Para incluir una clave de API de NameSilo mediante variable de entorno (si no has usado --setup):

{
  "mcpServers": {
    "internet-names-mcp": {
      "command": "uvx",
      "args": ["internet-names-mcp"],
      "env": {
        "NAMESILO_API_KEY": "your_api_key_here"
      }
    }
  }
}

Nota: Usar uvx internet-names-mcp --setup para almacenar la clave de API es preferible a las variables de entorno, ya que utiliza almacenamiento seguro (Llavero de macOS) cuando está disponible.

Comandos CLI

uvx internet-names-mcp --setup         # Configure API keys interactively
uvx internet-names-mcp --show-config   # Show current configuration
uvx internet-names-mcp --version       # Show version
uvx internet-names-mcp --help          # Show help

Herramientas

get_supported_socials()

Devuelve la lista de plataformas de redes sociales compatibles.

Respuesta:

{
  "platforms": ["instagram", "twitter", "reddit", "youtube", "tiktok", "twitch", "threads", "subreddit"]
}

Nota: subreddit se comprueba mediante check_subreddits(), no check_handles().


check_domains(names, tlds?, method?, only_report_available?)

Comprueba la disponibilidad y el precio de los nombres de dominio.

Parámetros:

NombreTipoPredeterminadoDescripción
nameslist[str]requeridoNombres de dominio o nombres base a comprobar
tldslist[str]["com", "io", "ai", "co", "app", "dev", "net", "org"]TLDs a comprobar
methodstr"auto""auto", "rdap" o "namesilo"
only_report_availableboolfalseSi es verdadero, omite los dominios no disponibles de la respuesta

Si un nombre contiene un punto, se trata como un dominio completo. De lo contrario, se combina con cada TLD.

Respuesta:

{
  "available": [
    {"domain": "myapp.com", "price": 17.29},
    {"domain": "myapp.io", "price": 34.99}
  ],
  "unavailable": ["myapp.ai"],
  "summary": {
    "cheapestAvailable": {"domain": "myapp.com", "price": 17.29},
    "shortestAvailable": {"domain": "myapp.io", "price": 34.99}
  }
}

check_handles(username, platforms?, only_report_available?)

Comprueba la disponibilidad de nombres de usuario en redes sociales en varias plataformas.

Parámetros:

NombreTipoPredeterminadoDescripción
usernamestrrequeridoEl nombre de usuario/handle a comprobar
platformslist[str]todas las plataformasPlataformas a comprobar
only_report_availableboolfalseSi es verdadero, omite los handles no disponibles de la respuesta

Plataformas compatibles: instagram, twitter, reddit, youtube, tiktok, twitch, threads

Nota: La comprobación de Twitter/X utiliza un navegador sin interfaz gráfica y tarda ~4 segundos.

Respuesta:

{
  "available": ["instagram", "tiktok", "youtube"],
  "unavailable": [
    {"platform": "twitter", "url": "https://x.com/myapp"},
    {"platform": "reddit", "url": "https://reddit.com/user/myapp"}
  ]
}

check_subreddits(names, only_report_available?)

Comprueba la disponibilidad de nombres de subreddit en Reddit.

Parámetros:

NombreTipoPredeterminadoDescripción
nameslist[str]requeridoNombres de subreddit a comprobar (con o sin el prefijo r/)
only_report_availableboolfalseSi es verdadero, omite los subreddits no disponibles de la respuesta

Respuesta:

{
  "available": ["mynewsubreddit"],
  "unavailable": [
    {"name": "programming", "subscribers": 6835000},
    {"name": "privatesubreddit", "note": "private"}
  ]
}

check_everything(components, tlds?, platforms?, method?, require_all_tlds_available?, only_report_available?, also_include_hyphens?)

Comprobación exhaustiva en dominios y redes sociales. Genera combinaciones de nombres a partir de componentes, comprueba primero los dominios (rápido) y luego comprueba los handles sociales de los nombres que superan la comprobación de dominios.

Parámetros:

NombreTipoPredeterminadoDescripción
componentslist[str]requeridoComponentes de nombre a combinar (p. ej., ["red", "sweater"])
tldslist[str]["com", "net", "org", "io", "ai"]TLDs a comprobar
platformslist[str]todas las plataformasPlataformas sociales a comprobar
methodstr"auto""auto", "rdap" o "namesilo"
require_all_tlds_availableboolfalseSi es verdadero, el nombre debe estar disponible en TODOS los TLDs para calificar para la comprobación de handles
only_report_availableboolfalseSi es verdadero, omite los elementos no disponibles de la respuesta
also_include_hyphensboolfalseSi es verdadero, también comprueba las versiones con guiones

Generación de nombres: A partir de los componentes ["red", "sweater"], genera:

  • Componentes individuales: red, sweater
  • Concatenaciones: redsweater, sweaterred

Respuesta:

{
  "available_domains": [
    {"domain": "redsweater.com", "price": 17.29},
    {"domain": "redsweater.io", "price": 34.99}
  ],
  "domain_successful_basenames": ["redsweater", "sweaterred"],
  "available_handles": {
    "redsweater": ["instagram", "twitter", "youtube"],
    "sweaterred": ["instagram", "tiktok"]
  },
  "unavailable_handles": {
    "redsweater": [{"platform": "reddit", "url": "..."}]
  },
  "summary": {
    "fully_available": ["sweaterred"],
    "cheapest_domain": {"domain": "redsweater.com", "price": 17.29}
  }
}

La lista fully_available contiene nombres que están disponibles en TODAS las plataformas comprobadas.

Métodos de consulta de dominios

MétodoDescripciónPreciosVelocidad
autoUsa NameSilo si hay clave de API configurada; de lo contrario, RDAPCon NameSiloRápido
rdapConsultas directas al registro mediante bootstrap de IANANoRápido
namesiloAPI de NameSilo (requiere clave de API)SíRápido

Limitaciones de RDAP

RDAP es gratuito y no requiere clave de API, pero tiene algunas limitaciones:

  • Cobertura de TLDs - No todos los dominios de nivel superior (TLDs) tienen servidores RDAP. Las consultas para TLDs no compatibles fallarán. RDAP funciona para .com, .net, .org, .app, .ai y más. Consulta deployment.rdap.org para obtener una lista actualizada (busca 'Sí' en la columna 'RDAP').
  • Sin precios - RDAP solo informa de la disponibilidad, no del coste de registrar el dominio.
  • Falsos positivos - Un dominio puede parecer disponible mediante RDAP pero en realidad estar reservado o ser considerado "premium" por los registradores, lo que lo hace efectivamente no disponible o prohibitivamente caro de comprar.

Para obtener resultados fiables con precios, configura una clave de API de NameSilo.

Configuración

Almacenamiento de la clave de API:

  • macOS: Llavero (como internet-names-mcp.namesilo)
  • Linux: ~/.config/internet-names-mcp/config.json
  • Windows: %APPDATA%/internet-names-mcp/config.json

Orden de búsqueda de la clave de API (la primera coincidencia gana):

  1. Llavero de macOS (solo en macOS)
  2. Variable de entorno (NAMESILO_API_KEY)
  3. Archivo de configuración (respaldo)

Desarrollo

Configuración local

El script devsetup.sh gestiona la creación del entorno virtual y la instalación de dependencias:

git clone <repo-url> InternetNamesMCP
cd InternetNamesMCP
source devsetup.sh          # Creates .venv, activates it, installs dependencies
playwright install chromium # Required for Twitter/X handle checking

Opciones:

  • source devsetup.sh - Configurar el entorno (predeterminado)
  • source devsetup.sh --clean - Eliminar venv y cachés
  • source devsetup.sh --clean --setup - Reconstrucción limpia

Configuración de la clave de API (Desarrollo)

Al ejecutar desde el código fuente, usa el módulo directamente en lugar de uvx:

source devsetup.sh  # Activate environment first

python -m internet_names_mcp --setup       # Configure API keys interactively
python -m internet_names_mcp --show-config # Show current configuration and key source
python -m internet_names_mcp --version     # Show version

Ejecutar pruebas

source devsetup.sh  # Activate environment first

# Main test suites
python test_server.py         # Full test suite - offline validation + online API tests
python test_mcp_interface.py  # Tests via MCP protocol (stdio transport)
python test_rdap_client.py    # Async RDAP client, rate limiter, batch queries

# Comparison/diagnostic tests
python test_methods.py        # Compare RDAP vs NameSilo results for discrepancies
python test_rdap.py           # Quick RDAP-only domain check
Archivo de pruebaDescripción
test_server.pySuite de pruebas principal que cubre todas las herramientas MCP, casos límite y llamadas a API
test_mcp_interface.pyPrueba el servidor mediante el protocolo MCP real a través de stdio
test_rdap_client.pyPrueba el cliente RDAP asíncrono, la limitación de velocidad y las consultas por lotes
test_methods.pyCompara RDAP vs NameSilo para detectar discrepancias de disponibilidad
test_rdap.pyPrueba simple solo con RDAP para comprobaciones rápidas de disponibilidad de dominios

Pruebas interactivas

Usa MCP Inspector para depuración interactiva con una interfaz web:

npx @modelcontextprotocol/inspector .venv/bin/python -m internet_names_mcp

Estructura del proyecto

├── src/internet_names_mcp/
│   ├── __init__.py       # CLI entry point
│   ├── __main__.py       # Module runner
│   ├── server.py         # MCP server
│   ├── config.py         # Configuration management
│   ├── rdap_bootstrap.py # RDAP bootstrap cache
│   └── rdap_client.py    # Async RDAP client
├── pyproject.toml       # Package configuration
└── README.md

Archivos de datos

Caché de bootstrap RDAP - Asigna TLDs a sus servidores RDAP autoritativos (descargado automáticamente de IANA):

  • macOS/Linux: ~/.cache/internet-names-mcp/rdap_bootstrap.json
  • Windows: %APPDATA%/internet-names-mcp/rdap_bootstrap.json

La caché se actualiza automáticamente cuando caduca (TTL predeterminado de 24 h según las cabeceras Cache-Control de IANA).

Solución de problemas

"sherlock no encontrado"

Sherlock se instala automáticamente como dependencia. Si ves este error, reinstala:

uvx --reinstall internet-names-mcp

"playwright no instalado" o errores de Chromium

Instala el navegador Playwright:

playwright install chromium

O con uvx:

uvx --from playwright install chromium

Las comprobaciones de Twitter fallan o agotan el tiempo

Las comprobaciones de Twitter/X utilizan un navegador sin interfaz gráfica que puede ser lento o estar bloqueado. Si las comprobaciones fallan de forma constante, Twitter puede estar limitando la velocidad o bloqueando el acceso automatizado.

Copyright

Copyright (C) 2026 Nuclear Cyborg Corp

Licencia

MIT