infomaniak-mcp-agent

Servidor MCP agéntico no oficial para Infomaniak, la nube soberana suiza. 54 herramientas en alojamiento web, correo, kDrive, dominios, DNS e IA.

Documentación

infomaniak-mcp-agent

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

Gestiona toda tu cuenta de Infomaniak desde Claude — agéntico, commit en dos fases, código abierto.

infomaniak-mcp-agent es un servidor no oficial de Model Context Protocol que expone toda la superficie de Infomaniak — la nube soberana de Suiza — como 78 herramientas que un LLM puede llamar directamente: alojamiento web, correo (kSuite), kDrive, dominios, DNS, DNSSEC, usuarios FTP/SSH, productos de IA, auditorías de cuenta y más. Cada operación destructiva pasa por un estricto commit en dos fases, de modo que un agente nunca puede eliminar o modificar algo en tu cuenta silenciosamente.

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?

Tabla de contenidos

Por qué existe esto

Infomaniak es uno de los pocos proveedores de nube independientes, de propiedad suiza y amigables con el código abierto en Europa — con sus propios centros de datos en Suiza, alimentados por energía hidroeléctrica y eólica, sin matriz en EE. UU. ni China. Su gama de productos es enorme (alojamiento web, correo, kDrive, kChat, DNS, nube de IA, Swiss Backup, …) pero su API está dividida entre una superficie pública documentada y otra privada solo para el manager — lo que significa que automatizar flujos de trabajo reales suele requerir una sesión de navegador, scripts personalizados, o ambos.

Este proyecto cierra esa brecha exponiendo todo a través de un único servidor MCP, de modo que Claude o cualquier otro cliente MCP pueda ejecutar operaciones reales de cuenta mediante lenguaje natural: aprovisionar un alojamiento, rotar un registro DNS, crear un buzón, auditar tus dominios por expiraciones próximas, navegar por tu kDrive — sin obligarte nunca a salir del chat o escribir un script.

🎒 Construido en abierto, en tiempo real, mediante vibe-coding

Este proyecto fue construido rápidamente por un LLM conduciendo una sesión de terminal («vibe-coding»), con pruebas en vivo contra una cuenta real de Infomaniak en cada paso. Funciona perfectamente en la configuración local del mantenedor y todo el pipeline está en verde (TypeScript estricto, ESLint, Prettier, 78 pruebas, build, CodeQL, gitleaks).

Dicho esto — dado cómo se construyó y dado que varios endpoints utilizados aquí están ingeniados en reversa (ver REVERSE-ENGINEERING.md) — es totalmente posible que te encuentres con errores (potencialmente grandes) según tu topología de cuenta, nivel de plan, alcances o los propios cambios de Infomaniak. Estamos aquí para corregirlos a medida que aparezcan. Por favor:

  1. Abre un issue con la llamada exacta a la herramienta, la entrada, la respuesta y tu entorno (versión de Node, SO, cliente MCP). Sanitiza tokens / cookies / nombres de clientes antes de pegar.
  2. O, mejor aún, envía un PR con un test que falle y trabajaremos desde ahí juntos.

Nos movemos rápido y publicamos a menudo. No seas tímido.

⚠️ Estado: no oficial

Este proyecto no está afiliado, respaldado ni patrocinado por Infomaniak Network SA. Es una herramienta impulsada por la comunidad que combina:

  1. La API pública de Infomaniak (api.infomaniak.com), utilizada con un token Bearer que generas tú mismo.
  2. Endpoints del manager ingeniados en reversa (manager.infomaniak.com/proxy/...), necesarios para operaciones de escritura en alojamiento web que la API pública ignora silenciosamente.

Para total transparencia, lee REVERSE-ENGINEERING.md. Infomaniak puede cambiar estos endpoints sin previo aviso; hacemos nuestro mejor esfuerzo para mantenernos al día pero no podemos garantizar compatibilidad a largo plazo.

Qué puedes hacer con ello

