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
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 quê · O que faz · Como difere
- Instalação · Autenticação · Exemplo rápido
- Ferramentas (78 em 22 áreas) · Limitações · Roadmap · FAQ
- Contribuição · Licença
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:
- 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.
- 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:
- A API pública da Infomaniak (api.infomaniak.com), usada com um token Bearer que você mesmo gera.
- 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.comna hospedagemWP1234567, PHP 8.3, raiz em/sites/staging." - "Adicione um registro TXT em
example.compara o novo DKIM do Postmark e depois verifique se ele resolve." - "Quanto disco o banco de dados
myprefix_wp123456usa, e qual aplicação está conectada a ele?" - "Crie uma caixa de e-mail
hello@example.comcom 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ção —
infomaniak_overview,infomaniak_helpeinfomaniak_explaindão ao agente contexto sob demanda em vez de forçá-lo a memorizar um catálogo de ferramentas. - Memória de sessão —
infomaniak_historylista toda ação destrutiva da sessão atual, einfomaniak_undoreverte 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:
| API | Auth | Finalidade |
|---|---|---|
api.infomaniak.com/{1,2}/... | token Bearer | Leitura em sua maioria: perfil, produtos, e-mail, drive, DNS, domínios, cobrança |
manager.infomaniak.com/proxy/... | cookie SASESSION + token CSRF | Escritas na hospedagem web (sites, bancos de dados, aplicações) |
1. Token Bearer (obrigatório)
- Entre na sua conta Infomaniak.
- Vá para manager.infomaniak.com/v3/ng/profile/user/token/list.
- Clique em "Criar um token", dê uma vida útil longa, copie o valor.
- 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)
| Ferramenta | Anotação | Finalidade |
|---|---|---|
infomaniak_overview | somente leitura | Resumo das organizações + produtos. Melhor primeira chamada. |
infomaniak_help | somente leitura | Sugere ferramentas que correspondem a uma intenção em formato livre ("criar site", "listar caixas de e-mail"…). |
infomaniak_explain | somente leitura | Retorna a definição completa (descrição + schemas) de uma ferramenta específica. |
infomaniak_audit_account | somente leitura | Escaneia uma organização quanto a expirações / produtos bloqueados / operações em andamento. |
infomaniak_history | somente leitura | Lista ações destrutivas tomadas nesta sessão. |
infomaniak_undo | destrutiva | Reverte uma ação de sessão quando reversível (commit em duas fases). |
Organizações e produtos
| Ferramenta | Anotação | Finalidade |
|---|---|---|
infomaniak_list_organizations | somente leitura | Contas às quais você tem acesso técnico. |
infomaniak_list_hostings | somente leitura | Hospedagens web (clássicas + Node.js) de uma organização. |
infomaniak_list_domains | somente leitura | Domínios de uma organização, com datas de criação e expiração. |
infomaniak_get_domain | somente leitura | Detalhe de um domínio (DNS gerenciado?, DNSSEC, erros). |
Sites de hospedagem web
| Ferramenta | Anotação | Finalidade |
|---|---|---|
infomaniak_find_site | somente leitura | Busca 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_sites | somente leitura | Sites em uma determinada hospedagem web (com aplicações). |
infomaniak_create_site | destrutiva | Duas fases: retorna um plano + token; a segunda chamada com o token efetivamente cria. |
infomaniak_delete_site | destrutiva | Exclusã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.
| Ferramenta | Anotação | Finalidade |
|---|---|---|
infomaniak_list_site_aliases | somente leitura | FQDNs (principal + aliases) vinculados a um site. |
infomaniak_add_site_aliases | destrutiva | Vincula 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_alias | destrutiva | Desvincula um FQDN de alias (o FQDN principal não pode ser removido). Duas fases. |
Certificados SSL
| Ferramenta | Anotação | Finalidade |
|---|---|---|
infomaniak_get_certificate | somente leitura | Status atual do certificado (updating/ok/error), emissor, expiração, erros de identificador ACME. |
infomaniak_request_certificate | destrutiva | Duas 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_certificate | destrutiva | Duas fases. Remove o certificado de um site. Desfazer via request_certificate com type: "free". |
Bancos de dados
| Ferramenta | Anotação | Finalidade |
|---|---|---|
infomaniak_list_databases | somente leitura | Bancos de dados MariaDB vinculados a um alojamento (com uso de disco). |
infomaniak_get_database | somente leitura | Detalhes de um banco de dados. |
infomaniak_create_database | destrutivo | Criação em duas fases. |
infomaniak_delete_database | destrutivo | Exclusão em duas fases (o plano mostra uso de disco + aplicativo vinculado). |
infomaniak_list_database_users | somente leitura | Contas de usuário em nível MariaDB vinculadas a um alojamento (applications, permissions, link phpMyAdmin). |
infomaniak_get_database_user | somente leitura | Detalhes de um único usuário MariaDB. |
infomaniak_change_database_user_password | destrutivo | Rotacionar a senha de um usuário MariaDB e re-declarar suas permissões atomicamente. Em duas fases. |
infomaniak_change_database_user_permissions | destrutivo | Alterar quais bancos um usuário pode acessar (leitura/escrita/admin por banco), senha intacta. Em duas fases. |
⚠️ Ambas as ferramentas recebem uma matriz
grantsque declara todos os bancos aos quais o usuário pode acessar — qualquer item omitido fica sem acesso. Chameinfomaniak_get_database_userprimeiro e copie opermissionsatual, 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 silenciosamentepermissionseapplications— vejaREVERSE-ENGINEERING.md§Usuários de banco de dados.Prefira essas ferramentas a um
ALTER USER/SET PASSWORDMariaDB 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
| Ferramenta | Anotação | Finalidade |
|---|---|---|
infomaniak_list_hosting_users | somente leitura | Usuários FTP / SSH em um alojamento web. |
infomaniak_create_hosting_user | destrutivo | Criação em duas fases com connection_type: ftp (somente SFTP) ou ssh (shell completo + FTP). |
infomaniak_change_hosting_user_password | destrutivo | Rotacionar 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_type | destrutivo | Promover / rebaixar um usuário entre ftp e ssh. Senha intacta. Em duas fases. |
infomaniak_delete_hosting_user | destrutivo | Revogação em duas fases (arquivos preservados). |
DNS e DNSSEC
| Ferramenta | Anotação | Finalidade |
|---|---|---|
infomaniak_dns_list_records | somente leitura | Todos os registros DNS em uma zona gerenciada pela Infomaniak. |
infomaniak_dns_create_record | destrutivo | Criação de registro em duas fases (A, AAAA, CNAME, MX, TXT, SRV, NS, CAA, PTR, SPF). |
infomaniak_dns_update_record | destrutivo | Atualização em duas fases (diff atual vs. proposto no plano). |
infomaniak_dns_delete_record | destrutivo | Exclusão de registro em duas fases (com visualização completa antes do commit). |
infomaniak_manage_dnssec | misto | DNSSEC 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. |
| Ferramenta | Anotação | Finalidade |
|---|---|---|
infomaniak_list_mail_hostings | somente leitura | Alojamentos de e-mail de uma organização. |
infomaniak_list_mailboxes | somente leitura | Caixas de correio em um alojamento de e-mail específico. |
infomaniak_get_mailbox_info | somente leitura | Leitura 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_mailbox | destrutivo | Criação em duas fases com aplicação de política de senha. |
infomaniak_delete_mailbox | destrutivo | Exclusão em duas fases (também apaga e-mails armazenados). |
infomaniak_create_mailbox_alias | destrutivo | Adição de alias a uma caixa de correio em duas fases. |
infomaniak_list_redirections | somente leitura | Regras de redirecionamento de e-mail no servidor. |
infomaniak_create_redirection | destrutivo | Criação de regra em duas fases (encaminhar name@… para N destinos). |
infomaniak_delete_redirection | destrutivo | Exclusão de regra em duas fases. |
Identidade ("quem sou eu?")
| Ferramenta | Anotação | Finalidade |
|---|---|---|
infomaniak_get_my_profile | somente leitura | Nome, e-mail, idioma, país, fuso horário, conta atual, postura de segurança (2FA, dispositivos, último login). |
infomaniak_get_my_security | somente leitura | Relató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)
| Ferramenta | Anotação | Finalidade |
|---|---|---|
infomaniak_get_account_full | somente leitura | Detalhes 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_tags | somente leitura | Equipes (proprietários + contagens) + tags (com produtos que carregam cada tag) em uma única chamada. |
E-mail (detalhado)
| Ferramenta | Anotação | Finalidade |
|---|---|---|
infomaniak_get_mail_hosting_full | somente leitura | Diagnóstico de saúde do DNS (MX/SPF/DKIM/DMARC), cotas, administrador, link do kSuite pai, FQDNs, acesso da equipe. |
infomaniak_get_mailbox_full | somente leitura | Responder 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)
| Ferramenta | Anotação | Finalidade |
|---|---|---|
infomaniak_get_domain_full | somente leitura | auth_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)
| Ferramenta | Anotação | Finalidade |
|---|---|---|
infomaniak_get_drive_full | somente leitura | Nome do drive, tamanho total, tamanho usado, manutenção. |
infomaniak_list_drive_users | somente leitura | Usuários com acesso a um kDrive (auditorias de acesso). |
infomaniak_list_drive_trash | somente leitura | Itens na lixeira com carimbos de data/hora de exclusão. |
VPS / Servidor Cloud
| Ferramenta | Anotação | Finalidade |
|---|---|---|
infomaniak_list_vps | somente leitura | Lista os produtos de Servidor Cloud (Jelastic) de uma organização. |
infomaniak_get_vps_full | somente leitura | Datacenter, 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)
| Ferramenta | Anotação | Finalidade |
|---|---|---|
infomaniak_list_nodejs_apps | somente leitura | Descobrir 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_app | somente leitura | Configuraçã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_status | somente leitura | Status em tempo real — Running ou Stopped. Barato, seguro para consulta periódica. |
infomaniak_nodejs_app_aliases | somente leitura | Todos os FQDNs que servem o aplicativo (principal + xxx.preview.hosting-ik.com automático). |
infomaniak_nodejs_app_jobs | somente leitura | Tarefas recentes (build / restart / …) com log_stream JWT por tarefa. |
infomaniak_nodejs_app_logs | somente leitura | Retorna 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_thumbnail | somente leitura | Captura de tela da página ao vivo como JPEG base64 — teste de fumaça visual sem sondagem HTTP. |
infomaniak_nodejs_app_action | destrutivo | Em 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) oumanual(variáveis de ambiente SASESSION + MANAGER-XSRF-TOKEN). VejaREVERSE-ENGINEERING.md§DevOps Node.js.
kDrive
| Ferramenta | Anotação | Finalidade |
|---|---|---|
infomaniak_list_drives | somente leitura | Todos os kDrives aos quais a conta tem acesso (com cota). |
infomaniak_list_drive_files | somente leitura | Arquivos / subpastas da raiz do drive ou de qualquer pasta, paginados. |
Encurtador de URL
| Ferramenta | Anotação | Finalidade |
|---|---|---|
infomaniak_list_short_urls | somente leitura | URLs curtas configuradas em um domínio. |
infomaniak_short_urls_quota | somente leitura | Cota de URLs curtas usada / disponível em um domínio. |
infomaniak_create_short_url | destrutivo | Criação em duas fases. |
Swiss Backup
| Ferramenta | Anotação | Finalidade |
|---|---|---|
infomaniak_list_swiss_backups | somente leitura | Slots de Swiss Backup na conta. |
Ferramentas de IA
| Ferramenta | Anotação | Finalidade |
|---|---|---|
infomaniak_list_ai_products | somente leitura | Assinaturas de IA que a conta possui. |
infomaniak_list_ai_models | somente leitura | Catálogo público de modelos LLM/STT de soberania suíça. |
Fluxos de trabalho (várias etapas)
| Ferramenta | Anotação | Finalidade |
|---|---|---|
infomaniak_provision_site_full | destrutivo | Site + banco + DNS em um fluxo orquestrado de planejar-depois-aplicar. |
infomaniak_audit_dns_zones | somente leitura | Auditoria entre zonas: SPF/DMARC ausentes, registros pendentes, …. |
Válvula de escape (todo o resto)
| Ferramenta | Anotação | Finalidade |
|---|---|---|
infomaniak_api_call | destrutivo | Acessar 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
directoryfora de/sites/ao criar um site. Exigido pelo backend do gerenciador (silenciosamente sem efeito caso contrário — vejaREVERSE-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/addusa 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.