Domain Name OSIR MCP

Servidor MCP de nombres de dominio que permite buscar, registrar, renovar, transferir y gestionar dominios, DNS, VPS, correo electrónico y sitios web.

Documentación

Plataforma de Agentes OSIR

Servidores de integración de IA para el registrador de dominios OSIR. Conecta Claude, ChatGPT o cualquier asistente de IA a operaciones reales de dominios, DNS, VPS, facturación y cuentas — ya sea como herramientas individuales (MCP) o como agentes especialistas en resolución de tareas (A2A).

Dos servidores, una biblioteca cliente de backend compartida:

ServidorPuertoProtocoloLo que le ofrece a una IA
Servidor MCP8081Protocolo de Contexto de Modelo (SSE + HTTP Streamable)103 herramientas de grano fino (checkDomainAvailability, registerDomain, createDnsRecord, createMailbox, osirSitePublish, …) + 11 indicaciones guiadas
Servidor A2A8082Google Agent-to-Agent (JSON-RPC 2.0)9 agentes especialistas con 89 habilidades y un orquestador para flujos de trabajo de varios pasos

Usa MCP cuando un asistente deba llamar operaciones individuales. Usa A2A cuando quieras entregar una tarea completa ("configura example.com con DNS y revisa mi saldo") a agentes que coordinan el trabajo.


¿Qué es MCP?

MCP (Protocolo de Contexto de Modelo) es un estándar abierto que conecta asistentes de IA a herramientas y datos externos. Un servidor MCP publica un conjunto de herramientas invocables; cualquier cliente MCP — Claude Desktop, Cursor, Copilot o un agente personalizado — puede descubrirlas e invocarlas. OSIR implementa un servidor MCP diseñado específicamente para la gestión de dominios e infraestructura, lo que lo convierte en un registrador nativo de IA en lugar de uno tradicional con una caja de chat añadida.

Conecta OSIR a Claude

En Claude, abre Configuración → Conectores → Añadir conector personalizado y elige una de las dos configuraciones:

Opción A: Sin inicio de sesión (recomendada)Opción B: OAuth
URL del servidorhttps://be.osir.com/mcp/httphttps://be.osir.com/mcp/oauth
AutenticaciónSin inicio de sesiónIniciar sesión ahora
Cliente OAuth—Usa tu propio cliente OAuth, ID de cliente mcp-client, secreto en blanco
Inicio de sesiónEn el chat, una conversación a la vez (abajo)Inicio de sesión en el navegador al añadir el conector; el conector permanece con la sesión iniciada

Para la Opción B, no elijas "Usar la identidad publicada de Claude" ni "Registrar automáticamente". OSIR no admite ninguna de las dos.

Opción A: el inicio de sesión ocurre dentro de la conversación. La primera vez que tu asistente necesite una herramienta autenticada, inicia un inicio de sesión de dispositivo: recibes un enlace a auth.osir.com y un código corto, lo apruebas en tu navegador y el asistente continúa con una sesión limitada a esa conversación. Las sesiones son deliberadamente de corta duración (expiran después de ~30 minutos de inactividad, 8 horas como máximo) y terminan al instante cuando dices "cierra mi sesión" — así, un chat conectado nunca tiene acceso permanente a tus dominios, servidores y facturación.

La misma URL funciona en cualquier cliente MCP que admita un servidor remoto (HTTP streamable) y pueda gestionar el inicio de sesión de dispositivo dentro del chat.

Nota sobre autoalojamiento: /mcp/oauth siempre requiere OAuth: devuelve 401 con un desafío RFC 9728. El /mcp/http solo con URL necesita MCP_OAUTH_CHALLENGE_ENABLED=false. Si dejas eso en su valor predeterminado (true), cada ruta MCP requiere OAuth. Las duraciones de sesión son ajustables mediante MCP_SESSION_IDLE_MINUTES y MCP_SESSION_MAX_HOURS.

Lo que tu asistente puede hacer

CapacidadEjemplo de solicitud
Buscar disponibilidad"¿Está disponible coolstartup.io y cuánto cuesta?"
Registrar un dominio"Regístralo por dos años con privacidad WHOIS."
Gestionar DNS"Apúntalo a 192.0.2.10 y añade mis registros de correo."
Renovar y transferir"Renueva todo lo que expire en los próximos 30 días."
Aprovisionar un VPS"Levanta un servidor de 2 vCPU en Fráncfort con Ubuntu."
Alojar correo"Activa el correo en example.com y crea info@ con un buzón de 10 GB."