Una vez instalado, puedes pedirle a Claude cosas como:

  • "Lista todos los dominios de mi cuenta que expiran en menos de 60 días, ordenados por fecha."
  • "Crea un nuevo sitio staging.example.com en el alojamiento WP1234567, PHP 8.3, raíz en /sites/staging."
  • "Añade un registro TXT en example.com para el nuevo DKIM de Postmark, luego verifica que resuelve."
  • "¿Cuánto disco usa la base de datos myprefix_wp123456 y qué aplicación está conectada a ella?"
  • "Crea un buzón hello@example.com con una contraseña aleatoria de 16 caracteres y reenvíalo a mi Gmail."
  • "Muéstrame en qué kDrives soy administrador y cuán llenos están."
  • "Audita toda mi cuenta: ¿algún producto bloqueado, SSL por expirar, DNSSEC roto, operaciones en curso?"
  • "Deshaz el último cambio DNS que hice en esta sesión."

No mutará nada destructivo silenciosamente: cada cambio pasa por un ida y vuelta de plan + token de confirmación. Tú mantienes el control incluso si el modelo se pone creativo.

Por qué «agéntico» y no «wrapper»

La mayoría de los servidores MCP exponen una herramienta por endpoint HTTP y listo. Este está construido de forma diferente:

  • Diálogos guiados — crear un sitio te guía por «¿qué organización? ¿qué alojamiento? ¿dominio raíz o subdominio? ¿qué tipo? resumen?» en lugar de pedirte que sepas qué herramienta llamar de antemano.
  • Commit en dos fases — cada operación destructiva devuelve un plan con un token de confirmación de un solo uso (TTL de 60 s). Nada se muta hasta que vuelves a llamar con el token.
  • Comprobaciones previas — el servidor verifica conflictos (FQDN existente, alojamiento ocupado, dominio expirado) antes de llamar a la API.
  • Errores accionables — cada error te dice qué pasó, por qué y el siguiente paso que puedes dar.
  • Introspeccióninfomaniak_overview, infomaniak_help y infomaniak_explain dan al agente contexto bajo demanda en lugar de obligarlo a memorizar un catálogo de herramientas.
  • Memoria de sesióninfomaniak_history lista cada acción destructiva de la sesión actual, y infomaniak_undo revierte las que son reversibles.

Consulta ARCHITECTURE.md para la justificación completa del diseño.

Instalación

Disponible en npm — la vía recomendada es dejar que npx obtenga la última versión bajo demanda:

npx infomaniak-mcp-agent

(no se necesita paso de instalación; npx resuelve la última versión en la primera invocación y la guarda en caché).

O instala globalmente si prefieres un binario estable en tu $PATH:

npm install -g infomaniak-mcp-agent

Si prefieres fijar un commit específico (o hackear el código fuente), instala desde este repositorio:

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 Claude Desktop

Añade a ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) o %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"
      }
    }
  }
}

Reinicia Claude Desktop para aplicar el cambio.

Configurar Claude Code

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

Autenticación

Se necesitan dos credenciales distintas porque Infomaniak ejecuta dos APIs en paralelo:

APIAuthPropósito
api.infomaniak.com/{1,2}/...Token BearerPrincipalmente lectura: perfil, productos, correo, drive, dns, dominios, facturación
manager.infomaniak.com/proxy/...Cookie SASESSION + token CSRFEscrituras en alojamiento web (sitios, bases de datos, aplicaciones)

1. Token Bearer (obligatorio)

  1. Inicia sesión en tu cuenta de Infomaniak.
  2. Ve a manager.infomaniak.com/v3/ng/profile/user/token/list.
  3. Haz clic en «Create a token», dale una vida larga, copia el valor.
  4. Configúralo en INFOMANIAK_API_TOKEN.

2. Sesión de manager (automática, recomendada)

La API privada del manager no acepta tokens Bearer ni OAuth (Infomaniak solo expone alcances openid profile email phone a aplicaciones de terceros; web, mail, etc. están reservados). En su lugar, leemos las cookies SASESSION y MANAGER-XSRF-TOKEN que tu Chrome local ya tiene cuando has iniciado sesión en manager.infomaniak.com.

Con INFOMANIAK_AUTH_MODE=auto (el predeterminado), el MCP lee estas cookies bajo demanda usando chrome-cookies-secure. Nada se escribe jamás en disco; las cookies viven en memoria durante la duración de una operación.

Cuando la sesión expire, simplemente recarga manager.infomaniak.com en Chrome — el MCP tomará las cookies frescas en la siguiente llamada.

3. Sesión de manager (respaldo manual)

Para entornos sin interfaz o resolución de problemas:

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

Para copiarlas: abre Chrome DevTools en manager.infomaniak.com, Application → Cookies, copia SASESSION y MANAGER-XSRF-TOKEN (codificadas en URL — pégalas tal cual, el MCP las decodifica).

