infomaniak-mcp-agent
This MCP server lets Claude (or any MCP client) manage an Infomaniak account end‑to‑end via natural language — auditing, provisioning, and mutating web hosting, mail, DNS, domains, kDrive, VPS, Node.js apps, and more — with every destructive action protected by a two‑phase commit.
Account & audit: overview of orgs/products, domain expiration checks, DNS zone audits, security posture, profile, teams/tags.
Web hosting: list/create/delete sites, manage site aliases, SSL certificates, databases and database users, FTP/SSH users.
DNS & DNSSEC: full CRUD on records (A, AAAA, CNAME, MX, TXT, …), enable/disable/check DNSSEC.
Mail (kSuite): list mail hostings, mailboxes, mailbox aliases, signatures, backups, redirections; create/delete mailboxes and redirections.
kDrive: list drives and browse files, get drive details, list drive users and trash.
VPS / Cloud Server: list and inspect VPS configurations (IPs, resources, firewall, PHP/MySQL versions).
Node.js apps: list, configure, check status, view logs, take screenshots, start/stop/restart/build apps.
Domain management: detailed domain info (EPP code, transfer status, DNS health, associated products).
Miscellaneous: list Swiss Backup slots, AI products and models, short URL management.
Workflows: one‑call provisioning of site+DB+DNS, cross‑zone DNS audits.
Introspection & safety: help/explain tools, session history and undo, generic API escape hatch for undocumented public endpoints.
Provides tools for managing Infomaniak cloud services including web hosting, mail (kSuite), kDrive, domains, DNS, DNSSEC, FTP/SSH users, AI products, and account audits through an agentic interface with two-phase commit for destructive operations.
infomaniak-mcp-agent
Drive your entire Infomaniak account from Claude — agentic, two-phase commit, open-source.
infomaniak-mcp-agent is an unofficial Model Context Protocol server that exposes the full surface of Infomaniak — Switzerland's sovereign cloud — as 78 tools an LLM can call directly: web hosting, mail (kSuite), kDrive, domains, DNS, DNSSEC, FTP/SSH users, AI products, account audits and more. Every destructive operation goes through a strict two-phase commit, so an agent can never silently delete or mutate something on your account.
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?Table of contents
Tools (78 across 22 areas) · Limitations · Roadmap · FAQ
Related MCP server: FutureSense MCP
Why this exists
Infomaniak is one of the very few independent, Swiss-owned, open-source-friendly cloud providers in Europe — running its own datacentres in Switzerland, on hydro and wind power, with no parent in the US or China. Its product range is huge (web hosting, mail, kDrive, kChat, DNS, AI cloud, Swiss Backup, …) but its API is split between a documented public surface and a private manager-only one — which means automating real workflows usually requires a browser session, custom scripts, or both.
This project closes that gap by exposing everything through a single MCP server, so Claude or any other MCP client can run real account operations through natural language: provision a hosting, rotate a DNS record, create a mailbox, audit your domains for upcoming expirations, browse your kDrive — without ever forcing you to leave the chat or write a script.
🎒 Built in the open, in real time, by vibe-coding
This project was built rapidly by an LLM driving a terminal session ("vibe-coding"), with live tests against a real Infomaniak account at every step. It works perfectly on the maintainer's local setup and the full pipeline is green (TypeScript strict, ESLint, Prettier, 78 tests, build, CodeQL, gitleaks).
That said — given how it was built and given that several endpoints used here are reverse-engineered (see REVERSE-ENGINEERING.md) — it is entirely possible that you'll hit (potentially big) bugs depending on your account topology, plan tier, scopes, or Infomaniak's own changes. We are here to fix them as they show up. Please:
Open an issue with the exact tool call, the input, the response, and your environment (Node version, OS, MCP client). Sanitize tokens / cookies / customer names before pasting.
Or, even better, send a PR with a failing test and we will work from there together.
We move fast and ship often. Don't be shy.
⚠️ Status: unofficial
This project is not affiliated with, endorsed by, or sponsored by Infomaniak Network SA. It is a community-driven tool that combines:
The public Infomaniak API (api.infomaniak.com), used with a Bearer token you generate yourself.
Reverse-engineered manager endpoints (manager.infomaniak.com/proxy/...), required for write operations on web hosting that the public API silently ignores.
For full transparency, read REVERSE-ENGINEERING.md. Infomaniak may change these endpoints without notice; we do our best to keep up but cannot guarantee long-term compatibility.
What you can do with it
Once installed, you can ask Claude things like:
"List every domain on my account that expires in less than 60 days, sorted by date."
"Create a new site
staging.example.comon hostingWP1234567, PHP 8.3, root in/sites/staging.""Add a TXT record on
example.comfor the new Postmark DKIM, then verify it resolves.""How much disk does the database
myprefix_wp123456use, and which application is wired to it?""Create a mailbox
hello@example.comwith a 16-character random password and forward it to my Gmail.""Show me which kDrives I'm an admin on and how full they are."
"Audit my whole account: any locked product, expiring SSL, broken DNSSEC, ongoing operations?"
"Undo the last DNS change I made through this session."
It will not silently mutate anything destructive: every change goes through a plan + confirmation token round-trip. You stay in control even if the model gets creative.
Why "agentic" and not "wrapper"
Most MCP servers expose one tool per HTTP endpoint and call it a day. This one is built differently:
Guided dialogues — creating a site walks you through "which organization? which hosting? root domain or subdomain? what type? recap?" instead of asking you to know the right tool to call upfront.
Two-phase commit — every destructive operation returns a plan with a single-use confirmation token (60 s TTL). Nothing is mutated until you call back with the token.
Pre-flight checks — the server checks for conflicts (existing FQDN, busy hosting, expired domain) before hitting the API.
Actionable errors — every error tells you what happened, why, and the next step you can take.
Introspection —
infomaniak_overview,infomaniak_helpandinfomaniak_explaingive the agent context-on-demand instead of forcing it to memorize a tool catalog.Session memory —
infomaniak_historylists every destructive action of the current session, andinfomaniak_undoreverses the ones that are reversible.
See ARCHITECTURE.md for the full design rationale.
Install
Available on npm — the recommended path is to let npx fetch the latest release on demand:
npx infomaniak-mcp-agent(no install step needed; npx resolves the latest version on first invocation and caches it).
Or install globally if you prefer a stable binary in your $PATH:
npm install -g infomaniak-mcp-agentIf you'd rather pin to a specific commit (or hack on the source), install from this repo:
git clone https://github.com/Mogacode-ma/infomaniak-mcp-agent.git
cd infomaniak-mcp-agent
npm ci
npm run build
# resulting binary: ./dist/server.jsConfigure Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %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"
}
}
}
}Restart Claude Desktop to pick up the change.
Configure Claude Code
claude mcp add infomaniak \
-e INFOMANIAK_API_TOKEN=paste-your-token-here \
-e INFOMANIAK_AUTH_MODE=auto \
-- npx -y infomaniak-mcp-agentAuthentication
Two distinct credentials are needed because Infomaniak runs two APIs side-by-side:
API | Auth | Purpose |
| Bearer token | Read-mostly: profile, products, mail, drive, dns, domains, billing |
| SASESSION cookie + CSRF token | Writes on web hosting (sites, databases, applications) |
1. Bearer token (required)
Sign in to your Infomaniak account.
Click "Create a token", give it a long lifetime, copy the value.
Set it in
INFOMANIAK_API_TOKEN.
2. Manager session (auto, recommended)
The manager-private API does not accept Bearer tokens or OAuth (Infomaniak only exposes openid profile email phone scopes to third-party apps; web, mail, etc. are reserved). Instead, we read the SASESSION and MANAGER-XSRF-TOKEN cookies that your local Chrome already has when you are logged into manager.infomaniak.com.
With INFOMANIAK_AUTH_MODE=auto (the default), the MCP reads these cookies on demand using chrome-cookies-secure. Nothing is ever written to disk; cookies live in memory for the duration of one operation.
When the session expires, simply reload manager.infomaniak.com in Chrome — the MCP will pick up the fresh cookies on the next call.
3. Manager session (manual fallback)
For headless environments or troubleshooting:
INFOMANIAK_AUTH_MODE=manual
INFOMANIAK_SASESSION=...
INFOMANIAK_XSRF_TOKEN=...To copy them: open Chrome DevTools on manager.infomaniak.com, Application → Cookies, copy SASESSION and MANAGER-XSRF-TOKEN (URL-encoded — paste as-is, the MCP decodes).
Quick example
A typical first conversation, end-to-end:
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).Tools
78 tools across 22 areas. Use infomaniak_help to fuzzy-search by intent, or infomaniak_explain to dump a tool's full JSON schema.
Introspection (start here)
Tool | Annotation | Purpose |
| read-only | Summary of organizations + products. Best first call. |
| read-only | Suggest tools matching a free-form intent ("create site", "list mailboxes"…). |
| read-only | Returns the full definition (description + schemas) of a specific tool. |
| read-only | Scan an organization for expirations / locked products / ongoing ops. |
| read-only | List destructive actions taken in this session. |
| destructive | Reverse a session action when reversible (two-phase commit). |
Organizations & products
Tool | Annotation | Purpose |
| read-only | Accounts you have technical access to. |
| read-only | Web hostings (classic + Node.js) for one organization. |
| read-only | Domains for one organization, with creation + expiration dates. |
| read-only | Detail of one domain (DNS managed?, DNSSEC, errors). |
Web hosting sites
Tool | Annotation | Purpose |
| read-only | Domain-first lookup. Resolves a public domain (e.g. |
| read-only | Sites on a given web hosting (with applications). |
| destructive | Two-phase: returns a plan + token, second call with token actually creates. |
| destructive | Two-phase delete (full preview of the site to be removed). |
Site aliases
Additional FQDNs bound to an existing site's Apache vhost / DocumentRoot — how you serve several domains from a single install without provisioning a new site.
Tool | Annotation | Purpose |
| read-only | FQDNs (main + aliases) bound to a site. |
| destructive | Bind one or more FQDNs (wildcards like |
| destructive | Unbind one alias FQDN (the main FQDN cannot be removed). Two-phase. |
SSL certificates
Tool | Annotation | Purpose |
| read-only | Current cert status ( |
| destructive | Two-phase. Issue or renew a cert. Three |
| destructive | Two-phase. Remove the cert from a site. Undo via |
Databases
Tool | Annotation | Purpose |
| read-only | MariaDB databases attached to a hosting (with disk usage). |
| read-only | Detail of one database. |
| destructive | Two-phase create. |
| destructive | Two-phase delete (plan shows disk usage + linked app). |
| read-only | MariaDB-level user accounts attached to a hosting ( |
| read-only | Detail of a single MariaDB user. |
| destructive | Rotate a MariaDB user's password and re-declare its grants atomically. Two-phase. |
| destructive | Change which databases a user can reach (read/write/admin per DB), password untouched. Two-phase. |
⚠️ Both tools take a
grantsarray that declares every database the user may access — anything omitted is set to no-access. Callinfomaniak_get_database_userfirst and copy the currentpermissions, or you will silently revoke access. This is deliberate: it is also the canonical way to revoke a grant.They use the manager-private endpoint rather than the public API on purpose. The public
PATCH /1/web_hostings/{id}/database_users/{user}accepts a password, changes it, and silently wipespermissionsandapplications— seeREVERSE-ENGINEERING.md§Database users.Prefer these tools over a direct MariaDB
ALTER USER/SET PASSWORDover SSH. The manager is the source of truth for hosting database credentials: a password set only in MariaDB diverges from it silently, and gets reverted to the manager's value at the next Infomaniak maintenance — which can be months later, with no apparent link to the change.
FTP / SSH users
Tool | Annotation | Purpose |
| read-only | FTP / SSH users on a web hosting. |
| destructive | Two-phase create with |
| destructive | Rotate an FTP/SSH user's password. Two-phase. Pass the user's current |
| destructive | Promote / demote a user between |
| destructive | Two-phase revoke (files preserved). |
DNS & DNSSEC
Tool | Annotation | Purpose |
| read-only | Every DNS record on an Infomaniak-managed zone. |
| destructive | Two-phase create record (A, AAAA, CNAME, MX, TXT, SRV, NS, CAA, PTR, SPF). |
| destructive | Two-phase update (current vs proposed diff in the plan). |
| destructive | Two-phase delete record (with full preview before commit). |
| mixed | Unified DNSSEC: |
Tool | Annotation | Purpose |
| read-only | Mail hostings for one organization. |
| read-only | Mailboxes on a given mail hosting. |
| read-only | Unified mailbox read: pass |
| destructive | Two-phase create with password policy enforcement. |
| destructive | Two-phase delete (also wipes stored mail). |
| destructive | Two-phase add alias to a mailbox. |
| read-only | Server-side mail redirection rules. |
| destructive | Two-phase create rule (forward |
| destructive | Two-phase delete rule. |
Identity ("who am I?")
Tool | Annotation | Purpose |
| read-only | Name, email, language, country, timezone, current account, security posture (2FA, devices, last login). |
| read-only | Focused security report — 2FA method + status, recovery email, validated phone, Yubikey, rescue codes, password age, trusted devices with IP/time. |
Account / Org (deep)
Tool | Annotation | Purpose |
| read-only | Full org detail: legal entity, billing addresses, VAT, locale, support tier, 2FA-required policy, your role, tags. |
| read-only | Teams (owners + counts) + tags (with products carrying each tag) in a single call. |
Mail (deep)
Tool | Annotation | Purpose |
| read-only | DNS health diagnostic (MX/SPF/DKIM/DMARC), quotas, admin, parent kSuite link, FQDNs, team access. |
| read-only | Auto-responder, aliases, IMAP/POP3 last login, password age, mailbox size, devices, DKIM, SMTP ban, mail filtering (commercials/social), authorized/blocked senders. |
Domain (deep)
Tool | Annotation | Purpose |
| read-only |
|
kDrive (deep, manager-private)
Tool | Annotation | Purpose |
| read-only | Drive name, total size, used size, maintenance. |
| read-only | Users with access to a kDrive (access audits). |
| read-only | Items in the trash bin with deletion timestamps. |
VPS / Cloud Server
Tool | Annotation | Purpose |
| read-only | List Cloud Server (Jelastic) products of an org. |
| read-only | Datacenter, IPs, CPU/RAM, bandwidth + traffic, disk usage, MySQL/PHP versions, firewall, premium support contacts, migration history. |
Node.js apps (Cloud Server hosting_3)
Tool | Annotation | Purpose |
| read-only | Discover the apps on a Node.js hosting. Returns each app's |
| read-only | Full app config: Node version, listen port, |
| read-only | Live status — |
| read-only | All FQDNs serving the app (primary + auto |
| read-only | Recent jobs (build / restart / …) with per-job log_stream JWT. |
| read-only | Returns a short-lived JWT + SSE endpoint URL to consume the live stdout/stderr stream of the running app. |
| read-only | Screenshot of the live page as a base64 JPEG — visual smoke test without HTTP-probing. |
| destructive | Two-phase. Start / stop / restart / build. |
All Node.js tools are manager-private (the public Bearer API exposes only a state-check for Node.js hostings). They require
INFOMANIAK_AUTH_MODE=auto(Chrome cookies) ormanual(SASESSION + MANAGER-XSRF-TOKEN env vars). SeeREVERSE-ENGINEERING.md§Node.js DevOps.
kDrive
Tool | Annotation | Purpose |
| read-only | All kDrives the account has access to (with quota). |
| read-only | Files / subfolders of a drive root or any folder, paginated. |
URL shortener
Tool | Annotation | Purpose |
| read-only | Short URLs configured on a domain. |
| read-only | Short URL quota used / available on a domain. |
| destructive | Two-phase create. |
Swiss Backup
Tool | Annotation | Purpose |
| read-only | Swiss Backup slots on the account. |
AI Tools
Tool | Annotation | Purpose |
| read-only | AI subscriptions the account owns. |
| read-only | Public catalogue of Swiss-sovereign LLM/STT models. |
Workflows (multi-step)
Tool | Annotation | Purpose |
| destructive | Site + DB + DNS in one orchestrated, plan-then-apply flow. |
| read-only | Cross-zone audit: missing SPF/DMARC, dangling records, …. |
Escape hatch (everything else)
Tool | Annotation | Purpose |
| destructive | Reach any endpoint on |
Limitations
Hard rate limit of 60 req/min on
api.infomaniak.com. The MCP throttles automatically with a token-bucket. You will see brief queueing delays on heavy bursts; this is intentional and protects your token from blacklisting.No
directoryoutside/sites/when creating a site. Required by the manager backend (silently no-ops otherwise — seeREVERSE-ENGINEERING.md).Manager session cookies expire (typically every few hours / when you sign out of Chrome). Re-open manager.infomaniak.com to refresh.
One concurrent operation per hosting — Infomaniak rejects concurrent POSTs on the same hosting with
400 operation_in_progress. The MCP serializes write calls per hosting.WordPress installation is intentionally out of scope. Create the empty site with this MCP, then install WP from the manager's wizard (the
applications/addflow uses an undocumented per-step wizard that is too brittle to automate cleanly today).
Roadmap
Shipped in v0.7 (current)
✅ Web hosting: list + create + delete sites, databases, FTP/SSH users
✅ DNS: full CRUD on records, DNSSEC enable/disable/check
✅ Mail: mailboxes, aliases, signatures, backups, redirections — all CRUD
✅ kDrive: list drives + browse files
✅ Swiss Backup: list slots
✅ AI Tools: list products + public model catalogue
✅ URL shortener: full CRUD
✅ Account audit: domains expiring soon, locked products, ongoing operations
✅ Workflow tools:
provision_site_full,audit_dns_zones✅
undo/historysession tools✅ Generic API escape hatch for any documented endpoint
Next (v0.8+)
⬜ kDrive write: upload, download, move, share, archive
⬜ Newsletter: campaigns, contacts (untouched today)
⬜ kChat: channels, threads, posts (no public API yet — needs reverse-engineering)
⬜ Workflow:
provision_wordpress_site(needs a WP install path that does not depend on the brittle manager wizard)⬜ Swiss Backup write: slot creation, schedules, restores
⬜ Per-tool happy-path tests to push coverage from 35% to 70%
⬜ MCPB packaging for one-click install in Claude Desktop
FAQ
Is this an official Infomaniak product?
No. It is community-driven, MIT-licensed, and not affiliated with, endorsed by, or sponsored by Infomaniak Network SA. See the disclaimers in NOTICE and REVERSE-ENGINEERING.md.
Does it work with clients other than Claude?
Yes. It speaks the standard Model Context Protocol over stdio, so it works with any MCP-capable client — Claude Desktop, Claude Code, Cursor, Cline, Continue, Zed AI, and the MCP Inspector for debugging.
Will my Infomaniak token / session ever leave my machine?
No. The server runs locally over stdio. Your Bearer token is read from INFOMANIAK_API_TOKEN (env or .env) and used only to call api.infomaniak.com. The Chrome cookies (SASESSION, MANAGER-XSRF-TOKEN) live in memory for the duration of a single tool call and are never persisted. Logs redact every sensitive value (tokens, cookies, passwords).
Does it support self-hosting / running outside macOS?
Yes — INFOMANIAK_AUTH_MODE=manual lets you paste cookies straight into env vars, which is the path to use on Linux servers, Docker containers, or CI. Auto-extraction from Chrome works on macOS, Windows, and Linux when Chrome is installed locally.
Why does site creation use a manager-private endpoint and not the public API?
Because the public POST /1/products/{id}/web_hostings/{hid}/sites endpoint silently returns a success response without actually creating anything. After reverse-engineering the manager bundle we found that the manager-private endpoint requires force_fqdn: true, directory: /sites/..., and environment: apache_php — none of which are documented. Full write-up in REVERSE-ENGINEERING.md.
Can it install WordPress automatically?
Not today. The manager's applications/add flow is a multi-step wizard with per-step tokens that is brittle to script. The recommended pattern is: create the empty site with this MCP, then install WordPress (or any other CMS) from the manager wizard or by uploading via FTP/SSH.
Is there a hosted / SaaS version?
No. By design — this server runs against your own credentials on your own machine. There is no hosted SaaS, no hosted proxy, no telemetry.
How do I report a bug or request a tool?
Open a GitHub issue. Include the exact tool call, the input, the response (sanitized — strip tokens, cookies, customer names), and your environment (Node version, OS, MCP client, plan tier). PRs with a failing test are doubly welcome.
What about Infomaniak's own AI Tools?
Infomaniak runs a Swiss-sovereign AI cloud hosting Llama, Mixtral, Whisper and other open-weights models. This MCP exposes infomaniak_list_ai_products and infomaniak_list_ai_models so an agent can discover what's available and what models are public on your account; we deliberately do not wrap their inference endpoints (use the OpenAI-compatible API directly for that).
Contributing
Contributions are welcome. Please read CONTRIBUTING.md and follow the CODE_OF_CONDUCT.md. Security issues should be reported privately per SECURITY.md.
If this saved you time
The fastest way to support the project is a ⭐ star on GitHub — it helps other Infomaniak users find this and tells me what to keep building.
You can also:
Open an issue for bugs, edge cases, or missing tools
Start a discussion for design or API questions
Share what you built with it — I'd love to hear
License
MIT — see NOTICE for the trademark disclaimer.
This project is not affiliated with Infomaniak Network SA. "Infomaniak", "kDrive", "kChat", "kMeet", "kSuite", "Swiss Backup" are trademarks of Infomaniak Network SA.
Développé par Mogacode, agence de référencement en abonnement : notre technologie.
Available Tools
74 toolsinfomaniak_add_site_aliasesADestructive
Bind one or more additional FQDNs (including wildcards like *.example.com) to a web hosting site. Lets the site's Apache vhost / DocumentRoot serve those new domains too — no new site provisioning required. Two-phase commit. Asynchronous: returns a progress_id; the alias appears in infomaniak_list_site_aliases after a few seconds of provisioning. Manager-private.
Inputs: hosting_id (required), site_id (required), aliases (required), confirmation_token. Returns: object
infomaniak_api_callADestructive
Escape hatch: call ANY Infomaniak public API endpoint (api.infomaniak.com) when no dedicated tool exists. GET runs immediately. POST/PUT/PATCH/DELETE follow the two-phase commit pattern. Manager-private (/proxy/...) endpoints are NOT reachable through this tool — use a typed tool instead.
Inputs: method (required), path (required), query, body, +1 more. Returns: object
infomaniak_audit_accountARead-onlyIdempotent
Scan an Infomaniak organization for actionable issues: products expiring soon, products in maintenance, locked products, ongoing operations.
Inputs: account_id, days_ahead, max_domain_checks. Returns: account_id, scanned_products, findings, summary_markdown
infomaniak_audit_dns_zonesARead-onlyIdempotent
Bulk-read every domain owned by an account: number of DNS records and DNSSEC status per zone. Useful for spot-checking large fleets.
Inputs: account_id, max_domains, filter_contains. Returns: account_id, scanned, zones, summary_markdown
infomaniak_create_databaseADestructive
Create a new MariaDB database on a web hosting. Two-phase commit. Goes through the manager-private API because the public one silently no-ops on database POSTs.
Inputs: hosting_id (required), database_name (required), description, confirmation_token. Returns: object
infomaniak_create_hosting_userADestructive
Create a new FTP / SSH user on a web hosting. Two-phase commit. Connection types: ftp (SFTP-only, no shell) or ssh (full shell + FTP). The password follows Infomaniak's default policy.
Inputs: hosting_id (required), login (required), password (required), connection_type, +2 more. Returns: object
infomaniak_create_mailboxADestructive
Create a new mailbox on a mail hosting. Two-phase commit: plan + token first, then apply with token. The password never appears in the plan output.
Inputs: mail_hosting_id (required), mailbox_name (required), password (required), description, +1 more. Returns: object
infomaniak_create_mailbox_aliasADestructive
Add a new alias to an existing mailbox. Two-phase commit. The alias will receive emails delivered to the underlying mailbox.
Inputs: mail_hosting_id (required), mailbox_name (required), alias (required), confirmation_token. Returns: object
infomaniak_create_redirectionBDestructive
Create a server-side mail redirection. Two-phase commit. Emails received at name@ will be forwarded to every address in targets.
Inputs: mail_hosting_id (required), name (required), targets (required), confirmation_token. Returns: object
infomaniak_create_short_urlADestructive
Create a new short URL pointing to a long target. Two-phase commit. Use infomaniak_short_urls_quota first if you're not sure you have headroom.
Inputs: target (required), confirmation_token. Returns: object
infomaniak_create_siteADestructive
Creates a new site on an Infomaniak web hosting. Two-phase commit: first call returns a plan with a confirmation_token, second call (same params + token) actually creates the site.
Inputs: hosting_id (required), fqdn (required), directory, environment, +1 more. Returns: object
infomaniak_delete_certificateADestructive
Delete the SSL certificate of a site (the site will fall back to no HTTPS or Infomaniak's default cert until a new one is requested). Two-phase commit. The plan pulls the current certificate status so the caller can see what is about to be removed.
Inputs: hosting_id (required), site_id (required), confirmation_token. Returns: object
infomaniak_delete_databaseADestructiveIdempotent
Delete a MariaDB database. Two-phase commit, manager-private API. WARNING: the database content (tables, rows) is wiped and cannot be recovered without an Infomaniak backup.
Inputs: hosting_id (required), database_name (required), confirmation_token. Returns: object
infomaniak_delete_hosting_userADestructiveIdempotent
Revoke a hosting user (FTP / SSH access). Two-phase commit. Existing files are not deleted.
Inputs: hosting_id (required), login (required), confirmation_token. Returns: object
infomaniak_delete_mailboxADestructiveIdempotent
Delete a mailbox. Two-phase commit. WARNING: this also deletes all stored emails for that mailbox.
Inputs: mail_hosting_id (required), mailbox_name (required), confirmation_token. Returns: object
infomaniak_delete_redirectionADestructiveIdempotent
Delete a mail redirection. Two-phase commit.
Inputs: mail_hosting_id (required), name (required), confirmation_token. Returns: object
infomaniak_delete_siteADestructiveIdempotent
Delete a site from an Infomaniak web hosting. Two-phase commit: first call returns a plan with the site preview + token, second call (same params + token) actually deletes. WARNING: this also wipes the site directory on the FTP backend after a short grace period.
Inputs: hosting_id (required), site_id (required), confirmation_token. Returns: object
infomaniak_delete_site_aliasADestructive
Remove one alias FQDN from a web hosting site (the main FQDN cannot be removed). Two-phase commit. After this, the site's Apache vhost will no longer respond to the alias. Manager-private.
Inputs: hosting_id (required), site_id (required), alias (required), confirmation_token. Returns: object
infomaniak_dns_create_recordADestructive
Create a DNS record on an Infomaniak-managed zone. Two-phase commit: first call returns a plan + token, second call (same params + token) actually creates the record.
Inputs: zone (required), source (required), type (required), target (required), +2 more. Returns: object
infomaniak_dns_delete_recordADestructiveIdempotent
Delete a DNS record from an Infomaniak-managed zone. Two-phase commit: first call returns a plan with a preview of the record to delete + token, second call (same params + token) actually deletes.
Inputs: zone (required), record_id (required), confirmation_token. Returns: object
infomaniak_dns_list_recordsARead-onlyIdempotent
List every DNS record on a zone managed by Infomaniak. Use the root domain (e.g. 'example.com'), not a subdomain.
Inputs: zone (required). Returns: zone, count, records
infomaniak_dns_update_recordADestructiveIdempotent
Update one or more fields of a DNS record. Two-phase commit: first call shows current vs proposed values + token; second call (same params + token) applies the update.
Inputs: zone (required), record_id (required), source, type, +3 more. Returns: object
infomaniak_explainARead-onlyIdempotent
Returns the full definition of a specific tool — description, annotations, input parameters and output shape.
Inputs: tool (required). Returns: tool, description, annotations, input_schema, +1 more
infomaniak_find_siteARead-onlyIdempotent
Locate a domain (e.g. broz.be) in the Infomaniak account tree. Returns {account_id, hosting_id, site_id, hosting_label, full site object}. Use this BEFORE any tool that requires hosting_id + site_id (get_certificate, request_certificate, list_databases, etc.) when you only know the domain name. Significantly cheaper than calling list_hostings + list_sites manually because it short-circuits on the first match.
Inputs: domain (required), account_id. Returns: found, domain, account_id, hosting_id, +5 more
infomaniak_get_account_fullARead-onlyIdempotent
Full organization detail: legal entity, billing address(es), VAT, locale, timezone, logo URLs, support tier (premium=2), 2FA-required policy, your role (owner/admin/billing/user), user/owner counts, tags. Manager-private.
Inputs: account_id (required). Returns: id, name, legal_entity_type, website, +23 more
infomaniak_get_certificateARead-onlyIdempotent
Return the full SSL certificate detail for one site on a web hosting: provisioning state (installed, updating, error, …), type (free/paid/custom) and sub-type (lets_encrypt, …), issuer + organization, validity flags (is_valid, is_expired, is_selfsigned), issue and expiry timestamps, SHA-256 fingerprint, main FQDN in IDN form, ACME identifier errors and the timestamp of the last issuance attempt.
Inputs: hosting_id (required), site_id (required). Returns: site_id, status, type, sub_type, +14 more
infomaniak_get_databaseARead-onlyIdempotent
Get the full detail of a specific database (disk usage, application, permissions, backups).
Inputs: hosting_id (required), database_name (required). Returns: name, description, application, disk_used, +3 more
infomaniak_get_database_userARead-onlyIdempotent
Fetch the detail of a single MariaDB-level user (applications, permissions, link to phpMyAdmin).
Inputs: hosting_id (required), user_name (required). Returns: name, applications, permissions, is_temporary, +5 more
infomaniak_get_domainARead-onlyIdempotent
Get detailed information about a domain (DNS management status, DNSSEC, IDN, errors).
Inputs: domain (required). Returns: id, customer_name, is_dns_managed_by_infomaniak, is_external, +9 more
infomaniak_get_domain_fullARead-onlyIdempotent
Full domain detail including auth_code (EPP transfer code), transfer_status, trade_status, termination state, glue records, TLD/registry info, attached service (web hosting), DNS detail, DNS health diagnostic, owner (registrant), associated products on the domain AND its subdomains, and the DNS logs API URL. Accepts either domain_id or FQDN. Manager-private.
Inputs: domain (required). Returns: id, customer_name, puny_code, has_dnssec, +43 more
infomaniak_get_drive_fullARead-onlyIdempotent
Full kDrive detail: name, total size (bytes), used size, creation/update timestamps, maintenance flag. Useful for storage usage monitoring. Manager-private — distinct from the existing infomaniak_list_drives which hits the public Bearer API.
Inputs: drive_id (required). Returns: id, name, size, used_size, +4 more
infomaniak_get_mailbox_fullARead-onlyIdempotent
Full mailbox detail: auto-responder (vacation reply) state + content, aliases, redirections, IMAP/POP3 last login, password age, size on disk, trusted devices count, DKIM signature flag, SMTP ban status, Gmail-style filtering (commercials/social_networks), authorized/blocked senders, attached users + teams. Useful for mailbox audits and onboarding flows. Manager-private.
Inputs: mail_hosting_id (required), mailbox_name (required). Returns: mailbox_name, mailbox, mailbox_idn, note, +35 more
infomaniak_get_mailbox_infoARead-onlyIdempotent
Read mailbox metadata in one call. Pick any subset of {aliases, signatures, backups} via the fields argument; the tool hits only the corresponding endpoints in parallel. Replaces the v0.9 trio get_mailbox_aliases / get_mailbox_signatures / get_mailbox_backups with no loss of capability.
Inputs: mail_hosting_id (required), mailbox_name (required), fields. Returns: mail_hosting_id, mailbox_name, fields, aliases, +3 more
infomaniak_get_mail_hosting_fullARead-onlyIdempotent
Full mail hosting detail with diagnostic_dns (MX/SPF/DKIM/DMARC health check), quotas (mailboxes + redirections + per-mailbox disk), admin user, parent kSuite link, FQDN list, and team access flag. Use this for mail-config sanity checks. Manager-private.
Inputs: mail_hosting_id (required). Returns: id, account_id, service_id, service_name, +39 more
infomaniak_get_my_profileARead-onlyIdempotent
Get the identity of the currently-authenticated Infomaniak user: name, email, language, country, timezone, current_account_id (= the organization being managed by default), and the full security posture (2FA status, recovery email, validated phone, trusted devices, last login). Use this first to confirm which user + account the MCP is acting on behalf of. Manager-private — requires SASESSION cookie.
Inputs: no named parameters. Returns: id, display_name, first_name, last_name, +7 more
infomaniak_get_my_securityARead-onlyIdempotent
Security posture report for the current user: 2FA status & method, recovery email, validated phone, Yubikey, remaining rescue codes, last login timestamp, password age, and the list of trusted (auth-paired) devices with their last connection IP and time. Useful as a periodic security review or pre-action sanity check. Manager-private.
Inputs: no named parameters. Returns: score, score_max, twofa_enabled, twofa_method, +9 more
infomaniak_get_nodejs_appARead-onlyIdempotent
Get full configuration of a Node.js application: Node version, listen port, start_command, build_command, public IPs (v4 + v6), SSL status, primary FQDN, preview URL, directory on disk, and disk usage. Manager-private — requires SASESSION + CSRF cookies.
Inputs: hosting_id (required), vhost_route_id (required). Returns: id, unique_id, service_id, customer_name, +14 more
infomaniak_get_vps_fullARead-onlyIdempotent
Full VPS / Cloud Server detail: location (datacenter), managed/lite flags, IPv4 + IPv6, CPU/RAM/perf, bandwidth + traffic, disk usage (total/assigned/used/database), website/hosting counts, MySQL version + database type, PHP versions, firewall config, premium support contacts (email/url/emergency), migration history. Use after infomaniak_list_vps to drill into one server. Manager-private.
Inputs: vps_id (required). Returns: id, account_id, service_id, service_name, +46 more
infomaniak_helpARead-onlyIdempotent
Suggest which Infomaniak tools to use for a given intent expressed in natural language. Lightweight keyword matching against tool names and descriptions.
Inputs: intent (required), limit. Returns: intent, suggestions, next_step_markdown
infomaniak_historyARead-onlyIdempotent
List the destructive actions taken in the current session, most recent first. Each entry includes whether it can be reversed via infomaniak_undo.
Inputs: limit. Returns: count, entries
infomaniak_list_ai_modelsARead-onlyIdempotent
List the public catalogue of LLM/STT/embedding models hosted by Infomaniak (Mixtral, Llama variants, Whisper, …). Useful to know what to target with the OpenAI-compatible chat endpoint.
Inputs: no named parameters. Returns: count, models
infomaniak_list_ai_productsARead-onlyIdempotent
List the Infomaniak AI products the account owns. If empty, the user has not subscribed to any AI plan; subscribe at https://www.infomaniak.com/en/hosting/ai-tools.
Inputs: no named parameters. Returns: count, products
infomaniak_list_databasesARead-onlyIdempotent
List every MariaDB database attached to a web hosting (with disk usage and any running operations).
Inputs: hosting_id (required). Returns: hosting_id, count, databases
infomaniak_list_database_usersARead-onlyIdempotent
List the MariaDB-level user accounts attached to a web hosting (each has its own password and a permissions array listing the databases they can read/write/administer). For WordPress sites the user account has the same name as its database and is marked protected: true.
Inputs: hosting_id (required). Returns: hosting_id, count, users
infomaniak_list_domainsARead-onlyIdempotent
List every domain owned by an Infomaniak organization, with creation and expiration dates.
Inputs: account_id. Returns: account_id, count, domains
infomaniak_list_drive_filesARead-onlyIdempotent
List files and subfolders of a kDrive root or a specific folder. Supports pagination.
Inputs: drive_id (required), parent_id, per_page, page. Returns: drive_id, page, per_page, count, +1 more
infomaniak_list_drivesARead-onlyIdempotent
List every kDrive the account has access to.
Inputs: account_id. Returns: account_id, count, drives
infomaniak_list_drive_trashARead-onlyIdempotent
List the items currently in the kDrive trash bin (files and folders). Each item shows when it was deleted and when added to the drive. Use this to audit what's pending hard-deletion. Manager-private.
Inputs: drive_id (required). Returns: drive_id, count, items
infomaniak_list_drive_usersARead-onlyIdempotent
List the users with access to a kDrive. Useful for access audits — who can touch what's in this drive. Manager-private.
Inputs: drive_id (required). Returns: drive_id, count, users
infomaniak_list_hostingsARead-onlyIdempotent
Lists web hostings (classic + Node.js) for a given Infomaniak organization. Use infomaniak_list_organizations first to discover account IDs.
Inputs: account_id, include_nodejs. Returns: account_id, hostings
infomaniak_list_hosting_usersARead-onlyIdempotent
List the FTP / SSH users that have access to a web hosting (with environment and SSH flag).
Inputs: hosting_id (required). Returns: hosting_id, count, users
infomaniak_list_mailboxesARead-onlyIdempotent
List every mailbox on a given mail hosting.
Inputs: mail_hosting_id (required). Returns: mail_hosting_id, count, mailboxes
infomaniak_list_mail_hostingsARead-onlyIdempotent
List every mail hosting (a.k.a. email_hosting) attached to an Infomaniak organization.
Inputs: account_id. Returns: account_id, count, mail_hostings
infomaniak_list_nodejs_appsARead-onlyIdempotent
List Node.js applications running on a hosting_3 (Cloud Server Node.js) container. Each Infomaniak Node.js hosting runs a single app, so this typically returns one entry. Returns the vhost_route_id needed for every other Node.js tool, and the FQDNs serving the app. Manager-private endpoint — requires SASESSION + CSRF cookies (set INFOMANIAK_AUTH_MODE=auto).
Inputs: hosting_id (required). Returns: hosting_id, hosting_name, hosting_state, apps
infomaniak_list_organizationsARead-onlyIdempotent
Lists all Infomaniak organizations (accounts) the current token has technical access to.
Inputs: no named parameters. Returns: organizations
infomaniak_list_redirectionsARead-onlyIdempotent
List every server-side redirection rule on a mail hosting.
Inputs: mail_hosting_id (required). Returns: mail_hosting_id, count, redirections
infomaniak_list_short_urlsARead-onlyIdempotent
List the short URLs created by your account on Infomaniak's url-shortener service.
Inputs: page, per_page. Returns: page, per_page, count, short_urls
infomaniak_list_site_aliasesARead-onlyIdempotent
List the FQDNs (main + aliases) bound to a web hosting site. The site responds to all of them via the same Apache vhost / DocumentRoot — adding an alias is how you serve more domains from a single WordPress install without provisioning a new site. Manager-private.
Inputs: hosting_id (required), site_id (required). Returns: hosting_id, site_id, count, main_fqdn, +1 more
infomaniak_list_sitesARead-onlyIdempotent
Lists all sites on a given web hosting (with applications attached).
Inputs: hosting_id (required). Returns: hosting_id, sites
infomaniak_list_swiss_backupsARead-onlyIdempotent
List Swiss Backup subscriptions on an Infomaniak organization (Acronis-based managed backup).
Inputs: account_id. Returns: account_id, count, swiss_backups
infomaniak_list_teams_and_tagsARead-onlyIdempotent
List the teams (with owners + user/product counts) AND the tags (with products carrying each tag) of an organization, in a single call. Both are useful to understand how an org partitions access and labels its products. Manager-private.
Inputs: account_id (required). Returns: teams, teams_count, tags, tags_count
infomaniak_list_vpsARead-onlyIdempotent
List the VPS (Cloud Server, Jelastic-managed) products of an organization. Returns id, customer_name, internal_name (the server hostname), location, cloud_version, managed/lite flags, billing. Use this before infomaniak_get_vps_full to find the id of a specific server. Manager-private.
Inputs: account_id (required). Returns: account_id, count, vps
infomaniak_manage_dnssecAIdempotent
Unified DNSSEC management for a domain: check (read state + KSK/DS records), enable (publish DS record at registry), or disable (remove DS record). enable and disable use a two-phase commit: the first call returns a plan + confirmation_token (TTL ~60s), the second call applies the change. Replaces the v0.9 trio dnssec_check / dnssec_enable / dnssec_disable with no loss of capability.
Inputs: domain (required), action, confirmation_token. Returns: object
infomaniak_nodejs_app_actionADestructive
Start, stop, restart, or build a Node.js application. Two-phase commit: first call returns a plan + token, second call (with the token + same args) applies. stop causes downtime until next start. build triggers a build job and returns its log_stream so you can tail the output. Manager-private.
Inputs: hosting_id (required), vhost_route_id (required), action (required), confirmation_token. Returns: object
infomaniak_nodejs_app_aliasesARead-onlyIdempotent
List the FQDNs (domain names) serving a Node.js application. Returns the primary FQDN plus the automatic preview URL (xxx.preview.hosting-ik.com). Manager-private.
Inputs: hosting_id (required), vhost_route_id (required). Returns: count, aliases
infomaniak_nodejs_app_jobsARead-onlyIdempotent
List the recent jobs that ran for a Node.js app (builds, restarts, etc.) with their status and a JWT-protected log_stream endpoint per job. Manager-private.
Inputs: hosting_id (required), vhost_route_id (required). Returns: jobs, total
infomaniak_nodejs_app_logsARead-only
Get credentials to consume the LIVE stdout/stderr stream of a Node.js application. Returns a one-shot JWT (valid ~1h) and the endpoint URL on manager-logs-01.hosting-ik.com. The stream itself is Server-Sent Events: consume with curl -N -H 'Authorization: Bearer <jwt>' <endpoint>. To fetch a single snapshot, kill the curl after a few lines. Manager-private.
Inputs: hosting_id (required), vhost_route_id (required). Returns: endpoint, jwt_token, expires_at_iso, consumer_hint
infomaniak_nodejs_app_statusARead-onlyIdempotent
Get the live status of a Node.js application — Running or Stopped. Cheap call, safe to poll. Manager-private — requires SASESSION + CSRF cookies.
Inputs: hosting_id (required), vhost_route_id (required). Returns: status
infomaniak_nodejs_app_thumbnailARead-onlyIdempotent
Get a screenshot of the running Node.js app as a base64 JPEG data URL. Useful to visually confirm the app is alive without HTTP-probing. Set refresh=true to force a fresh screenshot. Manager-private.
Inputs: hosting_id (required), vhost_route_id (required), refresh. Returns: blob
infomaniak_overviewARead-onlyIdempotent
Returns a summary of all Infomaniak organizations and products you have access to. Best called first in a session.
Inputs: account_id. Returns: total_accounts, total_products, accounts, summary_markdown
infomaniak_provision_site_fullADestructive
Provision a complete website end-to-end: web site + MariaDB database + DNS A record. Two-phase commit at the workflow level. The plan lists every step that will run; on apply, each step is executed and reported in order so you can see partial completion if anything fails mid-way.
Inputs: hosting_id (required), fqdn (required), database_name (required), zone, +4 more. Returns: object
infomaniak_request_certificateADestructive
Request a new SSL certificate (or re-issue / renew an existing one) for a site on a web hosting. Two-phase commit. Three types supported: free (Let's Encrypt, no extra fields), paid (Sectigo, requires certificate_id), custom (BYO PEM, requires certificate + private_key). Returns an operation_uuid; poll infomaniak_get_certificate to track progress.
Inputs: hosting_id (required), site_id (required), type (required), certificate_id, +4 more. Returns: object
infomaniak_short_urls_quotaARead-onlyIdempotent
Return the current consumption and limit of your account's short-URL quota.
Inputs: no named parameters. Returns: quota, limit
infomaniak_undoADestructive
Reverse a destructive action recorded in the session history (when reversible). Two-phase commit: returns a plan first, then applies the undo on the second call.
Inputs: history_id (required), confirmation_token. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 74 tools
Most tools target a clearly distinct Infomaniak resource and action, and the consistent prefix makes them easy to scan. A few close pairs exist — get_my_profile vs get_my_security, get_domain vs get_domain_full, get_mailbox_info vs get_mailbox_full — so agents may need to read descriptions carefully before selecting.
A majority of tools follow infomaniak_<verb>_<noun>, and all names are readable snake_case. However, DNS tools invert this pattern (dns_create_record vs create_mailbox), Node.js tools use mixed noun-first forms (nodejs_app_status vs get_nodejs_app), and a few names like overview, help, short_urls_quota, and api_call do not follow the verb_noun convention.
74 tools is far beyond the moderate range and exceeds even the 50+ extreme threshold. The broad Infomaniak product suite partly explains the count, but this should be split into product-scoped servers or significantly consolidated, because the current surface imposes a very large selection burden on an agent.
There is good lifecycle coverage for DNS, certificates, databases, mailboxes, and several create/list/delete workflows, and infomaniak_api_call provides an escape hatch for missing public API operations. Still, obvious gaps exist: no update/reset for mailbox or hosting users, no delete for short URLs, no alias deletion for mailboxes, and kDrive/VPS areas are entirely read-only. These gaps will require workarounds for common management tasks.
Maintenance
Related MCP Connectors
One MCP endpoint for Claude, GPT & Gemini: 100+ tools + no-code connectors + agent workers.
214 tools for AI agents over one MCP endpoint: image, video, audio, 3D, data, storage, mail, GPUs.
Send and read WhatsApp, email and SMS from Claude, ChatGPT, Cursor or any MCP client, from your own accounts: your WhatsApp number (linked by QR code), your mailbox (IMAP/SMTP) and your Android phone (SMS from its SIM). Tools: list-accounts, get-account, add-account, add-email-account, list-messages, send-message (one channel or several in one call). Hosted, OAuth 2.1, nothing to install. Free plan with unlimited messages; paid plans from 19 EUR/month remove the footer and add media and webhooks. Docs and client configs: github.com/UnlimitedMessaging/unlimited-messaging-mcp
Hosted X (Twitter) MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server for the Proton privacy suite — Mail, Pass, Drive, Calendar, and VPN. 36 tools for Claude and other MCP-compatible AI agents.29MIT
- AlicenseNot gradedqualityDmaintenance556-tool MCP server giving AI agents full access to the FutureSense business platform. Covers 10 app domains: invoicing, payroll, accounting, CRM, booking, content creation, website builder, quotations, email, and more. Works with Claude, ChatGPT, Gemini, Cursor, and any MCP-compatible client.MIT
- AlicenseAqualityCmaintenanceAgency-grade MCP server for WordPress Elementor — multi-site management for 120+ WordPress sites with safe edits (backup + auto-rollback + post-write verification), template export/import, global widget detection, CSS flush, WP-CLI escape hatch, and headless Chrome screenshots. 34 tools across pages, widgets, templates, bulk find/replace, and fleet operations.34103 npm3MIT
- AlicenseBqualityDmaintenanceEnables agentic administration of Infomaniak accounts via Claude, offering 169 tools for web hosting, mail, domains, DNS, and more, with a strict two-phase commit for safe mutations.1002 npmMIT