infomaniak-mcp-agent

Servidor MCP agêntico não oficial para Infomaniak, a nuvem soberana suíça. 54 ferramentas em hospedagem web, e-mail, kDrive, domínios, DNS e IA.

Documentação

infomaniak-mcp-agent

npm version npm downloads CI CodeQL License: MIT Node TypeScript strict MCP Tools PRs Welcome GitHub stars

Controle toda a sua conta Infomaniak pelo Claude — agêntico, commit em duas fases, open-source.

infomaniak-mcp-agent é um servidor Model Context Protocol não oficial que expõe toda a superfície da Infomaniak — a nuvem soberana da Suíça — como 78 ferramentas que um LLM pode chamar diretamente: hospedagem web, e-mail (kSuite), kDrive, domínios, DNS, DNSSEC, usuários FTP/SSH, produtos de IA, auditorias de conta e muito mais. Toda operação destrutiva passa por um commit estrito em duas fases, para que um agente nunca possa excluir ou alterar algo silenciosamente na sua conta.

You → Claude:  "audit the example.com hosting and tell me which mailboxes are over quota"
Claude → MCP:  infomaniak_audit_account → infomaniak_list_mail_hostings → infomaniak_list_mailboxes
Claude → You:  3 mailboxes >85% — paul@ (94%), notify@ (88%), team@ (87%). Want me to add an alert?

Sumário

Por que isto existe

A Infomaniak é um dos pouquíssimos provedores de nuvem independentes, de capital suíço e amigáveis a open-source da Europa — operando seus próprios datacenters na Suíça, com energia hidrelétrica e eólica, sem matriz nos EUA ou na China. Sua gama de produtos é enorme (hospedagem web, e-mail, kDrive, kChat, DNS, nuvem de IA, Swiss Backup, …), mas sua API está dividida entre uma superfície pública documentada e uma privada, exclusiva do manager — o que significa que automatizar fluxos de trabalho reais geralmente exige uma sessão de navegador, scripts personalizados, ou ambos.

Este projeto fecha essa lacuna expondo tudo através de um único servidor MCP, para que o Claude ou qualquer outro cliente MCP possa executar operações reais de conta por meio de linguagem natural: provisionar uma hospedagem, rotacionar um registro DNS, criar uma caixa de e-mail, auditar seus domínios quanto a expirações futuras, navegar pelo seu kDrive — sem nunca forçá-lo a sair do chat ou escrever um script.

🎒 Construído em código aberto, em tempo real, por vibe-coding

Este projeto foi construído rapidamente por um LLM dirigindo uma sessão de terminal ("vibe-coding"), com testes ao vivo contra uma conta real da Infomaniak a cada etapa. Funciona perfeitamente na configuração local do mantenedor e todo o pipeline está verde (TypeScript estrito, ESLint, Prettier, 78 testes, build, CodeQL, gitleaks).

Dito isso — considerando como foi construído e que vários endpoints usados aqui foram engenharia reversa (veja REVERSE-ENGINEERING.md) — é totalmente possível que você encontre bugs (potencialmente grandes) dependendo da topologia da sua conta, do nível do plano, dos escopos ou das próprias mudanças da Infomaniak. Estamos aqui para corrigi-los conforme aparecem. Por favor:

  1. Abra uma issue com a chamada de ferramenta exata, a entrada, a resposta e seu ambiente (versão do Node, SO, cliente MCP). Sanitize tokens / cookies / nomes de clientes antes de colar.
  2. Ou, melhor ainda, envie um PR com um teste que falha e trabalharemos juntos a partir daí.

Nos movemos rápido e lançamos com frequência. Não seja tímido.

⚠️ Status: não oficial

Este projeto não é afiliado, endossado ou patrocinado pela Infomaniak Network SA. É uma ferramenta conduzida pela comunidade que combina:

  1. A API pública da Infomaniak (api.infomaniak.com), usada com um token Bearer que você mesmo gera.
  2. Endpoints de manager com engenharia reversa (manager.infomaniak.com/proxy/...), necessários para operações de escrita na hospedagem web que a API pública ignora silenciosamente.

