Domain Name OSIR MCP
Servidor MCP de Nomes de Domínio que permite pesquisar, registrar, renovar, transferir e gerenciar domínios, DNS, VPS, e-mail e sites.
Documentação
Plataforma OSIR Agent
Servidores de integração de IA para o registrador de domínios OSIR. Conecte Claude, ChatGPT ou qualquer assistente de IA a operações reais de domínio, DNS, VPS, cobrança e conta — seja como ferramentas individuais (MCP) ou como agentes especialistas em resolução de tarefas (A2A).
Dois servidores, uma biblioteca de cliente de backend compartilhada:
| Servidor | Porta | Protocolo | O que oferece a uma IA |
|---|---|---|---|
| Servidor MCP | 8081 | Model Context Protocol (SSE + Streamable HTTP) | 103 ferramentas de granularidade fina (checkDomainAvailability, registerDomain, createDnsRecord, createMailbox, osirSitePublish, …) + 11 prompts guiados |
| Servidor A2A | 8082 | Google Agent-to-Agent (JSON-RPC 2.0) | 9 agentes especialistas com 89 habilidades e um orquestrador para fluxos de trabalho de várias etapas |
Use MCP quando um assistente deve chamar operações individuais. Use A2A quando quiser entregar uma tarefa completa ("configure example.com com DNS e verifique meu saldo") a agentes que coordenam o trabalho.
O que é MCP?
MCP (Model Context Protocol) é um padrão aberto que conecta assistentes de IA a ferramentas e dados externos. Um servidor MCP publica um conjunto de ferramentas chamáveis; qualquer cliente MCP — Claude Desktop, Cursor, Copilot ou um agente personalizado — pode descobri-las e invocá-las. O OSIR implementa um servidor MCP projetado especificamente para gerenciamento de domínios e infraestrutura, o que o torna um registrador nativo de IA, em vez de um tradicional com uma caixa de chat acoplada.
Conecte o OSIR ao Claude
No Claude, abra Configurações → Conectores → Adicionar conector personalizado e escolha uma das duas configurações:
| Opção A: Sem login (recomendada) | Opção B: OAuth | |
|---|---|---|
| URL do servidor | https://be.osir.com/mcp/http | https://be.osir.com/mcp/oauth |
| Autenticação | Sem login | Entrar agora |
| Cliente OAuth | — | Use seu próprio cliente OAuth, Client ID mcp-client, segredo em branco |
| Login | No chat, uma conversa por vez (abaixo) | Login no navegador ao adicionar o conector; o conector permanece conectado |
Para a Opção B, não escolha "Usar a identidade publicada do Claude" nem "Registrar automaticamente". O OSIR não suporta nenhuma das duas.
Opção A: o login acontece dentro da conversa. Na primeira vez que seu assistente precisar de uma
ferramenta autenticada, ele inicia um login de dispositivo: você recebe um link para auth.osir.com e um código curto,
aprova no navegador e o assistente continua com uma sessão limitada àquela
conversa. As sessões são deliberadamente de curta duração (expiram após ~30 minutos de inatividade,
8 horas no máximo) e terminam instantaneamente quando você diz "faça logout" — portanto, um chat conectado nunca
mantém acesso permanente aos seus domínios, servidores e cobrança.
A mesma URL funciona em qualquer cliente MCP que suporte um servidor remoto (streamable HTTP) e possa conduzir o login de dispositivo no chat.
Nota sobre auto-hospedagem:
/mcp/oauthsempre exige OAuth: ele retorna401com um desafio RFC 9728. O/mcp/httpsomente com URL precisa deMCP_OAUTH_CHALLENGE_ENABLED=false. Se você deixar isso no padrão (true), todo caminho MCP exige OAuth. Os tempos de vida das sessões são ajustáveis viaMCP_SESSION_IDLE_MINUTESeMCP_SESSION_MAX_HOURS.
O que seu assistente pode fazer
| Capacidade | Exemplo de solicitação |
|---|---|
| Pesquisar disponibilidade | "O coolstartup.io está disponível e quanto custa?" |
| Registrar um domínio | "Registre por dois anos com privacidade WHOIS." |
| Gerenciar DNS | "Aponte para 192.0.2.10 e adicione meus registros de e-mail." |
| Renovar e transferir | "Renove tudo que expira nos próximos 30 dias." |
| Provisionar um VPS | "Crie um servidor com 2 vCPUs em Frankfurt rodando Ubuntu." |
| Hospedar e-mail | "Ative o e-mail em example.com e crie info@ com uma caixa de 10 GB." |
Executando os servidores você mesmo
Quer hospedar sua própria instância ou desenvolver com o código? Requer Java 21; o Gradle é incluído via wrapper.
# Run the MCP server (port 8081)
./gradlew :mcp-server:quarkusDev
# Run the A2A server (port 8082)
./gradlew :a2a-server:quarkusDev
Copie .env.example para .env e ajuste se estiver apontando para seu próprio backend/KeyCloak/Ollama.
Tudo usa como padrão os endpoints públicos do OSIR, então os servidores funcionam imediatamente.
Conecte um cliente MCP (Claude Desktop / Claude Code)
Adicione à configuração MCP do seu cliente (ex.: claude_desktop_config.json):
{
"mcpServers": {
"osir": { "url": "http://localhost:8081/mcp/sse" }
}
}
Reinicie o cliente e as ferramentas do OSIR aparecem. Depois é só perguntar:
"O pizzashqip.al está disponível? Se não, sugira alternativas." "Liste todos os meus domínios e mostre quais expiram nos próximos 30 dias." "Adicione um registro A apontando example.al para 203.0.113.10 e um CNAME para www."
A maioria das operações exige autenticação — peça ao assistente para "fazer login no OSIR usando o fluxo de dispositivo" e ele o guiará pelo OAuth baseado em navegador (KeyCloak, RFC 8628).
Chame o 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"}] } }
}'
As tarefas são transmitidas via POST /a2a/stream (SSE), suportam fluxos de múltiplas interações input-required e o
orquestrador decompõe solicitações complexas entre agentes (máx. 15 etapas).
O que você pode fazer
Domínios — disponibilidade, registro, renovação, transferência, bloqueio/desbloqueio, renovação automática, privacidade WHOIS, servidores de nomes, sugestões de nomes com IA. DNS — listar/criar/atualizar/excluir registros. VPS — navegar por pacotes e locais, pedir, gerenciar, login no painel. Cobrança — saldo, faturas, pagamentos, prévias de taxas, preços de domínios. Contatos, Transferências, Hosts, Logs de auditoria, Conta perfil e resumo.
Catálogo completo de ferramentas/habilidades, exemplos de conversas e tutoriais de ponta a ponta estão em GUIDE.md.
Ferramentas
105 ferramentas, verificadas no servidor ativo (tools/list em https://be.osir.com/mcp/http).
- addPrefixToDomain - Gere sugestões de domínio adicionando prefixos.
- addSshKey - Armazene uma chave pública SSH na sua conta para que ela possa ser injetada em instalações de VPS.
- addSuffixToDomain - Gere sugestões de domínio adicionando sufixos.
- buildVpsInstance - Prepare uma instalação de sistema operacional em uma instância VPS.
- bulkDomainSuggestions - Gere sugestões de nomes de domínio para uma ou mais palavras-chave em um conjunto escolhido de TLDs.
- cancelTransfer - Prepare o cancelamento de uma transferência de domínio pendente.
- changeVpsPaymentTerm - Prepare uma alteração do prazo de pagamento (ciclo de cobrança) para uma instância VPS; confirme com
executeConfirmedAction. - checkDeviceLoginStatus - Verifique a conclusão do login do dispositivo.
- checkDomainAvailability - Verifique se um nome de domínio está disponível para registro, com preço.
- checkHostAvailability - Verifique se um nome de host/registro de cola (glue) está disponível para criação.
- checkKeywordAvailability - Verifique a disponibilidade de palavras-chave em todos os TLDs e registros suportados com resultados detalhados.
- checkKeywordAvailabilitySummary - Verifique estatísticas resumidas de disponibilidade de palavras-chave sem resultados detalhados de domínio (mais rápido).
- countMyVpsInstances - Obtenha o número total de instâncias VPS pertencentes ao usuário autenticado.
- createAccount - Crie uma nova conta de cliente OSIR.
- createContact - Crie um novo contato para uso com registros de domínio.
- createDnsRecord - Crie um novo registro DNS para um domínio.
- createHost - Crie um novo registro de host/cola (glue) (por exemplo, para nameservers personalizados).
- createMailbox - Prepare a criação de uma caixa de correio paga em um domínio habilitado para e-mail.
- createPaymentSession - Prepare a criação de uma sessão de checkout de pagamento Stripe para adicionar fundos ao saldo da conta.
- deleteContact - Prepare a exclusão de um contato.
- deleteDnsRecord - Prepare a exclusão de um registro DNS.
- deleteHost - Prepare a exclusão de um registro de host/cola (glue).
- deleteMailbox - Prepare a exclusão de uma caixa de correio.
- deleteSshKey - Prepare a remoção de uma chave SSH da sua conta; confirme com
executeConfirmedAction. - deleteVpsInstance - Prepare a exclusão/cancelamento de uma instância VPS.
- enableMailDomain - Habilite a hospedagem de e-mail em um domínio que você possui.
- executeConfirmedAction - Execute uma ação destrutiva ou financeira previamente preparada após a aprovação do usuário.
- generateDomainSuggestions - Gere sugestões de nomes de domínio com base em palavras-chave.
- getAccountBalance - Obtenha o saldo atual da conta do usuário autenticado.
- getAccountSummary - Obtenha um resumo abrangente da conta do usuário: perfil, saldo, número de domínios, número de VPS e transferências pendentes.
- getAuthStatus - Verifique se a sessão atual está autenticada.
- getContact - Obtenha informações detalhadas sobre um contato específico.
- getContactsForDomain - Obtenha todos os contatos (registrante, admin, técnico, cobrança) atribuídos a um domínio.
- getDedicatedServerCatalog - Obtenha todas as configurações disponíveis de servidores dedicados com preços e especificações.
- getDnsRecord - Obtenha detalhes de um registro DNS específico.
- getDomainAuditTrail - Obtenha a trilha de auditoria (histórico de todas as alterações) para um domínio específico.
- getDomainExtensions - Obtenha todas as extensões de domínio disponíveis (TLDs) com informações de preço.
- getDomainInfo - Obtenha informações detalhadas sobre um domínio, incluindo data de expiração, nameservers e status.
- getDomainPricing - Obtenha preços para extensões de domínio do catálogo de produtos.
- getHostingBundle - Obtenha as opções de hospedagem e preços exatos para um domínio específico: pacotes VPS recomendados (mais baratos primeiro), planos de e-mail, encaminhamento web e implantação de aplicativos/sites (builds são gratuitos; a publicação é executada em um VPS).
- getHostsForDomain - Liste todos os registros de host/cola (glue) associados a um domínio.
- getInvoiceDetails - Obtenha informações detalhadas sobre uma fatura específica, incluindo itens de linha.
- getInvoiceStatistics - Obtenha estatísticas resumidas de faturas: valores totais pagos, pendentes e em atraso.
- getMailboxQuote - Obtenha uma cotação de preço apenas para exibição de um plano de caixa de correio.
- getMailboxUsage - Obtenha o uso de disco por caixa de correio em bytes, para exibição de cota junto com o quotaBytes do plano.
- getMailDnsRecords - Obtenha os registros DNS que um domínio de e-mail precisa (MX, SPF, DKIM, ...) - para clientes que gerenciam DNS externamente.
- getMyAuditLogs - Obtenha logs de auditoria recentes do usuário autenticado em todos os serviços.
- getMyProfile - Obtenha o perfil e as informações da conta do usuário autenticado, incluindo nome, e-mail, organização, saldo e contagens de domínios/VPS.
- getPaymentTransactions - Obtenha o histórico de transações de pagamento do usuário autenticado.
- getProductCatalog - Obtenha o catálogo completo de produtos, incluindo extensões de domínio, pacotes VPS e servidores dedicados.
- getRecentActivity - Obtenha a atividade mais recente em todos os domínios e serviços do usuário.
- getTransferQuote - Obtenha uma cotação de preço de transferência para um domínio.
- getTransferStatus - Verifique o status atual de uma transferência de domínio.
- getVpsInstanceDetails - Obtenha informações detalhadas sobre uma instância VPS específica, incluindo uso de recursos.
- getVpsPackageDetails - Obtenha informações detalhadas sobre um pacote VPS específico, incluindo todos os níveis de preço.
- initializeDnsZone - Inicialize (crie) a zona DNS para um domínio.
- initiateTransfer - Prepare o início de uma transferência de domínio de outro registrador.
- listCategorizedTlds - Liste TLDs do catálogo OSIR que possuem metadados de categoria e público preenchidos.
- listContacts - Liste todos os contatos do usuário autenticado com pesquisa opcional.
- listDnsRecords - Liste todos os registros DNS de um domínio.
- listInvoices - Liste faturas do usuário autenticado com filtragem de status opcional e paginação.
- listMailboxes - Liste suas caixas de correio com plano, prazo de pagamento, status e próxima data de renovação.
- listMailDomains - Liste seus domínios habilitados para hospedagem de e-mail, com status (PENDING_DNS ou ACTIVE) e modo DNS.
- listMailPlans - Liste os planos de caixa de correio de e-mail disponíveis com cotas e preços (mensais e anuais, em centavos).
- listMySshKeys - Liste as chaves SSH armazenadas na sua conta, com seus IDs e impressões digitais SHA256.
- listMyVpsInstances - Liste todas as instâncias VPS pertencentes ao usuário autenticado.
- listPendingTransfers - Liste todas as transferências de domínio recebidas (ganhadoras) pendentes.
- listUserDomains - Liste todos os domínios pertencentes ao usuário autenticado.
- listVpsLocations - Liste os locais de hospedagem VPS disponíveis (cidades/países) com pacotes disponíveis.
- listVpsOsTemplates - Liste os modelos de sistema operacional disponíveis para instalação.
- listVpsPackages - Liste os pacotes de hospedagem VPS disponíveis com preços, especificações e locais.
- lockDomain - Ative o bloqueio do registrador em um domínio para evitar transferências não autorizadas.
- loginToVpsPanel - Gere uma URL de login única para o painel de controle VPS (VirtFusion) para gerenciar o servidor.
- loginWithDevice - Inicie um login de autorização de dispositivo (RFC 8628).
- logout - Faça logout: revoga os tokens da sessão no provedor de identidade imediatamente.
- orderVps - Prepare um pedido para uma nova instância VPS.
- osirAppCreateUpload - Crie um ticket de upload para implantar o código-fonte do aplicativo no Osir.
- osirAppDelete - Prepare a exclusão de um aplicativo Osir.
- osirAppDeploy - Implante um aplicativo no Osir (nível gratuito) e obtenha uma URL HTTPS ativa; o aplicativo é executado isolado em uma microVM. Reimplantar um aplicativo que foi movido para o VPS do próprio usuário o atualiza lá e mantém seu domínio.
- osirAppGetSource - Obtenha uma URL de download assinada de curta duração para o zip do código-fonte atual de um aplicativo Osir - use isso para fazer edições em um aplicativo implantado sem que o usuário reanexe o projeto: baixe, aplique patches nos arquivos, depois osirAppCreateUpload (FAÇA PUT do novo zip) e osirAppDeploy com o MESMO nome; a plataforma reconstrói e, para aplicativos de nível próprio, envia automaticamente a nova versão para a máquina do usuário.
- osirAppList - Liste os aplicativos Osir implantados do usuário autenticado com suas URLs ativas e status.
- osirAppLogs - Obtenha logs recentes da microVM de um aplicativo Osir ('por que meu aplicativo está quebrado?').
- osirAppDeployToVps - Implante um aplicativo Osir ativo em um VPS que o usuário possui, movendo-o do nível gratuito compartilhado: anexe um que ele já tenha (instanceId, sem custo) ou peça um novo (packageId, com aprovação). A plataforma envia o aplicativo por sua própria chave de implantação - nunca SSH, nunca um script de instalação.
- osirAppProvisionDatabase - Provisione um banco de dados Postgres gerenciado para um aplicativo Osir.
- osirAppSetSecret - Defina um segredo de ambiente para um aplicativo Osir (por exemplo,
- osirAppStatus - Obtenha o status atual, URL ativa e saúde de um aplicativo Osir ('meu aplicativo está funcionando?').
- osirSiteDesignBrief - Etapa 1 do design de um site com OSIR.
- osirSitePublish - Publique um site de página única em uma URL HTTPS ativa no Osir (nível gratuito) - QUALQUER documento HTML completo funciona: o site do próprio usuário, uma página projetada neste chat ou uma do fluxo osirSiteDesignBrief. Republicar um site que foi movido para o VPS do próprio usuário o atualiza lá.
- payInvoice - Prepare o pagamento de uma fatura pendente a partir do saldo da conta.
- previewPaymentFees - Visualize as taxas que seriam cobradas para um determinado valor de pagamento.
- registerDomain - Prepare o registro de um novo nome de domínio.
- renewDomain - Prepare a renovação de um domínio por um número especificado de anos.
- setMailboxPassword - Defina uma nova senha em uma caixa de correio.
- spinDomainWords - Gere sugestões de domínio girando/substituindo palavras.
- suggestAlternatives - Sugira nomes de domínio alternativos se o solicitado não estiver disponível (método legado).
- transferDomain - Prepare a transferência de um domínio de outro registrador para a OSIR.
- unlockDomain - Prepare a remoção do bloqueio do registrador de um domínio para permitir transferências.
- updateContact - Atualize as informações de um contato existente.
- updateDnsRecord - Atualize um registro DNS existente.
- updateDomainAutoRenew - Ative ou desative a renovação automática de um domínio.
- updateDomainPrivacy - Ative ou desative a proteção de privacidade WHOIS para um domínio.
- updateNameservers - Atualize os nameservers de um domínio.
- validateDomainName - Valide se o formato de um nome de domínio está correto.
- verifyAccount - Verifique uma conta OSIR recém-criada com o código do e-mail de verificação - etapa 2 do onboarding, sem necessidade de autenticação.
- verifyMailDns - Verifique se os registros DNS de um domínio de e-mail resolvem; ativa o domínio para e-mail quando todos os registros são encontrados.
Build, teste, implantação
./gradlew build # build all modules + run tests
./gradlew test # tests only
docker-compose up -d # run both servers in containers
O docker-compose.yml, o build-and-deploy.bat e o fluxo de trabalho de CI fornecidos referenciam um
registro de contêiner de espaço reservado (registry.example.com) — aponte-os para o seu próprio.
Consulte DEPLOYMENT.md para a lista de verificação de produção (PostgreSQL, TLS, escalabilidade).
Configuração
Todas as configurações são variáveis de ambiente com padrões sensatos — nada secreto é commitado.
| Variável | Padrão | Descrição |
|---|---|---|
OSIR_BACKEND_URL | https://be.osir.com | API de backend |
KEYCLOAK_URL | https://auth.osir.com | Servidor de autenticação KeyCloak |
KEYCLOAK_REALM | osir | Realm do KeyCloak |
KEYCLOAK_CLIENT_ID | osir-cli | ID do cliente OAuth |
OLLAMA_URL | http://localhost:11434 | Ollama LLM (interface de chat MCP) |
CORS_ORIGINS | https://osir.com,… | Origens CORS permitidas |
A2A_SIGNING_SECRET | (vazio) | Assinatura de solicitação HMAC-SHA256 opcional |
Consulte .env.example para a lista completa.
Estrutura do projeto
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 os servidores dependem de common, portanto, uma operação de backend é implementada uma vez e exposta de duas maneiras.
Documentação
- GUIDE.md — guia de uso completo, referência de ferramentas, tutoriais passo a passo
- WEBSITE-DESIGN.md — design de sites com IA: guia do cliente, casos de uso, integração frontend
- DEVELOPING.md — estrutura do repositório, comandos de build/execução, notas de arquitetura
- VPS-OS-BUILD.md — como contratar um VPS com um sistema operacional, chaves SSH, reinstalação e
o fluxo OSIR APP DEPLOY. Leia isto antes de usar as ferramentas de VPS: contratar e construir são duas
etapas separadas no VirtFusion, e
orderVpssozinho entrega um servidor sem sistema operacional. - A2A-API-REFERENCE.md — especificação do protocolo A2A (métodos, erros, agentes)
- A2A-ARCHITECTURE.md — documento de design do A2A
- A2A-CONFIRMATION-GATE-SPEC.md — preparação de operações destrutivas
atrás de
executeConfirmedAction - DEPLOYMENT.md — checklist de implantação em produção