Ejecutar los servidores tú mismo

¿Quieres alojar tu propia instancia o desarrollar contra el código? Requiere Java 21; Gradle está incluido a través del wrapper.

# Run the MCP server (port 8081)
./gradlew :mcp-server:quarkusDev

# Run the A2A server (port 8082)
./gradlew :a2a-server:quarkusDev

Copia .env.example a .env y ajusta si apuntas a tu propio backend/KeyCloak/Ollama. Todo tiene como valor predeterminado los endpoints públicos de OSIR, por lo que los servidores funcionan sin configuración adicional.

Conectar un cliente MCP (Claude Desktop / Claude Code)

Añade a la configuración MCP de tu cliente (p. ej., claude_desktop_config.json):

{
  "mcpServers": {
    "osir": { "url": "http://localhost:8081/mcp/sse" }
  }
}

Reinicia el cliente y aparecerán las herramientas de OSIR. Luego solo pregunta:

"¿Está disponible pizzashqip.al? Si no, sugiere alternativas." "Lista todos mis dominios y muestra cuáles expiran en los próximos 30 días." "Añade un registro A que apunte example.al a 203.0.113.10 y un CNAME para www."

La mayoría de las operaciones requieren autenticación — pide al asistente que "inicie sesión en OSIR usando el flujo de dispositivo" y te guiará a través del OAuth basado en navegador (KeyCloak, RFC 8628).

Llamar al servidor A2A

# Discover the agents
curl http://localhost:8082/.well-known/agents | jq '.[].name'

# Send a task (the platform routes it to the right specialist)
curl -X POST http://localhost:8082/a2a \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -d '{
    "jsonrpc": "2.0", "id": "1", "method": "tasks/send",
    "params": { "message": { "role": "user",
      "parts": [{"type": "text", "text": "Check if example.com is available"}] } }
  }'

Las tareas se transmiten a través de POST /a2a/stream (SSE), admiten flujos de input-required de varios turnos, y el orquestador descompone solicitudes complejas entre agentes (máximo 15 pasos).


Lo que puedes hacer

Dominios — disponibilidad, registro, renovación, transferencia, bloqueo/desbloqueo, renovación automática, privacidad WHOIS, servidores de nombres, sugerencias de nombres impulsadas por IA. DNS — listar/crear/actualizar/eliminar registros. VPS — explorar paquetes y ubicaciones, pedir, gestionar, inicio de sesión en el panel. Facturación — saldo, facturas, pagos, vistas previas de tarifas, precios de dominios. Contactos, Transferencias, Hosts, Registros de auditoría, Cuenta perfil y resumen.

El catálogo completo de herramientas/habilidades, conversaciones de ejemplo y recorridos de principio a fin están en GUIDE.md.

Herramientas