Para total transparência, leia REVERSE-ENGINEERING.md. A Infomaniak pode alterar esses endpoints sem aviso; fazemos o nosso melhor para acompanhar, mas não podemos garantir compatibilidade de longo prazo.

O que você pode fazer com ele

Uma vez instalado, você pode pedir ao Claude coisas como:

  • "Liste todos os domínios da minha conta que expiram em menos de 60 dias, ordenados por data."
  • "Crie um novo site staging.example.com na hospedagem WP1234567, PHP 8.3, raiz em /sites/staging."
  • "Adicione um registro TXT em example.com para o novo DKIM do Postmark e depois verifique se ele resolve."
  • "Quanto disco o banco de dados myprefix_wp123456 usa, e qual aplicação está conectada a ele?"
  • "Crie uma caixa de e-mail hello@example.com com uma senha aleatória de 16 caracteres e encaminhe para o meu Gmail."
  • "Mostre-me em quais kDrives sou administrador e o quão cheios eles estão."
  • "Audite minha conta inteira: algum produto bloqueado, SSL expirando, DNSSEC quebrado, operações em andamento?"
  • "Desfaça a última alteração de DNS que fiz nesta sessão."

Ele não alterará silenciosamente nada destrutivo: toda mudança passa por um ciclo de plano + token de confirmação. Você permanece no controle mesmo que o modelo fique criativo.

Por que "agêntico" e não "wrapper"

A maioria dos servidores MCP expõe uma ferramenta por endpoint HTTP e pronto. Este é construído de forma diferente:

  • Diálogos guiados — criar um site conduz você por "qual organização? qual hospedagem? domínio raiz ou subdomínio? que tipo? resumo?" em vez de exigir que você saiba qual ferramenta chamar de antemão.
  • Commit em duas fases — toda operação destrutiva retorna um plano com um token de confirmação de uso único (TTL de 60 s). Nada é alterado até que você retorne com o token.
  • Verificações pré-voo — o servidor verifica conflitos (FQDN existente, hospedagem ocupada, domínio expirado) antes de chamar a API.
  • Erros acionáveis — todo erro informa o que aconteceu, por quê, e o próximo passo que você pode tomar.
  • Introspecçãoinfomaniak_overview, infomaniak_help e infomaniak_explain dão ao agente contexto sob demanda em vez de forçá-lo a memorizar um catálogo de ferramentas.
  • Memória de sessãoinfomaniak_history lista toda ação destrutiva da sessão atual, e infomaniak_undo reverte as que são reversíveis.

Veja ARCHITECTURE.md para a justificativa completa do design.

Instalação

Disponível no npm — o caminho recomendado é deixar o npx buscar a versão mais recente sob demanda:

npx infomaniak-mcp-agent

(nenhuma etapa de instalação necessária; npx resolve a versão mais recente na primeira invocação e a armazena em cache).

Ou instale globalmente se preferir um binário estável no seu $PATH:

npm install -g infomaniak-mcp-agent

Se preferir fixar um commit específico (ou mexer no código-fonte), instale a partir deste repositório:

git clone https://github.com/Mogacode-ma/infomaniak-mcp-agent.git
cd infomaniak-mcp-agent
npm ci
npm run build
# resulting binary: ./dist/server.js

Configurar o Claude Desktop

Adicione ao ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) ou %AppData%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "infomaniak": {
      "command": "npx",
      "args": ["-y", "infomaniak-mcp-agent"],
      "env": {
        "INFOMANIAK_API_TOKEN": "paste-your-token-here",
        "INFOMANIAK_AUTH_MODE": "auto"
      }
    }
  }
}

Reinicie o Claude Desktop para aplicar a alteração.

Configurar o Claude Code

claude mcp add infomaniak \
  -e INFOMANIAK_API_TOKEN=paste-your-token-here \
  -e INFOMANIAK_AUTH_MODE=auto \
  -- npx -y infomaniak-mcp-agent

Autenticação

Duas credenciais distintas são necessárias porque a Infomaniak executa duas APIs lado a lado:

APIAuthFinalidade
api.infomaniak.com/{1,2}/...token BearerLeitura em sua maioria: perfil, produtos, e-mail, drive, DNS, domínios, cobrança
manager.infomaniak.com/proxy/...cookie SASESSION + token CSRFEscritas na hospedagem web (sites, bancos de dados, aplicações)

1. Token Bearer (obrigatório)

  1. Entre na sua conta Infomaniak.
  2. Vá para manager.infomaniak.com/v3/ng/profile/user/token/list.
  3. Clique em "Criar um token", dê uma vida útil longa, copie o valor.
  4. Defina-o em INFOMANIAK_API_TOKEN.

2. Sessão do manager (automática, recomendada)

A API privada do manager não aceita tokens Bearer nem OAuth (a Infomaniak só expõe escopos openid profile email phone a aplicativos de terceiros; web, mail, etc. são reservados). Em vez disso, lemos os cookies SASESSION e MANAGER-XSRF-TOKEN que seu Chrome local já tem quando você está logado em manager.infomaniak.com.

Com INFOMANIAK_AUTH_MODE=auto (o padrão), o MCP lê esses cookies sob demanda usando chrome-cookies-secure. Nada é gravado em disco; os cookies vivem em memória durante a duração de uma operação.

Quando a sessão expirar, basta recarregar manager.infomaniak.com no Chrome — o MCP captará os cookies novos na próxima chamada.

3. Sessão do manager (fallback manual)

Para ambientes headless ou solução de problemas:

INFOMANIAK_AUTH_MODE=manual
INFOMANIAK_SASESSION=...
INFOMANIAK_XSRF_TOKEN=...

Para copiá-los: abra o DevTools do Chrome em manager.infomaniak.com, Application → Cookies, copie SASESSION e MANAGER-XSRF-TOKEN (codificados em URL — cole como estão, o MCP decodifica).

Exemplo rápido

Uma primeira conversa típica, de ponta a ponta:

You:    What's on my account?
Claude: [calls infomaniak_overview]
        You have 16 organizations, 311 products: 47 web hostings, 73 domains,
        12 mail hostings, 3 kDrives, 2 AI Tools subscriptions.

You:    Any domain expiring soon?
Claude: [calls infomaniak_audit_account on each org]
        2 domains expire in <30 days: example.com (April 22), demo.org (May 04).
        4 SSL certificates were auto-renewed in the last 7 days. No locked products.

You:    Create a TXT record on example.com saying "v=spf1 include:spf.example.net ~all".
Claude: [calls infomaniak_dns_create_record → returns plan + token]
        Plan: CREATE TXT record on example.com → "v=spf1 include:spf.example.net ~all", TTL 3600.
        Confirm with token abc-123 within 60 s.

You:    Confirm.
Claude: [calls infomaniak_dns_create_record again with the token]
        Done. Record id 84219113. Logged in session history (undoable).

Ferramentas

78 ferramentas em 22 áreas. Use infomaniak_help para busca difusa por intenção, ou infomaniak_explain para despejar o schema JSON completo de uma ferramenta.

Introspecção (comece aqui)

FerramentaAnotaçãoFinalidade
infomaniak_overviewsomente leituraResumo das organizações + produtos. Melhor primeira chamada.
infomaniak_helpsomente leituraSugere ferramentas que correspondem a uma intenção em formato livre ("criar site", "listar caixas de e-mail"…).
infomaniak_explainsomente leituraRetorna a definição completa (descrição + schemas) de uma ferramenta específica.
infomaniak_audit_accountsomente leituraEscaneia uma organização quanto a expirações / produtos bloqueados / operações em andamento.
infomaniak_historysomente leituraLista ações destrutivas tomadas nesta sessão.
infomaniak_undodestrutivaReverte uma ação de sessão quando reversível (commit em duas fases).

Organizações e produtos

FerramentaAnotaçãoFinalidade
infomaniak_list_organizationssomente leituraContas às quais você tem acesso técnico.
infomaniak_list_hostingssomente leituraHospedagens web (clássicas + Node.js) de uma organização.
infomaniak_list_domainssomente leituraDomínios de uma organização, com datas de criação e expiração.
infomaniak_get_domainsomente leituraDetalhe de um domínio (DNS gerenciado?, DNSSEC, erros).