Ejemplo rápido

Una primera conversación típica, de principio a fin:

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).

Herramientas

78 herramientas en 22 áreas. Usa infomaniak_help para búsqueda difusa por intención, o infomaniak_explain para volcar el esquema JSON completo de una herramienta.

Introspección (empieza aquí)

HerramientaAnotaciónPropósito
infomaniak_overviewsolo lecturaResumen de organizaciones + productos. Mejor primera llamada.
infomaniak_helpsolo lecturaSugiere herramientas que coincidan con una intención libre («create site», «list mailboxes»…).
infomaniak_explainsolo lecturaDevuelve la definición completa (descripción + esquemas) de una herramienta específica.
infomaniak_audit_accountsolo lecturaEscanea una organización por expiraciones / productos bloqueados / operaciones en curso.
infomaniak_historysolo lecturaLista las acciones destructivas tomadas en esta sesión.
infomaniak_undodestructivaRevierte una acción de sesión cuando es reversible (commit en dos fases).

Organizaciones y productos

HerramientaAnotaciónPropósito
infomaniak_list_organizationssolo lecturaCuentas a las que tienes acceso técnico.
infomaniak_list_hostingssolo lecturaAlojamientos web (clásicos + Node.js) para una organización.
infomaniak_list_domainssolo lecturaDominios para una organización, con fechas de creación + expiración.
infomaniak_get_domainsolo lecturaDetalle de un dominio (¿DNS gestionado?, DNSSEC, errores).

Sitios de alojamiento web

HerramientaAnotaciónPropósito
infomaniak_find_sitesolo lecturaBúsqueda por dominio primero. Resuelve un dominio público (p. ej. example.com) a {account_id, hosting_id, hosting_label, site_id, full site object}. Usa esto ANTES de cualquier herramienta que necesite hosting_id + site_id. Reemplaza iterar el list_sites de cada alojamiento (46+ llamadas a la API en una flota real).
infomaniak_list_sitessolo lecturaSitios en un alojamiento web dado (con aplicaciones).
infomaniak_create_sitedestructivaEn dos fases: devuelve un plan + token, la segunda llamada con el token realmente crea.
infomaniak_delete_sitedestructivaEliminación en dos fases (vista previa completa del sitio a eliminar).

Aliases de sitio

FQDNs adicionales vinculados al vhost Apache / DocumentRoot de un sitio existente — así sirves varios dominios desde una sola instalación sin aprovisionar un sitio nuevo.

HerramientaAnotaciónPropósito
infomaniak_list_site_aliasessolo lecturaFQDNs (principal + aliases) vinculados a un sitio.
infomaniak_add_site_aliasesdestructivaVincula uno o más FQDNs (se aceptan comodines como *.example.com). En dos fases. Asíncrono: devuelve un progress_id, el alias aparece en list_site_aliases unos segundos después.
infomaniak_delete_site_aliasdestructivaDesvincula un FQDN alias (el FQDN principal no se puede eliminar). En dos fases.

Certificados SSL

