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
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é · Qué hace · En qué se diferencia
- Instalación · Autenticación · Ejemplo rápido
- Herramientas (78 en 22 áreas) · Limitaciones · Hoja de ruta · FAQ
- Contribuir · Licencia
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:
- 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.
- 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:
- La API pública de Infomaniak (api.infomaniak.com), utilizada con un token Bearer que generas tú mismo.
- 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.comen el alojamientoWP1234567, PHP 8.3, raíz en/sites/staging." - "Añade un registro TXT en
example.compara el nuevo DKIM de Postmark, luego verifica que resuelve." - "¿Cuánto disco usa la base de datos
myprefix_wp123456y qué aplicación está conectada a ella?" - "Crea un buzón
hello@example.comcon 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ón —
infomaniak_overview,infomaniak_helpyinfomaniak_explaindan al agente contexto bajo demanda en lugar de obligarlo a memorizar un catálogo de herramientas. - Memoria de sesión —
infomaniak_historylista cada acción destructiva de la sesión actual, yinfomaniak_undorevierte 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:
| API | Auth | Propósito |
|---|---|---|
api.infomaniak.com/{1,2}/... | Token Bearer | Principalmente lectura: perfil, productos, correo, drive, dns, dominios, facturación |
manager.infomaniak.com/proxy/... | Cookie SASESSION + token CSRF | Escrituras en alojamiento web (sitios, bases de datos, aplicaciones) |
1. Token Bearer (obligatorio)
- Inicia sesión en tu cuenta de Infomaniak.
- Ve a manager.infomaniak.com/v3/ng/profile/user/token/list.
- Haz clic en «Create a token», dale una vida larga, copia el valor.
- 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í)
| Herramienta | Anotación | Propósito |
|---|---|---|
infomaniak_overview | solo lectura | Resumen de organizaciones + productos. Mejor primera llamada. |
infomaniak_help | solo lectura | Sugiere herramientas que coincidan con una intención libre («create site», «list mailboxes»…). |
infomaniak_explain | solo lectura | Devuelve la definición completa (descripción + esquemas) de una herramienta específica. |
infomaniak_audit_account | solo lectura | Escanea una organización por expiraciones / productos bloqueados / operaciones en curso. |
infomaniak_history | solo lectura | Lista las acciones destructivas tomadas en esta sesión. |
infomaniak_undo | destructiva | Revierte una acción de sesión cuando es reversible (commit en dos fases). |
Organizaciones y productos
| Herramienta | Anotación | Propósito |
|---|---|---|
infomaniak_list_organizations | solo lectura | Cuentas a las que tienes acceso técnico. |
infomaniak_list_hostings | solo lectura | Alojamientos web (clásicos + Node.js) para una organización. |
infomaniak_list_domains | solo lectura | Dominios para una organización, con fechas de creación + expiración. |
infomaniak_get_domain | solo lectura | Detalle de un dominio (¿DNS gestionado?, DNSSEC, errores). |
Sitios de alojamiento web
| Herramienta | Anotación | Propósito |
|---|---|---|
infomaniak_find_site | solo lectura | Bú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_sites | solo lectura | Sitios en un alojamiento web dado (con aplicaciones). |
infomaniak_create_site | destructiva | En dos fases: devuelve un plan + token, la segunda llamada con el token realmente crea. |
infomaniak_delete_site | destructiva | Eliminació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.
| Herramienta | Anotación | Propósito |
|---|---|---|
infomaniak_list_site_aliases | solo lectura | FQDNs (principal + aliases) vinculados a un sitio. |
infomaniak_add_site_aliases | destructiva | Vincula 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_alias | destructiva | Desvincula un FQDN alias (el FQDN principal no se puede eliminar). En dos fases. |
Certificados SSL
| Herramienta | Anotación | Propósito |
|---|---|---|
infomaniak_get_certificate | solo lectura | Estado actual del certificado (updating/ok/error), emisor, expiración, errores de identificador ACME. |
infomaniak_request_certificate | destructiva | En 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_certificate | destructiva | En dos fases. Elimina el certificado de un sitio. Deshacer vía request_certificate con type: "free". |
Bases de datos
| Herramienta | Anotación | Propósito |
|---|---|---|
infomaniak_list_databases | solo lectura | Bases de datos MariaDB asociadas a un hosting (con uso de disco). |
infomaniak_get_database | solo lectura | Detalle de una base de datos. |
infomaniak_create_database | destructivo | Creación en dos fases. |
infomaniak_delete_database | destructivo | Eliminación en dos fases (el plan muestra uso de disco + aplicación vinculada). |
infomaniak_list_database_users | solo lectura | Cuentas de usuario a nivel MariaDB asociadas a un hosting (applications, permissions, enlace phpMyAdmin). |
infomaniak_get_database_user | solo lectura | Detalle de un único usuario MariaDB. |
infomaniak_change_database_user_password | destructivo | Rotar la contraseña de un usuario MariaDB y re-declarar sus permisos de forma atómica. En dos fases. |
infomaniak_change_database_user_permissions | destructivo | Cambiar 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
grantsque declara todas las bases de datos a las que el usuario puede acceder — cualquier cosa omitida se establece como sin acceso. Llama ainfomaniak_get_database_userprimero y copia elpermissionsactual, 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 silenciosamentepermissionsyapplications— verREVERSE-ENGINEERING.md§Usuarios de bases de datos.Prefiere estas herramientas sobre un
ALTER USER/SET PASSWORDdirecto 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
| Herramienta | Anotación | Propósito |
|---|---|---|
infomaniak_list_hosting_users | solo lectura | Usuarios FTP / SSH en un hosting web. |
infomaniak_create_hosting_user | destructivo | Creación en dos fases con connection_type: ftp (solo SFTP) o ssh (shell completo + FTP). |
infomaniak_change_hosting_user_password | destructivo | Rotar 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_type | destructivo | Ascender / descender a un usuario entre ftp y ssh. Contraseña sin tocar. En dos fases. |
infomaniak_delete_hosting_user | destructivo | Revocación en dos fases (archivos preservados). |
DNS y DNSSEC
| Herramienta | Anotación | Propósito |
|---|---|---|
infomaniak_dns_list_records | solo lectura | Cada registro DNS en una zona gestionada por Infomaniak. |
infomaniak_dns_create_record | destructivo | Creación de registro en dos fases (A, AAAA, CNAME, MX, TXT, SRV, NS, CAA, PTR, SPF). |
infomaniak_dns_update_record | destructivo | Actualización en dos fases (diff actual vs propuesto en el plan). |
infomaniak_dns_delete_record | destructivo | Eliminación de registro en dos fases (con vista previa completa antes del commit). |
infomaniak_manage_dnssec | mixto | DNSSEC 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
| Herramienta | Anotación | Propósito |
|---|---|---|
infomaniak_list_mail_hostings | solo lectura | Hostings de correo para una organización. |
infomaniak_list_mailboxes | solo lectura | Buzones en un hosting de correo dado. |
infomaniak_get_mailbox_info | solo lectura | Lectura 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_mailbox | destructivo | Creación en dos fases con aplicación de política de contraseñas. |
infomaniak_delete_mailbox | destructivo | Eliminación en dos fases (también borra el correo almacenado). |
infomaniak_create_mailbox_alias | destructivo | Añadir alias a un buzón en dos fases. |
infomaniak_list_redirections | solo lectura | Reglas de redirección de correo del lado del servidor. |
infomaniak_create_redirection | destructivo | Creación de regla en dos fases (reenviar name@… a N destinos). |
infomaniak_delete_redirection | destructivo | Eliminación de regla en dos fases. |
Identidad ("¿quién soy?")
| Herramienta | Anotación | Propósito |
|---|---|---|
infomaniak_get_my_profile | solo lectura | Nombre, correo, idioma, país, zona horaria, cuenta actual, postura de seguridad (2FA, dispositivos, último inicio de sesión). |
infomaniak_get_my_security | solo lectura | Informe 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)
| Herramienta | Anotación | Propósito |
|---|---|---|
infomaniak_get_account_full | solo lectura | Detalle 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_tags | solo lectura | Equipos (propietarios + recuentos) + etiquetas (con productos que llevan cada etiqueta) en una sola llamada. |
Correo (profundo)
| Herramienta | Anotación | Propósito |
|---|---|---|
infomaniak_get_mail_hosting_full | solo lectura | Diagnóstico de salud DNS (MX/SPF/DKIM/DMARC), cuotas, administrador, enlace kSuite padre, FQDNs, acceso de equipo. |
infomaniak_get_mailbox_full | solo lectura | Respuesta 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)
| Herramienta | Anotación | Propósito |
|---|---|---|
infomaniak_get_domain_full | solo lectura | auth_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)
| Herramienta | Anotación | Propósito |
|---|---|---|
infomaniak_get_drive_full | solo lectura | Nombre del drive, tamaño total, tamaño usado, mantenimiento. |
infomaniak_list_drive_users | solo lectura | Usuarios con acceso a un kDrive (auditorías de acceso). |
infomaniak_list_drive_trash | solo lectura | Elementos en la papelera con marcas de tiempo de eliminación. |
VPS / Cloud Server
| Herramienta | Anotación | Propósito |
|---|---|---|
infomaniak_list_vps | solo lectura | Listar productos Cloud Server (Jelastic) de una organización. |
infomaniak_get_vps_full | solo lectura | Centro 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)
| Herramienta | Anotación | Propósito |
|---|---|---|
infomaniak_list_nodejs_apps | solo lectura | Descubrir 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_app | solo lectura | Configuració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_status | solo lectura | Estado en vivo — Running o Stopped. Económico, seguro para sondear. |
infomaniak_nodejs_app_aliases | solo lectura | Todos los FQDNs que sirven la aplicación (primario + auto xxx.preview.hosting-ik.com). |
infomaniak_nodejs_app_jobs | solo lectura | Trabajos recientes (build / restart / …) con JWT de log_stream por trabajo. |
infomaniak_nodejs_app_logs | solo lectura | Devuelve 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_thumbnail | solo lectura | Captura de pantalla de la página en vivo como JPEG base64 — prueba de humo visual sin sondear HTTP. |
infomaniak_nodejs_app_action | destructivo | En 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) omanual(variables de entorno SASESSION + MANAGER-XSRF-TOKEN). VerREVERSE-ENGINEERING.md§Node.js DevOps.
kDrive
| Herramienta | Anotación | Propósito |
|---|---|---|
infomaniak_list_drives | solo lectura | Todos los kDrives a los que la cuenta tiene acceso (con cuota). |
infomaniak_list_drive_files | solo lectura | Archivos / subcarpetas de la raíz del drive o cualquier carpeta, paginados. |
Acortador de URLs
| Herramienta | Anotación | Propósito |
|---|---|---|
infomaniak_list_short_urls | solo lectura | URLs cortas configuradas en un dominio. |
infomaniak_short_urls_quota | solo lectura | Cuota de URLs cortas usada / disponible en un dominio. |
infomaniak_create_short_url | destructivo | Creación en dos fases. |
Swiss Backup
| Herramienta | Anotación | Propósito |
|---|---|---|
infomaniak_list_swiss_backups | solo lectura | Slots de Swiss Backup en la cuenta. |
Herramientas de IA
| Herramienta | Anotación | Propósito |
|---|---|---|
infomaniak_list_ai_products | solo lectura | Suscripciones de IA que posee la cuenta. |
infomaniak_list_ai_models | solo lectura | Catálogo público de modelos LLM/STT soberanos suizos. |
Flujos de trabajo (multi-paso)
| Herramienta | Anotación | Propósito |
|---|---|---|
infomaniak_provision_site_full | destructivo | Sitio + BD + DNS en un flujo orquestado de plan-luego-aplicar. |
infomaniak_audit_dns_zones | solo lectura | Auditoría entre zonas: SPF/DMARC faltantes, registros colgantes, …. |
Vía de escape (todo lo demás)
| Herramienta | Anotación | Propósito |
|---|---|---|
infomaniak_api_call | destructivo | Alcanzar 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
directoryfuera de/sites/al crear un sitio. Requerido por el backend del gestor (silenciosamente no-op de otro modo — verREVERSE-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/addusa 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.