Sites de hospedagem web

FerramentaAnotaçãoFinalidade
infomaniak_find_sitesomente leituraBusca por domínio primeiro. Resolve um domínio público (ex.: example.com) para {account_id, hosting_id, hosting_label, site_id, full site object}. Use ANTES de qualquer ferramenta que precise de hosting_id + site_id. Substitui iterar por cada hospedagem do list_sites (46+ chamadas de API em uma frota real).
infomaniak_list_sitessomente leituraSites em uma determinada hospedagem web (com aplicações).
infomaniak_create_sitedestrutivaDuas fases: retorna um plano + token; a segunda chamada com o token efetivamente cria.
infomaniak_delete_sitedestrutivaExclusão em duas fases (prévia completa do site a ser removido).

Aliases de site

FQDNs adicionais vinculados ao vhost Apache / DocumentRoot de um site existente — é assim que você serve vários domínios a partir de uma única instalação sem provisionar um novo site.

FerramentaAnotaçãoFinalidade
infomaniak_list_site_aliasessomente leituraFQDNs (principal + aliases) vinculados a um site.
infomaniak_add_site_aliasesdestrutivaVincula um ou mais FQDNs (curingas como *.example.com aceitos). Duas fases. Assíncrona: retorna um progress_id; o alias aparece em list_site_aliases alguns segundos depois.
infomaniak_delete_site_aliasdestrutivaDesvincula um FQDN de alias (o FQDN principal não pode ser removido). Duas fases.

Certificados SSL