HerramientaAnotaciónPropósito
infomaniak_get_certificatesolo lecturaEstado actual del certificado (updating/ok/error), emisor, expiración, errores de identificador ACME.
infomaniak_request_certificatedestructivaEn dos fases. Emite o renueva un certificado. Tres valores de type: free (Let's Encrypt), paid (Sectigo, requiere certificate_id), custom (BYO PEM, requiere certificate + private_key).
infomaniak_delete_certificatedestructivaEn dos fases. Elimina el certificado de un sitio. Deshacer vía request_certificate con type: "free".

Bases de datos

HerramientaAnotaciónPropósito
infomaniak_list_databasessolo lecturaBases de datos MariaDB asociadas a un hosting (con uso de disco).
infomaniak_get_databasesolo lecturaDetalle de una base de datos.
infomaniak_create_databasedestructivoCreación en dos fases.
infomaniak_delete_databasedestructivoEliminación en dos fases (el plan muestra uso de disco + aplicación vinculada).
infomaniak_list_database_userssolo lecturaCuentas de usuario a nivel MariaDB asociadas a un hosting (applications, permissions, enlace phpMyAdmin).
infomaniak_get_database_usersolo lecturaDetalle de un único usuario MariaDB.
infomaniak_change_database_user_passworddestructivoRotar la contraseña de un usuario MariaDB y re-declarar sus permisos de forma atómica. En dos fases.
infomaniak_change_database_user_permissionsdestructivoCambiar qué bases de datos puede alcanzar un usuario (lectura/escritura/admin por BD), sin tocar la contraseña. En dos fases.

⚠️ Ambas herramientas toman un array grants que declara todas las bases de datos a las que el usuario puede acceder — cualquier cosa omitida se establece como sin acceso. Llama a infomaniak_get_database_user primero y copia el permissions actual, o revocarás acceso silenciosamente. Esto es deliberado: también es la forma canónica de revocar un permiso.

Usan el endpoint privado del gestor en lugar de la API pública a propósito. La PATCH /1/web_hostings/{id}/database_users/{user} pública acepta una contraseña, la cambia y borra silenciosamente permissions y applications — ver REVERSE-ENGINEERING.md §Usuarios de bases de datos.

Prefiere estas herramientas sobre un ALTER USER / SET PASSWORD directo de MariaDB por SSH. El gestor es la fuente de verdad para las credenciales de bases de datos del hosting: una contraseña establecida solo en MariaDB diverge silenciosamente y se revierte al valor del gestor en el próximo mantenimiento de Infomaniak — que puede ser meses después, sin vínculo aparente con el cambio.

Usuarios FTP / SSH

HerramientaAnotaciónPropósito
infomaniak_list_hosting_userssolo lecturaUsuarios FTP / SSH en un hosting web.
infomaniak_create_hosting_userdestructivoCreación en dos fases con connection_type: ftp (solo SFTP) o ssh (shell completo + FTP).
infomaniak_change_hosting_user_passworddestructivoRotar la contraseña de un usuario FTP/SSH. En dos fases. Pasa el connection_type actual del usuario para dejarlo sin tocar.
infomaniak_change_hosting_user_connection_typedestructivoAscender / descender a un usuario entre ftp y ssh. Contraseña sin tocar. En dos fases.
infomaniak_delete_hosting_userdestructivoRevocación en dos fases (archivos preservados).

DNS y DNSSEC

HerramientaAnotaciónPropósito
infomaniak_dns_list_recordssolo lecturaCada registro DNS en una zona gestionada por Infomaniak.
infomaniak_dns_create_recorddestructivoCreación de registro en dos fases (A, AAAA, CNAME, MX, TXT, SRV, NS, CAA, PTR, SPF).
infomaniak_dns_update_recorddestructivoActualización en dos fases (diff actual vs propuesto en el plan).
infomaniak_dns_delete_recorddestructivoEliminación de registro en dos fases (con vista previa completa antes del commit).
infomaniak_manage_dnssecmixtoDNSSEC unificado: action: check (solo lectura, registros KSK/DS), action: enable o action: disable (commit destructivo en dos fases). Reemplaza el trío v0.9 dnssec_check / dnssec_enable / dnssec_disable.

Correo

HerramientaAnotaciónPropósito
infomaniak_list_mail_hostingssolo lecturaHostings de correo para una organización.
infomaniak_list_mailboxessolo lecturaBuzones en un hosting de correo dado.
infomaniak_get_mailbox_infosolo lecturaLectura de buzón unificada: pasa fields: ["aliases" | "signatures" | "backups"] (subconjunto o todo). Obtiene en paralelo, errores por sección devueltos de forma independiente. Reemplaza el trío v0.9 get_mailbox_aliases / get_mailbox_signatures / get_mailbox_backups.
infomaniak_create_mailboxdestructivoCreación en dos fases con aplicación de política de contraseñas.
infomaniak_delete_mailboxdestructivoEliminación en dos fases (también borra el correo almacenado).
infomaniak_create_mailbox_aliasdestructivoAñadir alias a un buzón en dos fases.
infomaniak_list_redirectionssolo lecturaReglas de redirección de correo del lado del servidor.
infomaniak_create_redirectiondestructivoCreación de regla en dos fases (reenviar name@… a N destinos).
infomaniak_delete_redirectiondestructivoEliminación de regla en dos fases.

Identidad ("¿quién soy?")

HerramientaAnotaciónPropósito
infomaniak_get_my_profilesolo lecturaNombre, correo, idioma, país, zona horaria, cuenta actual, postura de seguridad (2FA, dispositivos, último inicio de sesión).
infomaniak_get_my_securitysolo lecturaInforme de seguridad enfocado — método 2FA + estado, correo de recuperación, teléfono validado, Yubikey, códigos de rescate, antigüedad de la contraseña, dispositivos de confianza con IP/hora.

Cuenta / Organización (profundo)

HerramientaAnotaciónPropósito
infomaniak_get_account_fullsolo lecturaDetalle completo de la organización: entidad legal, direcciones de facturación, IVA, locale, nivel de soporte, política de 2FA obligatorio, tu rol, etiquetas.
infomaniak_list_teams_and_tagssolo lecturaEquipos (propietarios + recuentos) + etiquetas (con productos que llevan cada etiqueta) en una sola llamada.

Correo (profundo)

HerramientaAnotaciónPropósito
infomaniak_get_mail_hosting_fullsolo lecturaDiagnóstico de salud DNS (MX/SPF/DKIM/DMARC), cuotas, administrador, enlace kSuite padre, FQDNs, acceso de equipo.
infomaniak_get_mailbox_fullsolo lecturaRespuesta automática, alias, último inicio de sesión IMAP/POP3, antigüedad de la contraseña, tamaño del buzón, dispositivos, DKIM, bloqueo SMTP, filtrado de correo (comerciales/sociales), remitentes autorizados/bloqueados.

Dominio (profundo)

HerramientaAnotaciónPropósito
infomaniak_get_domain_fullsolo lecturaauth_code (EPP), estado de transferencia/trade, registros glue, TLD/registro, servicio asociado, detalle DNS + salud, productos asociados, URL de registros DNS. Acepta id o FQDN.

kDrive (profundo, privado del gestor)

HerramientaAnotaciónPropósito
infomaniak_get_drive_fullsolo lecturaNombre del drive, tamaño total, tamaño usado, mantenimiento.
infomaniak_list_drive_userssolo lecturaUsuarios con acceso a un kDrive (auditorías de acceso).
infomaniak_list_drive_trashsolo lecturaElementos en la papelera con marcas de tiempo de eliminación.

VPS / Cloud Server

HerramientaAnotaciónPropósito
infomaniak_list_vpssolo lecturaListar productos Cloud Server (Jelastic) de una organización.
infomaniak_get_vps_fullsolo lecturaCentro de datos, IPs, CPU/RAM, ancho de banda + tráfico, uso de disco, versiones MySQL/PHP, firewall, contactos de soporte premium, historial de migración.

Aplicaciones Node.js (Cloud Server hosting_3)

HerramientaAnotaciónPropósito
infomaniak_list_nodejs_appssolo lecturaDescubrir las aplicaciones en un hosting Node.js. Devuelve el vhost_route_id de cada aplicación (identificador para todas las demás herramientas Node.js) y sus FQDNs de servicio.
infomaniak_get_nodejs_appsolo lecturaConfiguración completa de la aplicación: versión de Node, puerto de escucha, start_command, build_command, IPs públicas (v4 + v6), estado SSL, directorio, cuota de almacenamiento.
infomaniak_nodejs_app_statussolo lecturaEstado en vivo — Running o Stopped. Económico, seguro para sondear.
infomaniak_nodejs_app_aliasessolo lecturaTodos los FQDNs que sirven la aplicación (primario + auto xxx.preview.hosting-ik.com).
infomaniak_nodejs_app_jobssolo lecturaTrabajos recientes (build / restart / …) con JWT de log_stream por trabajo.
infomaniak_nodejs_app_logssolo lecturaDevuelve un JWT de corta duración + URL de endpoint SSE para consumir el flujo stdout/stderr en vivo de la aplicación en ejecución.
infomaniak_nodejs_app_thumbnailsolo lecturaCaptura de pantalla de la página en vivo como JPEG base64 — prueba de humo visual sin sondear HTTP.
infomaniak_nodejs_app_actiondestructivoEn dos fases. Iniciar / detener / reiniciar / build. stop registra un deshacer en start. build devuelve el resource_id del trabajo generado + log_stream en vivo para seguir la salida.

Todas las herramientas Node.js son privadas del gestor (la API pública Bearer expone solo una verificación de estado para hostings Node.js). Requieren INFOMANIAK_AUTH_MODE=auto (cookies de Chrome) o manual (variables de entorno SASESSION + MANAGER-XSRF-TOKEN). Ver REVERSE-ENGINEERING.md §Node.js DevOps.

kDrive

HerramientaAnotaciónPropósito
infomaniak_list_drivessolo lecturaTodos los kDrives a los que la cuenta tiene acceso (con cuota).
infomaniak_list_drive_filessolo lecturaArchivos / subcarpetas de la raíz del drive o cualquier carpeta, paginados.

Acortador de URLs

HerramientaAnotaciónPropósito
infomaniak_list_short_urlssolo lecturaURLs cortas configuradas en un dominio.
infomaniak_short_urls_quotasolo lecturaCuota de URLs cortas usada / disponible en un dominio.
infomaniak_create_short_urldestructivoCreación en dos fases.

Swiss Backup

HerramientaAnotaciónPropósito
infomaniak_list_swiss_backupssolo lecturaSlots de Swiss Backup en la cuenta.

Herramientas de IA

HerramientaAnotaciónPropósito
infomaniak_list_ai_productssolo lecturaSuscripciones de IA que posee la cuenta.
infomaniak_list_ai_modelssolo lecturaCatálogo público de modelos LLM/STT soberanos suizos.

Flujos de trabajo (multi-paso)

HerramientaAnotaciónPropósito
infomaniak_provision_site_fulldestructivoSitio + BD + DNS en un flujo orquestado de plan-luego-aplicar.
infomaniak_audit_dns_zonessolo lecturaAuditoría entre zonas: SPF/DMARC faltantes, registros colgantes, ….

Vía de escape (todo lo demás)

HerramientaAnotaciónPropósito
infomaniak_api_calldestructivoAlcanzar cualquier endpoint en api.infomaniak.com directamente. GET se ejecuta de inmediato, POST/PUT/PATCH/DELETE siguen el commit en dos fases. Rechaza rutas fuera del espacio de nombres documentado /{1,2,3}/... y rechaza /proxy/... privados del gestor (usa una herramienta tipada).

Limitaciones

  • Límite estricto de 60 req/min en api.infomaniak.com. El MCP limita automáticamente con un token-bucket. Verás breves retrasos de cola en ráfagas pesadas; esto es intencional y protege tu token de ser bloqueado.
  • Sin directory fuera de /sites/ al crear un sitio. Requerido por el backend del gestor (silenciosamente no-op de otro modo — ver REVERSE-ENGINEERING.md).
  • Las cookies de sesión del gestor expiran (típicamente cada pocas horas / cuando cierras sesión en Chrome). Reabre manager.infomaniak.com para refrescarlas.
  • Una operación concurrente por hosting — Infomaniak rechaza POSTs concurrentes en el mismo hosting con 400 operation_in_progress. El MCP serializa las llamadas de escritura por hosting.
  • La instalación de WordPress está intencionalmente fuera de alcance. Crea el sitio vacío con este MCP, luego instala WP desde el asistente del gestor (el flujo applications/add usa un asistente por pasos no documentado que es demasiado frágil para automatizar limpiamente hoy).

Hoja de ruta

Enviado en v0.7 (actual)

  • ✅ Hosting web: listar + crear + eliminar sitios, bases de datos, usuarios FTP/SSH
  • ✅ DNS: CRUD completo en registros, habilitar/deshabilitar/verificar DNSSEC
  • ✅ Correo: buzones, alias, firmas, copias de seguridad, redirecciones — todo CRUD
  • ✅ kDrive: listar drives + explorar archivos
  • ✅ Swiss Backup: listar slots
  • ✅ Herramientas de IA: listar productos + catálogo de modelos público
  • ✅ Acortador de URLs: CRUD completo
  • ✅ Auditoría de cuenta: dominios que expiran pronto, productos bloqueados, operaciones en curso
  • ✅ Herramientas de flujo de trabajo: provision_site_full, audit_dns_zones
  • ✅ Herramientas de sesión undo / history
  • ✅ Vía de escape de API genérica para cualquier endpoint documentado

Siguiente (v0.8+)

  • ⬜ Escritura kDrive: subir, descargar, mover, compartir, archivar
  • ⬜ Newsletter: campañas, contactos (sin tocar hoy)
  • ⬜ kChat: canales, hilos, publicaciones (sin API pública aún — necesita ingeniería inversa)
  • ⬜ Flujo de trabajo: provision_wordpress_site (necesita una ruta de instalación de WP que no dependa del asistente frágil del gestor)
  • ⬜ Escritura Swiss Backup: creación de slots, programaciones, restauraciones
  • ⬜ Pruebas de ruta feliz por herramienta para subir la cobertura del 35% al 70%
  • ⬜ Empaquetado MCPB para instalación con un clic en Claude Desktop

FAQ

¿Es este un producto oficial de Infomaniak?

No. Es impulsado por la comunidad, con licencia MIT, y no está afiliado, respaldado ni patrocinado por Infomaniak Network SA. Ver los avisos en NOTICE y REVERSE-ENGINEERING.md.

¿Funciona con clientes distintos de Claude?

Sí. Habla el Model Context Protocol estándar sobre stdio, por lo que funciona con cualquier cliente compatible con MCP — Claude Desktop, Claude Code, Cursor, Cline, Continue, Zed AI, y el MCP Inspector para depuración.

¿Mi token / sesión de Infomaniak saldrá alguna vez de mi máquina?

No. El servidor se ejecuta localmente a través de stdio. Tu token Bearer se lee desde INFOMANIAK_API_TOKEN (env o .env) y se usa únicamente para llamar a api.infomaniak.com. Las cookies de Chrome (SASESSION, MANAGER-XSRF-TOKEN) viven en memoria durante la duración de una sola llamada de herramienta y nunca se persisten. Los registros redactan cada valor sensible (tokens, cookies, contraseñas).

¿Soporta autoalojamiento / ejecución fuera de macOS?

Sí — INFOMANIAK_AUTH_MODE=manual te permite pegar cookies directamente en variables de entorno, que es la vía a usar en servidores Linux, contenedores Docker o CI. La extracción automática desde Chrome funciona en macOS, Windows y Linux cuando Chrome está instalado localmente.

¿Por qué la creación de sitios usa un endpoint privado del gestor y no la API pública?

Porque el endpoint público POST /1/products/{id}/web_hostings/{hid}/sites devuelve silenciosamente una respuesta de éxito sin crear realmente nada. Tras ingeniería inversa del bundle del gestor, descubrimos que el endpoint privado del gestor requiere force_fqdn: true, directory: /sites/... y environment: apache_php — ninguno de los cuales está documentado. Análisis completo en REVERSE-ENGINEERING.md.

¿Puede instalar WordPress automáticamente?

Hoy no. El flujo applications/add del gestor es un asistente de varios pasos con tokens por paso que es frágil de automatizar. El patrón recomendado es: crea el sitio vacío con este MCP, luego instala WordPress (o cualquier otro CMS) desde el asistente del gestor o subiéndolo por FTP/SSH.

¿Hay una versión alojada / SaaS?

No. Por diseño — este servidor se ejecuta con tus propias credenciales en tu propia máquina. No hay SaaS alojado, ni proxy alojado, ni telemetría.

¿Cómo reporto un error o solicito una herramienta?

Abre un issue en GitHub. Incluye la llamada exacta de la herramienta, la entrada, la respuesta (sanitizada — elimina tokens, cookies, nombres de clientes) y tu entorno (versión de Node, SO, cliente MCP, nivel de plan). Los PRs con una prueba fallida son doblemente bienvenidos.

¿Qué pasa con las propias herramientas de IA de Infomaniak?

Infomaniak ejecuta una nube de IA soberana suiza que aloja Llama, Mixtral, Whisper y otros modelos de pesos abiertos. Este MCP expone infomaniak_list_ai_products y infomaniak_list_ai_models para que un agente pueda descubrir qué hay disponible y qué modelos son públicos en tu cuenta; deliberadamente no envolvemos sus endpoints de inferencia (usa la API compatible con OpenAI directamente para eso).

Contribuciones

Las contribuciones son bienvenidas. Por favor, lee CONTRIBUTING.md y sigue el CODE_OF_CONDUCT.md. Los problemas de seguridad deben reportarse de forma privada según SECURITY.md.

Si esto te ahorró tiempo

La forma más rápida de apoyar el proyecto es una ⭐ estrella en GitHub — ayuda a otros usuarios de Infomaniak a encontrar esto y me dice qué seguir construyendo.

También puedes:

  • Abrir un issue para errores, casos límite o herramientas faltantes
  • Iniciar una discusión para preguntas de diseño o API
  • Compartir lo que construiste con esto — me encantaría saberlo

Licencia

MIT — consulta NOTICE para el aviso de marca comercial.

Este proyecto no está afiliado con Infomaniak Network SA. "Infomaniak", "kDrive", "kChat", "kMeet", "kSuite", "Swiss Backup" son marcas comerciales de Infomaniak Network SA.