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:
| Servidor | Puerto | Protocolo | Lo que le ofrece a una IA |
|---|---|---|---|
| Servidor MCP | 8081 | Protocolo de Contexto de Modelo (SSE + HTTP Streamable) | 103 herramientas de grano fino (checkDomainAvailability, registerDomain, createDnsRecord, createMailbox, osirSitePublish, …) + 11 indicaciones guiadas |
| Servidor A2A | 8082 | Google 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 servidor | https://be.osir.com/mcp/http | https://be.osir.com/mcp/oauth |
| Autenticación | Sin inicio de sesión | Iniciar sesión ahora |
| Cliente OAuth | — | Usa tu propio cliente OAuth, ID de cliente mcp-client, secreto en blanco |
| Inicio de sesión | En 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/oauthsiempre requiere OAuth: devuelve401con un desafío RFC 9728. El/mcp/httpsolo con URL necesitaMCP_OAUTH_CHALLENGE_ENABLED=false. Si dejas eso en su valor predeterminado (true), cada ruta MCP requiere OAuth. Las duraciones de sesión son ajustables medianteMCP_SESSION_IDLE_MINUTESyMCP_SESSION_MAX_HOURS.
Lo que tu asistente puede hacer
| Capacidad | Ejemplo 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.
| Variable | Predeterminado | Descripción |
|---|---|---|
OSIR_BACKEND_URL | https://be.osir.com | API de backend |
KEYCLOAK_URL | https://auth.osir.com | Servidor de autenticación KeyCloak |
KEYCLOAK_REALM | osir | Realm de KeyCloak |
KEYCLOAK_CLIENT_ID | osir-cli | ID de cliente OAuth |
OLLAMA_URL | http://localhost:11434 | Ollama LLM (interfaz de chat MCP) |
CORS_ORIGINS | https://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
orderVpspor 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