FerramentaAnotaçãoFinalidade
infomaniak_get_certificatesomente leituraStatus atual do certificado (updating/ok/error), emissor, expiração, erros de identificador ACME.
infomaniak_request_certificatedestrutivaDuas fases. Emite ou renova um certificado. Três valores de type: free (Let's Encrypt), paid (Sectigo, requer certificate_id), custom (BYO PEM, requer certificate + private_key).
infomaniak_delete_certificatedestrutivaDuas fases. Remove o certificado de um site. Desfazer via request_certificate com type: "free".

Bancos de dados

FerramentaAnotaçãoFinalidade
infomaniak_list_databasessomente leituraBancos de dados MariaDB vinculados a um alojamento (com uso de disco).
infomaniak_get_databasesomente leituraDetalhes de um banco de dados.
infomaniak_create_databasedestrutivoCriação em duas fases.
infomaniak_delete_databasedestrutivoExclusão em duas fases (o plano mostra uso de disco + aplicativo vinculado).
infomaniak_list_database_userssomente leituraContas de usuário em nível MariaDB vinculadas a um alojamento (applications, permissions, link phpMyAdmin).
infomaniak_get_database_usersomente leituraDetalhes de um único usuário MariaDB.
infomaniak_change_database_user_passworddestrutivoRotacionar a senha de um usuário MariaDB e re-declarar suas permissões atomicamente. Em duas fases.
infomaniak_change_database_user_permissionsdestrutivoAlterar quais bancos um usuário pode acessar (leitura/escrita/admin por banco), senha intacta. Em duas fases.

⚠️ Ambas as ferramentas recebem uma matriz grants que declara todos os bancos aos quais o usuário pode acessar — qualquer item omitido fica sem acesso. Chame infomaniak_get_database_user primeiro e copie o permissions atual, ou você revogará acesso silenciosamente. Isso é proposital: também é a forma canônica de revogar uma permissão.

Elas usam o endpoint privado do gerenciador em vez da API pública de propósito. O PATCH /1/web_hostings/{id}/database_users/{user} público aceita uma senha, altera-a e apaga silenciosamente permissions e applications — veja REVERSE-ENGINEERING.md §Usuários de banco de dados.

Prefira essas ferramentas a um ALTER USER / SET PASSWORD MariaDB direto via SSH. O gerenciador é a fonte da verdade para as credenciais de banco do alojamento: uma senha definida somente no MariaDB diverge silenciosamente e é revertida para o valor do gerenciador na próxima manutenção da Infomaniak — que pode ocorrer meses depois, sem ligação aparente com a alteração.

Usuários FTP / SSH

FerramentaAnotaçãoFinalidade
infomaniak_list_hosting_userssomente leituraUsuários FTP / SSH em um alojamento web.
infomaniak_create_hosting_userdestrutivoCriação em duas fases com connection_type: ftp (somente SFTP) ou ssh (shell completo + FTP).
infomaniak_change_hosting_user_passworddestrutivoRotacionar a senha de um usuário FTP/SSH. Em duas fases. Informe o connection_type atual do usuário para mantê-lo intacto.
infomaniak_change_hosting_user_connection_typedestrutivoPromover / rebaixar um usuário entre ftp e ssh. Senha intacta. Em duas fases.
infomaniak_delete_hosting_userdestrutivoRevogação em duas fases (arquivos preservados).

DNS e DNSSEC

FerramentaAnotaçãoFinalidade
infomaniak_dns_list_recordssomente leituraTodos os registros DNS em uma zona gerenciada pela Infomaniak.
infomaniak_dns_create_recorddestrutivoCriação de registro em duas fases (A, AAAA, CNAME, MX, TXT, SRV, NS, CAA, PTR, SPF).
infomaniak_dns_update_recorddestrutivoAtualização em duas fases (diff atual vs. proposto no plano).
infomaniak_dns_delete_recorddestrutivoExclusão de registro em duas fases (com visualização completa antes do commit).
infomaniak_manage_dnssecmistoDNSSEC unificado: action: check (somente leitura, registros KSK/DS), action: enable ou action: disable (commit em duas fases, destrutivo). Substitui o trio da v0.9 dnssec_check / dnssec_enable / dnssec_disable.

E-mail

FerramentaAnotaçãoFinalidade
infomaniak_list_mail_hostingssomente leituraAlojamentos de e-mail de uma organização.
infomaniak_list_mailboxessomente leituraCaixas de correio em um alojamento de e-mail específico.
infomaniak_get_mailbox_infosomente leituraLeitura unificada de caixas de correio: informe fields: ["aliases" | "signatures" | "backups"] (subconjunto ou todas). Busca em paralelo, erros por seção retornados de forma independente. Substitui o trio da v0.9 get_mailbox_aliases / get_mailbox_signatures / get_mailbox_backups.
infomaniak_create_mailboxdestrutivoCriação em duas fases com aplicação de política de senha.
infomaniak_delete_mailboxdestrutivoExclusão em duas fases (também apaga e-mails armazenados).
infomaniak_create_mailbox_aliasdestrutivoAdição de alias a uma caixa de correio em duas fases.
infomaniak_list_redirectionssomente leituraRegras de redirecionamento de e-mail no servidor.
infomaniak_create_redirectiondestrutivoCriação de regra em duas fases (encaminhar name@… para N destinos).
infomaniak_delete_redirectiondestrutivoExclusão de regra em duas fases.

Identidade ("quem sou eu?")

FerramentaAnotaçãoFinalidade
infomaniak_get_my_profilesomente leituraNome, e-mail, idioma, país, fuso horário, conta atual, postura de segurança (2FA, dispositivos, último login).
infomaniak_get_my_securitysomente leituraRelatório de segurança focado — método e status de 2FA, e-mail de recuperação, telefone validado, Yubikey, códigos de recuperação, idade da senha, dispositivos confiáveis com IP/horário.

Conta / Organização (detalhado)

FerramentaAnotaçãoFinalidade
infomaniak_get_account_fullsomente leituraDetalhes completos da organização: entidade jurídica, endereços de cobrança, VAT, localidade, nível de suporte, política de 2FA obrigatório, seu papel, tags.
infomaniak_list_teams_and_tagssomente leituraEquipes (proprietários + contagens) + tags (com produtos que carregam cada tag) em uma única chamada.

E-mail (detalhado)

FerramentaAnotaçãoFinalidade
infomaniak_get_mail_hosting_fullsomente leituraDiagnóstico de saúde do DNS (MX/SPF/DKIM/DMARC), cotas, administrador, link do kSuite pai, FQDNs, acesso da equipe.
infomaniak_get_mailbox_fullsomente leituraResponder automático, aliases, último login IMAP/POP3, idade da senha, tamanho da caixa, dispositivos, DKIM, banimento SMTP, filtragem de e-mail (comerciais/sociais), remetentes autorizados/bloqueados.

Domínio (detalhado)

FerramentaAnotaçãoFinalidade
infomaniak_get_domain_fullsomente leituraauth_code (EPP), status de transferência/trade, registros de cola, TLD/registro, serviço vinculado, detalhes de DNS + saúde, produtos associados, URL de logs DNS. Aceita id ou FQDN.

kDrive (detalhado, privado do gerenciador)

FerramentaAnotaçãoFinalidade
infomaniak_get_drive_fullsomente leituraNome do drive, tamanho total, tamanho usado, manutenção.
infomaniak_list_drive_userssomente leituraUsuários com acesso a um kDrive (auditorias de acesso).
infomaniak_list_drive_trashsomente leituraItens na lixeira com carimbos de data/hora de exclusão.

VPS / Servidor Cloud

FerramentaAnotaçãoFinalidade
infomaniak_list_vpssomente leituraLista os produtos de Servidor Cloud (Jelastic) de uma organização.
infomaniak_get_vps_fullsomente leituraDatacenter, IPs, CPU/RAM, largura de banda + tráfego, uso de disco, versões de MySQL/PHP, firewall, contatos de suporte premium, histórico de migração.

Aplicativos Node.js (Servidor Cloud hosting_3)

FerramentaAnotaçãoFinalidade
infomaniak_list_nodejs_appssomente leituraDescobrir os aplicativos em um alojamento Node.js. Retorna o vhost_route_id de cada aplicativo (identificador para todas as outras ferramentas Node.js) e seus FQDNs de serviço.
infomaniak_get_nodejs_appsomente leituraConfiguração completa do aplicativo: versão do Node, porta de escuta, start_command, build_command, IPs públicos (v4 + v6), estado do SSL, diretório, cota de armazenamento.
infomaniak_nodejs_app_statussomente leituraStatus em tempo real — Running ou Stopped. Barato, seguro para consulta periódica.
infomaniak_nodejs_app_aliasessomente leituraTodos os FQDNs que servem o aplicativo (principal + xxx.preview.hosting-ik.com automático).
infomaniak_nodejs_app_jobssomente leituraTarefas recentes (build / restart / …) com log_stream JWT por tarefa.
infomaniak_nodejs_app_logssomente leituraRetorna um JWT de curta duração + URL de endpoint SSE para consumir o stream ao vivo de stdout/stderr do aplicativo em execução.
infomaniak_nodejs_app_thumbnailsomente leituraCaptura de tela da página ao vivo como JPEG base64 — teste de fumaça visual sem sondagem HTTP.
infomaniak_nodejs_app_actiondestrutivoEm duas fases. Iniciar / parar / reiniciar / build. stop registra um undo para start. build retorna o resource_id da tarefa gerada + log_stream ao vivo para acompanhar a saída.

Todas as ferramentas Node.js são privadas do gerenciador (a API pública Bearer expõe apenas uma verificação de estado para alojamentos Node.js). Elas exigem INFOMANIAK_AUTH_MODE=auto (cookies do Chrome) ou manual (variáveis de ambiente SASESSION + MANAGER-XSRF-TOKEN). Veja REVERSE-ENGINEERING.md §DevOps Node.js.

kDrive

FerramentaAnotaçãoFinalidade
infomaniak_list_drivessomente leituraTodos os kDrives aos quais a conta tem acesso (com cota).
infomaniak_list_drive_filessomente leituraArquivos / subpastas da raiz do drive ou de qualquer pasta, paginados.

Encurtador de URL

FerramentaAnotaçãoFinalidade
infomaniak_list_short_urlssomente leituraURLs curtas configuradas em um domínio.
infomaniak_short_urls_quotasomente leituraCota de URLs curtas usada / disponível em um domínio.
infomaniak_create_short_urldestrutivoCriação em duas fases.

Swiss Backup

FerramentaAnotaçãoFinalidade
infomaniak_list_swiss_backupssomente leituraSlots de Swiss Backup na conta.

Ferramentas de IA

FerramentaAnotaçãoFinalidade
infomaniak_list_ai_productssomente leituraAssinaturas de IA que a conta possui.
infomaniak_list_ai_modelssomente leituraCatálogo público de modelos LLM/STT de soberania suíça.

Fluxos de trabalho (várias etapas)

FerramentaAnotaçãoFinalidade
infomaniak_provision_site_fulldestrutivoSite + banco + DNS em um fluxo orquestrado de planejar-depois-aplicar.
infomaniak_audit_dns_zonessomente leituraAuditoria entre zonas: SPF/DMARC ausentes, registros pendentes, ….

Válvula de escape (todo o resto)

FerramentaAnotaçãoFinalidade
infomaniak_api_calldestrutivoAcessar qualquer endpoint em api.infomaniak.com diretamente. GET executa imediatamente, POST/PUT/PATCH/DELETE seguem o commit em duas fases. Recusa caminhos fora do namespace documentado /{1,2,3}/... e recusa /proxy/... privados do gerenciador (use uma ferramenta tipada).

Limitações

  • Limite rígido de 60 req/min em api.infomaniak.com. O MCP limita automaticamente com um token-bucket. Você verá pequenos atrasos de fila em rajadas intensas; isso é intencional e protege seu token contra bloqueios.
  • Sem directory fora de /sites/ ao criar um site. Exigido pelo backend do gerenciador (silenciosamente sem efeito caso contrário — veja REVERSE-ENGINEERING.md).
  • Os cookies de sessão do gerenciador expiram (geralmente a cada poucas horas / quando você sai do Chrome). Reabra manager.infomaniak.com para atualizar.
  • Uma operação concorrente por alojamento — a Infomaniak rejeita POSTs concorrentes no mesmo alojamento com 400 operation_in_progress. O MCP serializa chamadas de escrita por alojamento.
  • A instalação do WordPress está intencionalmente fora do escopo. Crie o site vazio com este MCP e depois instale o WP pelo assistente do gerenciador (o fluxo applications/add usa um assistente passo a passo não documentado, frágil demais para automação confiável no momento).

Roadmap

Lançado na v0.7 (atual)

  • ✅ Alojamento web: listar + criar + excluir sites, bancos de dados, usuários FTP/SSH
  • ✅ DNS: CRUD completo em registros, habilitar/desabilitar/verificar DNSSEC
  • ✅ E-mail: caixas de correio, aliases, assinaturas, backups, redirecionamentos — todo CRUD
  • ✅ kDrive: listar drives + navegar arquivos
  • ✅ Swiss Backup: listar slots
  • ✅ Ferramentas de IA: listar produtos + catálogo público de modelos
  • ✅ Encurtador de URL: CRUD completo
  • ✅ Auditoria de conta: domínios expirando em breve, produtos bloqueados, operações em andamento
  • ✅ Ferramentas de fluxo de trabalho: provision_site_full, audit_dns_zones
  • ✅ Ferramentas de sessão undo / history
  • ✅ Válvula de escape genérica de API para qualquer endpoint documentado

Próximos (v0.8+)

  • ⬜ Escrita no kDrive: upload, download, mover, compartilhar, arquivar
  • ⬜ Newsletter: campanhas, contatos (intocado hoje)
  • ⬜ kChat: canais, tópicos, publicações (sem API pública ainda — requer engenharia reversa)
  • ⬜ Fluxo de trabalho: provision_wordpress_site (precisa de um caminho de instalação do WP que não dependa do assistente frágil do gerenciador)
  • ⬜ Escrita no Swiss Backup: criação de slots, agendamentos, restaurações
  • ⬜ Testes de caminho feliz por ferramenta para elevar a cobertura de 35% para 70%
  • ⬜ Empacotamento MCPB para instalação com um clique no Claude Desktop

FAQ

Este é um produto oficial da Infomaniak?

Não. É comunitário, licenciado sob MIT e não é afiliado, endossado ou patrocinado pela Infomaniak Network SA. Veja os avisos em NOTICE e REVERSE-ENGINEERING.md.

Funciona com outros clientes além do Claude?

Sim. Ele fala o Model Context Protocol padrão via stdio, então funciona com qualquer cliente compatível com MCP — Claude Desktop, Claude Code, Cursor, Cline, Continue, Zed AI e o MCP Inspector para depuração.

Meu token / sessão da Infomaniak sairá algum dia da minha máquina?

Não. O servidor roda localmente via stdio. Seu token Bearer é lido de INFOMANIAK_API_TOKEN (env ou .env) e usado apenas para chamar api.infomaniak.com. Os cookies do Chrome (SASESSION, MANAGER-XSRF-TOKEN) ficam na memória durante a duração de uma única chamada de ferramenta e nunca são persistidos. Os logs ocultam todos os valores sensíveis (tokens, cookies, senhas).

Ele suporta auto-hospedagem / execução fora do macOS?

Sim — INFOMANIAK_AUTH_MODE=manual permite colar cookies diretamente em variáveis de ambiente, que é o caminho a usar em servidores Linux, contêineres Docker ou CI. A extração automática do Chrome funciona no macOS, Windows e Linux quando o Chrome está instalado localmente.

Por que a criação de sites usa um endpoint privado do gerenciador e não a API pública?

Porque o endpoint público POST /1/products/{id}/web_hostings/{hid}/sites retorna silenciosamente uma resposta de sucesso sem realmente criar nada. Após engenharia reversa do pacote do gerenciador, descobrimos que o endpoint privado do gerenciador requer force_fqdn: true, directory: /sites/... e environment: apache_php — nenhum dos quais é documentado. Explicação completa em REVERSE-ENGINEERING.md.

Ele pode instalar o WordPress automaticamente?

Hoje não. O fluxo applications/add do gerenciador é um assistente de várias etapas com tokens por etapa, que é frágil para script. O padrão recomendado é: criar o site vazio com este MCP e depois instalar o WordPress (ou qualquer outro CMS) pelo assistente do gerenciador ou enviando via FTP/SSH.

Existe uma versão hospedada / SaaS?

Não. Por design — este servidor roda com suas próprias credenciais na sua própria máquina. Não há SaaS hospedado, nem proxy hospedado, nem telemetria.

Como relato um bug ou solicito uma ferramenta?

Abra uma issue no GitHub. Inclua a chamada de ferramenta exata, a entrada, a resposta (sanitizada — remova tokens, cookies, nomes de clientes) e seu ambiente (versão do Node, SO, cliente MCP, nível do plano). PRs com um teste falhando são duplamente bem-vindos.

E sobre as próprias ferramentas de IA da Infomaniak?

A Infomaniak opera uma nuvem de IA soberana suíça que hospeda Llama, Mixtral, Whisper e outros modelos de pesos abertos. Este MCP expõe infomaniak_list_ai_products e infomaniak_list_ai_models para que um agente possa descobrir o que está disponível e quais modelos são públicos na sua conta; deliberadamente não encapsulamos seus endpoints de inferência (use a API compatível com OpenAI diretamente para isso).

Contribuindo

Contribuições são bem-vindas. Por favor, leia CONTRIBUTING.md e siga o CODE_OF_CONDUCT.md. Problemas de segurança devem ser relatados em particular, conforme SECURITY.md.

Se isso economizou seu tempo

A maneira mais rápida de apoiar o projeto é dar uma ⭐ estrela no GitHub — isso ajuda outros usuários da Infomaniak a encontrar isto e me diz o que continuar construindo.

Você também pode:

  • Abra uma issue para bugs, casos extremos ou ferramentas ausentes
  • Inicie uma discussão para perguntas de design ou API
  • Compartilhe o que você construiu com ele — adoraria saber

Licença

MIT — veja NOTICE para o aviso de marca registrada.

Este projeto não é afiliado à Infomaniak Network SA. "Infomaniak", "kDrive", "kChat", "kMeet", "kSuite", "Swiss Backup" são marcas registradas da Infomaniak Network SA.