105 herramientas, verificadas contra el servidor en vivo (tools/list en https://be.osir.com/mcp/http).

  • addPrefixToDomain - Genera sugerencias de dominios añadiendo prefijos.
  • addSshKey - Almacena una clave pública SSH en tu cuenta para que pueda inyectarse en instalaciones de VPS.
  • addSuffixToDomain - Genera sugerencias de dominios añadiendo sufijos.
  • buildVpsInstance - Prepara una instalación de sistema operativo en una instancia VPS.
  • bulkDomainSuggestions - Genera sugerencias de nombres de dominio para una o más palabras clave en un conjunto elegido de TLDs.
  • cancelTransfer - Prepara la cancelación de una transferencia de dominio pendiente.
  • changeVpsPaymentTerm - Prepara un cambio del término de pago (ciclo de facturación) para una instancia VPS; confirma con executeConfirmedAction.
  • checkDeviceLoginStatus - Consulta la finalización del inicio de sesión del dispositivo.
  • checkDomainAvailability - Comprueba si un nombre de dominio está disponible para registro, con precio.
  • checkHostAvailability - Comprueba si un nombre de host/registro glue está disponible para creación.
  • checkKeywordAvailability - Comprueba la disponibilidad de palabras clave en todos los TLDs y registros compatibles con resultados detallados.
  • checkKeywordAvailabilitySummary - Comprueba estadísticas resumidas de disponibilidad de palabras clave sin resultados detallados de dominios (más rápido).
  • countMyVpsInstances - Obtiene el recuento total de instancias VPS propiedad del usuario autenticado.
  • createAccount - Crea una nueva cuenta de cliente OSIR.
  • createContact - Crea un nuevo contacto para usar con registros de dominios.
  • createDnsRecord - Crea un nuevo registro DNS para un dominio.
  • createHost - Crea un nuevo registro host/glue (por ejemplo, para servidores de nombres personalizados).
  • createMailbox - Prepara la creación de un buzón de pago en un dominio con correo habilitado.
  • createPaymentSession - Prepara la creación de una sesión de pago de Stripe para añadir fondos al saldo de la cuenta.
  • deleteContact - Prepara la eliminación de un contacto.
  • deleteDnsRecord - Prepara la eliminación de un registro DNS.
  • deleteHost - Prepara la eliminación de un registro host/glue.
  • deleteMailbox - Prepara la eliminación de un buzón.
  • deleteSshKey - Prepara la eliminación de una clave SSH de tu cuenta; confirma con executeConfirmedAction.
  • deleteVpsInstance - Prepara la eliminación/cancelación de una instancia VPS.
  • enableMailDomain - Habilita el alojamiento de correo en un dominio que posees.
  • executeConfirmedAction - Ejecuta una acción destructiva o financiera previamente preparada después de la aprobación del usuario.
  • generateDomainSuggestions - Genera sugerencias de nombres de dominio basadas en palabras clave.
  • getAccountBalance - Obtiene el saldo actual de la cuenta del usuario autenticado.
  • getAccountSummary - Obtiene un resumen completo de la cuenta del usuario: perfil, saldo, número de dominios, número de VPS y transferencias pendientes.
  • getAuthStatus - Comprueba si la sesión actual está autenticada.
  • getContact - Obtiene información detallada sobre un contacto específico.
  • getContactsForDomain - Obtiene todos los contactos (registrante, administrador, técnico, facturación) asignados a un dominio.
  • getDedicatedServerCatalog - Obtiene todas las configuraciones de servidores dedicados disponibles con precios y especificaciones.
  • getDnsRecord - Obtiene los detalles de un registro DNS específico.
  • getDomainAuditTrail - Obtiene el rastro de auditoría (historial de todos los cambios) para un dominio específico.
  • getDomainExtensions - Obtiene todas las extensiones de dominio (TLDs) disponibles con información de precios.
  • getDomainInfo - Obtiene información detallada sobre un dominio, incluida la fecha de expiración, servidores de nombres y estado.
  • getDomainPricing - Obtiene precios para extensiones de dominio del catálogo de productos.
  • getHostingBundle - Obtiene las opciones de alojamiento y precios exactos para un dominio específico: paquetes VPS recomendados (más baratos primero), planes de correo, reenvío web y despliegue de aplicaciones/sitios (las compilaciones son gratuitas; el lanzamiento se ejecuta en un VPS).
  • getHostsForDomain - Lista todos los registros host/glue asociados con un dominio.
  • getInvoiceDetails - Obtiene información detallada sobre una factura específica, incluidos los elementos de línea.
  • getInvoiceStatistics - Obtiene estadísticas resumidas de facturas: total pagado, pendiente, montos vencidos.
  • getMailboxQuote - Obtiene una cotización de precio solo para visualización de un plan de buzón.
  • getMailboxUsage - Obtiene el uso de disco por buzón en bytes, para mostrar la cuota junto con el quotaBytes del plan.
  • getMailDnsRecords - Obtiene los registros DNS que necesita un dominio de correo (MX, SPF, DKIM, ...) - para clientes que gestionan DNS externamente.
  • getMyAuditLogs - Obtiene registros de auditoría recientes para el usuario autenticado en todos los servicios.
  • getMyProfile - Obtiene el perfil del usuario autenticado e información de la cuenta, incluidos nombre, correo electrónico, organización, saldo y recuentos de dominios/VPS.
  • getPaymentTransactions - Obtiene el historial de transacciones de pago para el usuario autenticado.
  • getProductCatalog - Obtiene el catálogo completo de productos, incluidas extensiones de dominio, paquetes VPS y servidores dedicados.
  • getRecentActivity - Obtiene la actividad más reciente en todos los dominios y servicios del usuario.
  • getTransferQuote - Obtiene una cotización de precio de transferencia para un dominio.
  • getTransferStatus - Comprueba el estado actual de una transferencia de dominio.
  • getVpsInstanceDetails - Obtiene información detallada sobre una instancia VPS específica, incluido el uso de recursos.
  • getVpsPackageDetails - Obtiene información detallada sobre un paquete VPS específico, incluidos todos los niveles de precios.
  • initializeDnsZone - Inicializa (crea) la zona DNS para un dominio.
  • initiateTransfer - Prepara el inicio de una transferencia de dominio desde otro registrador.
  • listCategorizedTlds - Lista TLDs del catálogo OSIR que tienen metadatos de categoría y audiencia poblados.
  • listContacts - Lista todos los contactos del usuario autenticado con búsqueda opcional.
  • listDnsRecords - Lista todos los registros DNS para un dominio.
  • listInvoices - Lista facturas para el usuario autenticado con filtrado de estado opcional y paginación.
  • listMailboxes - Lista tus buzones con plan, término de pago, estado y próxima fecha de renovación.
  • listMailDomains - Lista tus dominios habilitados para alojamiento de correo, con estado (PENDING_DNS o ACTIVE) y modo DNS.
  • listMailPlans - Lista los planes de buzón de correo disponibles con cuotas y precios (mensuales y anuales, en céntimos).
  • listMySshKeys - Lista las claves SSH almacenadas en tu cuenta, con sus IDs y huellas SHA256.
  • listMyVpsInstances - Lista todas las instancias VPS propiedad del usuario autenticado.
  • listPendingTransfers - Lista todas las transferencias de dominio entrantes (ganadoras) pendientes.
  • listUserDomains - Lista todos los dominios propiedad del usuario autenticado.
  • listVpsLocations - Lista las ubicaciones de alojamiento VPS disponibles (ciudades/países) con paquetes disponibles.
  • listVpsOsTemplates - Lista las plantillas de sistema operativo disponibles para instalar.
  • listVpsPackages - Lista los paquetes de alojamiento VPS disponibles con precios, especificaciones y ubicaciones.
  • lockDomain - Habilita el bloqueo del registrador en un dominio para prevenir transferencias no autorizadas.
  • loginToVpsPanel - Genera una URL de inicio de sesión de un solo uso para el panel de control VPS (VirtFusion) para gestionar el servidor.
  • loginWithDevice - Inicia un inicio de sesión de autorización de dispositivo (RFC 8628).
  • logout - Cierra sesión: revoca los tokens de la sesión en el proveedor de identidad inmediatamente.
  • orderVps - Prepara un pedido para una nueva instancia VPS.
  • osirAppCreateUpload - Crea un ticket de carga para desplegar el código fuente de una aplicación en Osir.
  • osirAppDelete - Prepara la eliminación de una aplicación Osir.
  • osirAppDeploy - Despliega una aplicación en Osir (nivel gratuito) y obtén una URL HTTPS en vivo; la aplicación se ejecuta aislada en una microVM. Redesplegar una aplicación que se movió al VPS propio del usuario la actualiza allí y conserva su dominio.
  • osirAppGetSource - Obtén una URL de descarga firmada de corta duración para el zip del código fuente actual de una aplicación Osir - úsala para hacer ediciones a una aplicación desplegada sin que el usuario vuelva a adjuntar el proyecto: descarga, parchea los archivos, luego osirAppCreateUpload (PUT del nuevo zip) y osirAppDeploy bajo el MISMO nombre; la plataforma reconstruye y, para aplicaciones de nivel propio, envía automáticamente la nueva versión a la máquina del usuario.
  • osirAppList - Lista las aplicaciones Osir desplegadas del usuario autenticado con sus URLs en vivo y estado.
  • osirAppLogs - Obtén registros recientes de la microVM de una aplicación Osir ('¿por qué mi aplicación está rota?').
  • osirAppDeployToVps - Despliega una aplicación Osir en vivo en un VPS que el usuario posee, sacándola del nivel gratuito compartido: adjunta una que ya tenga (instanceId, sin gasto) o pide una (packageId, con aprobación). La plataforma envía la aplicación a través de su propia clave de despliegue - nunca SSH, nunca un script de instalación.
  • osirAppProvisionDatabase - Aprovisiona una base de datos Postgres gestionada para una aplicación Osir.
  • osirAppSetSecret - Establece un secreto de entorno para una aplicación Osir (por ejemplo,
  • osirAppStatus - Obtén el estado actual de una aplicación Osir, URL en vivo y salud ('¿mi aplicación está funcionando?').
  • osirSiteDesignBrief - Paso 1 de diseñar un sitio web con OSIR.
  • osirSitePublish - Publica un sitio web de una sola página en una URL HTTPS en vivo en Osir (nivel gratuito) - CUALQUIER documento HTML completo funciona: el sitio propio del usuario, una página diseñada en este chat, o una del flujo osirSiteDesignBrief. Republicar un sitio que se movió al VPS propio del usuario lo actualiza allí.
  • payInvoice - Prepara el pago de una factura pendiente desde el saldo de la cuenta.
  • previewPaymentFees - Previsualiza las tarifas que se cobrarían por un monto de pago dado.
  • registerDomain - Prepara el registro de un nuevo nombre de dominio.
  • renewDomain - Prepara la renovación de un dominio por un número especificado de años.
  • setMailboxPassword - Establece una nueva contraseña en un buzón.
  • spinDomainWords - Genera sugerencias de dominios girando/reemplazando palabras.
  • suggestAlternatives - Sugiere nombres de dominio alternativos si el solicitado no está disponible (método heredado).
  • transferDomain - Prepara la transferencia de un dominio desde otro registrador a OSIR.
  • unlockDomain - Prepara la eliminación del bloqueo del registrador de un dominio para permitir transferencias.
  • updateContact - Actualiza la información de un contacto existente.
  • updateDnsRecord - Actualiza un registro DNS existente.
  • updateDomainAutoRenew - Habilita o deshabilita la renovación automática para un dominio.
  • updateDomainPrivacy - Habilita o deshabilita la protección de privacidad WHOIS para un dominio.
  • updateNameservers - Actualiza los servidores de nombres para un dominio.
  • validateDomainName - Valida si el formato de un nombre de dominio es correcto.
  • verifyAccount - Verifica una cuenta OSIR recién creada con el código del correo de verificación - paso 2 de incorporación, no se requiere autenticación.
  • verifyMailDns - Comprueba que los registros DNS de un dominio de correo se resuelven; activa el dominio para correo cuando se encuentran todos los registros.

Compilar, probar, desplegar

./gradlew build        # build all modules + run tests
./gradlew test         # tests only

docker-compose up -d   # run both servers in containers

El docker-compose.yml, build-and-deploy.bat proporcionados, y el flujo de trabajo CI hacen referencia a un registro de contenedores de marcador de posición (registry.example.com) — apúntalos al tuyo propio. Consulta DEPLOYMENT.md para la lista de verificación de producción (PostgreSQL, TLS, escalado).

Configuración

Todas las configuraciones son variables de entorno con valores predeterminados sensatos — nada secreto está comprometido.

VariablePredeterminadoDescripción
OSIR_BACKEND_URLhttps://be.osir.comAPI de backend
KEYCLOAK_URLhttps://auth.osir.comServidor de autenticación KeyCloak
KEYCLOAK_REALMosirRealm de KeyCloak
KEYCLOAK_CLIENT_IDosir-cliID de cliente OAuth
OLLAMA_URLhttp://localhost:11434Ollama LLM (interfaz de chat MCP)
CORS_ORIGINShttps://osir.com,…Orígenes CORS permitidos
A2A_SIGNING_SECRET(vacío)Firma de solicitudes HMAC-SHA256 opcional

Consulta .env.example para la lista completa.

Estructura del proyecto

common/      Shared library — 12 services, 9 REST clients, ~174 models
mcp-server/  Quarkus MCP server — 105 tools, 11 prompts, 2 resources, chat UI
a2a-server/  Quarkus A2A server — 9 agents, 89 skills, JSON-RPC, JPA task persistence

Ambos servidores dependen de common, por lo que una operación de backend se implementa una vez y se expone de dos maneras.

Documentación

  • GUIDE.md — guía de uso completa, referencia de herramientas, tutoriales
  • WEBSITE-DESIGN.md — diseño web con IA: guía del cliente, casos de uso, integración frontend
  • DEVELOPING.md — estructura del repositorio, comandos de compilación/ejecución, notas de arquitectura
  • VPS-OS-BUILD.md — cómo pedir un VPS con un sistema operativo, claves SSH, reinstalación y el flujo de IMPLEMENTACIÓN DE LA APP OSIR. Léelo antes de tocar las herramientas de VPS: pedir y construir son dos pasos separados de VirtFusion, y orderVps por sí solo entrega un servidor sin sistema operativo.
  • A2A-API-REFERENCE.md — especificación del protocolo A2A (métodos, errores, agentes)
  • A2A-ARCHITECTURE.md — documento de diseño de A2A
  • A2A-CONFIRMATION-GATE-SPEC.md — preparación de operaciones destructivas detrás de executeConfirmedAction
  • DEPLOYMENT.md — lista de verificación para el despliegue en producción

Licencia

Licencia Apache 2.0.