eurodns-mcp
Um servidor Model Context Protocol para a API de Usuário da EuroDNS — domínios, zonas DNS, contatos, assinaturas, SSL, faturas e pedidos.
Documentação
eurodns-mcp
Gerencie seus domínios, zonas de DNS e assinaturas apenas pedindo.
Um servidor Model Context Protocol para a API de Usuário da EuroDNS — domínios, zonas de DNS, contatos, assinaturas, SSL, faturas e pedidos.
Este é um projeto open-source independente. Ele não é afiliado, endossado ou suportado pela EuroDNS. "EuroDNS" é usado apenas para identificar a API com a qual este servidor se comunica.
Escrito por um engenheiro profissional com assistência de IA. Cada linha foi revisada antes de ser commitada, e a responsabilidade pelo que ela faz é humana.
O que você obtém
- Cobertura completa da API em 36 ferramentas — cada uma das 79 operações da API, com cada par de listar/obter, par de criar/atualizar perfil, alternância liga/desliga e leitura por produto agrupados em uma ferramenta; 55 ferramentas uma vez que cobrança e operações irreversíveis são habilitadas.
- Cada ferramenta e argumento descrito para o modelo que os lê: o que faz e retorna, quando preferir sua vizinha e quando não, o que faz que as anotações não podem dizer, de onde vem um id. Um teste mantém toda a superfície sob controle, e um fluxo de trabalho executa o próprio linter dos registros sobre ela.
- Três ferramentas de fluxo de trabalho de DNS que tornam as edições de registros seguras, porque salvar uma zona a substitui.
- Proteções para que uma implantação possa recusar operações que gastam dinheiro ou destroem coisas.
- Quatro prompts para os fluxos de trabalho que valem a pena nomear, e dois recursos: o portfólio, navegável, e um que diz o que esta implantação permite — incluindo por que uma ferramenta que você esperava não está na lista.
- Dois transportes —
stdiopara um cliente local, HTTP transmissível para uma implantação compartilhada. - Ambas as eras de protocolo em um único endpoint — fala a revisão de 2026-07-28 nativamente e ainda atende clientes da era 2025, que são a maioria hoje.
- OAuth 2.1 ou um token compartilhado em HTTP, com uma linha de auditoria por chamada.
- Histórico consultável — pergunte ao servidor o que foi feito, e por quem.
- 1Password Connect como fonte opcional para qualquer segredo que ele lê.
Como funciona
flowchart TD
client(["MCP client"])
client -->|stdio| registry
client -->|streamable HTTP| origin
subgraph http ["HTTP transport only"]
origin["Origin check"] --> bearer["Bearer token<br/>OAuth 2.1 or shared secret"]
bearer --> scopes["Scope gate"]
end
scopes --> registry["Tool registry"]
registry --> guard{"Guardrails<br/>read-only, billing, destructive"}
guard -->|refused| deny["Error naming the setting to change"]
guard -->|allowed| api[("EuroDNS User API")]
op[("1Password Connect")] -.->|"op:// refs, at startup"| creds["Credentials"]
creds -.-> api
registry -.-> log[("Audit log")]
guard -.-> log
log -.->|eurodns_audit_query| client
Duas coisas valem a pena ler nesse diagrama. A autorização tem dois portões independentes — o que a implantação permite em geral, depois o que os escopos do chamador permitem dentro disso. E o log de auditoria é alimentado por todos os caminhos, incluindo recusas, porque a API upstream autentica cada chamador com uma chave compartilhada e não pode atribuir nada por conta própria.
Requisitos
- Node.js 22 ou mais recente. O Node 20 atingiu o fim da vida útil em 30 de abril de 2026 e não recebe patches de segurança; a imagem do contêiner executa o Node 24, o LTS ativo.
- Credenciais da API EuroDNS: um ID de Aplicação e uma chave de API, criados no painel da EuroDNS em acesso à API.
- O IP público da máquina que executa este servidor deve estar na lista de permissões no mesmo
painel. Um
403da API é quase sempre uma entrada ausente na lista de permissões, não credenciais inválidas.
Início rápido
Para um cliente que inicia o servidor por conta própria, como o Claude Desktop:
{
"mcpServers": {
"eurodns": {
"command": "npx",
"args": ["-y", "@jigsawfr/eurodns-mcp"],
"env": {
"EURODNS_APP_ID": "your-application-id",
"EURODNS_API_KEY": "your-api-key"
}
}
}
}
Para testar em um terminal primeiro:
npx -y @jigsawfr/eurodns-mcp
Sem credenciais, ele ainda inicia, lista cada ferramenta, prompt e recurso, e recusa cada
chamada com uma mensagem nomeando as duas variáveis — então um marketplace, ou
npx @modelcontextprotocol/inspector, pode mostrar a superfície antes de você ter uma chave.
O pacote inclui dois comandos: eurodns-mcp para stdio, que é o acima, e
eurodns-mcp-http para o transporte HTTP — acessível como
npx -p @jigsawfr/eurodns-mcp eurodns-mcp-http.
Para uma implantação compartilhada em HTTP, use o contêiner — veja Implantação.
Tente não colocar a chave de API no arquivo de configuração do cliente: Segredos mostra duas maneiras de contornar isso.
O que você pode pedir
| Pergunta | Ferramenta que ele usa |
|---|---|
| "Quais registros DNS example.com tem?" | eurodns_dns_get_zone |
"Adicione um registro TXT _acme-challenge em example.com" | eurodns_dns_upsert_record |
| "O que mudaria se eu apontasse www para 203.0.113.10?" | eurodns_dns_diff_zone |
| "example.lu está disponível?" | eurodns_domain_check_availability |
| "Quais dos meus domínios têm DNSSEC habilitado?" | eurodns_domain_get |
| "Quando este certificado SSL expira?" | eurodns_subscription_get |
| "Qual é meu saldo pré-pago?" | eurodns_account_get_prepaid_balance |
| "O que eu mudei na semana passada?" | eurodns_audit_query |
| "O que foi recusado, e por quê?" | eurodns_audit_query |
Documentação
| Página | O que cobre |
|---|---|
| Ferramentas | Todas as 55 ferramentas, as operações que agrupam, os prompts e os recursos |
| Proteções | Classes de risco, o que uma implantação pode proibir, confirmação antes de uma chamada |
| Configuração | Cada variável de ambiente, com seu padrão |
| Transporte HTTP | Atender vários clientes, tokens estáticos, OAuth 2.1 e escopos |
| Segredos | Manter a chave de API fora da configuração do cliente, e 1Password Connect |
| Log de auditoria | O que é registrado, a cadeia de hash, perguntar ao servidor o que aconteceu |
| Entra ID | OAuth passo a passo com Microsoft Entra ID, e suas armadilhas |
| Implantação | Contêineres, Fly.io, Render, Railway, e envio do log para um SIEM |
| Protocolo | Quais revisões do MCP são faladas, e como ambas são atendidas em um endpoint |
| Desenvolvimento | Compilação, testes, a superfície de ferramentas gerada, e como os lançamentos funcionam |
Implantação
cp .env.example .env # credentials, plus a token: openssl rand -hex 32
docker compose up -d
curl localhost:3000/healthz
Imagens publicadas estão em ghcr.io/jigsawfr/eurodns-mcp, construídas para linux/amd64 e
linux/arm64 com uma atestação de proveniência de build.
Duas coisas decidem onde isso roda, e nenhuma é o argumento usual de latência ou preço:
- A API EuroDNS filtra por IP de origem, então o host precisa te dar um endereço de saída estável — idealmente dedicado. Um IP compartilhado com outros locatários mantém o mecanismo e perde a proteção.
- A ferramenta de consulta de histórico lê um arquivo, então o host precisa de um disco persistente. Isso descarta plataformas com sistema de arquivos efêmero.
Em ambos os pontos, o Fly.io sai na frente, a alguns dólares por mês para um IPv4 dedicado
contra aproximadamente $100 em outros lugares. deploy/ tem o detalhe por plataforma,
fly.toml e render.yaml prontos, e a comparação completa.
Uma configuração pega todo mundo uma vez: dentro de um contêiner, o servidor escuta em 0.0.0.0, e
recusa iniciar em um endereço não-loopback sem autenticação. Defina
EURODNS_MCP_AUTH para token ou oauth.
Qual dos dois
A escolha não é sobre o quão seguro você quer ser — ambos são — mas sobre se os chamadores precisam de identidades separadas, e tem um custo que você deve ver chegando.
token é um segredo compartilhado em um cabeçalho. Funciona em um minuto, não precisa de nada além do
servidor, e é a resposta certa para uma implantação usada por uma pessoa. O que você abre mão é
atribuição: o log de auditoria registra um rótulo, então pode te dizer que uma chamada destrutiva aconteceu, mas não
quem a fez.
oauth dá a cada pessoa sua própria credencial, permite que os cinco escopos decidam quem pode fazer
o quê, e coloca uma identidade real no log de auditoria. Os escopos decidem o que um chamador pode fazer; seu
provedor de identidade decide quem recebe um token, e a maioria padroniza para todos no
diretório — então essa configuração faz parte da configuração, não um pensamento posterior. Seu preço de entrada é um hostname em um domínio
que seu provedor de identidade aceitará — com Microsoft Entra ID, isso significa um domínio verificado em
seu locatário, porque a URL pública do servidor tem que servir como URI do ID do Aplicativo. Um
hostname de plataforma como *.fly.dev não pode ser verificado, então o domínio não é opcional lá.
Entra ID trabalha tudo, incluindo os erros que produz
quando os três nomes envolvidos saem de sincronia, e como ir um passo além e dar a cada
pessoa um conjunto diferente de escopos em vez do mesmo.
Começar em token e mudar para oauth depois não custa nada além de um reinício: sem migração
de dados, sem mudança em como as ferramentas se comportam.
Contribuindo
CONTRIBUTING.md tem o fluxo de trabalho, e docs/development.md os comandos. Títulos de pull requests são verificados contra Conventional Commits, porque é disso que o changelog é gerado.
Licença
MIT.
"EuroDNS" é uma marca registrada da EuroDNS S.A. e não é coberta por essa licença.