Skip to main content
Glama
infomaniak-admin-mcp

infomaniak-admin-mcp

by henrikogaard

@henrikogard/infomaniak-admin-mcp

Admin tasks for Infomaniak tenant management

infomaniak-admin-mcp is an admin-focused MCP server for Infomaniak tenant operations. It covers mail security and admin, account governance, kDrive and domain audits, hosting, DNS, DNSSEC, kChat governance, Public Cloud, Swiss Backup, Node.js apps, AI usage inventory, persistent audit logs, and other tenant-level workflows. Writes use a two-phase confirm flow, so nothing changes until you approve it.

Table of contents

Related MCP server: InfraOps MCP Server

User vs Admin Scope

This project is for account and tenant administration. End-user workflows stay in infomaniak-mcp. If a task changes other users, domains, hosting, mailbox security, or shared policy, it belongs here. kMeet scheduling and user-facing kChat conversation features are out of scope.

The full boundary list is included below.

1.0 Launch Status

@henrikogard/infomaniak-admin-mcp is prepared for publication as version 1.1.0.

The current tree is npm-first: TypeScript strict, Vitest tests, build, and the package dry-run are the release checks. It has been exercised against a real Infomaniak account during development, and the remaining API caveats are documented in the API Reference section below.

Admin Scope

This project should stay focused on account administration. End-user workflows such as kMeet scheduling or personal kChat usage are out of scope unless they expose an account-admin control plane, audit surface, or compliance workflow.

Admin-First Rules

  • Read tools may run immediately.

  • Write or destructive tools must use a two-phase confirmation token.

  • Offboarding writes start with narrow, reversible-adjacent operations where the endpoint semantics are clear. Broad app-access revocation should be added per product, not guessed from generic access data.

  • infomaniak_tool_catalog lists admin categories, high-value use cases, and each tool's capability metadata.

  • infomaniak_help and infomaniak_explain include capability metadata: scope, risk, and confirmation_required.

Coverage Report

Use infomaniak_api_coverage_report to compare the current tool registry with the live Infomaniak developer portal navigation.

{
  "limit": 25
}

The report classifies endpoints as:

  • covered: already represented by a typed MCP tool.

  • admin_candidate: useful admin read endpoint not yet wrapped.

  • dangerous_write: write/delete endpoint that needs a narrow two-phase tool.

  • end_user_out_of_scope: user-facing surfaces such as kMeet scheduling.

  • unknown: low-priority or not clearly admin-oriented.

Default source: https://developer.infomaniak.com/docs/api.

Account Access Audit

Use infomaniak_audit_account_access for cross-user access posture.

{
  "account_id": 123456,
  "max_users": 50
}

It reads account users and each user's app accesses, then flags privileged or broad access. It does not mutate anything.

User Offboarding

Start with a read-only plan:

{
  "account_id": 123456,
  "user_id": 7890
}

Tool: infomaniak_plan_user_offboarding

To cancel pending account invitations for that user, use the two-phase tool:

{
  "account_id": 123456,
  "user_id": 7890
}

Tool: infomaniak_cancel_user_pending_invitations

The first call returns pending invitation IDs and a confirmation_token. Apply only by calling the same tool again with the same parameters plus the token:

{
  "account_id": 123456,
  "user_id": 7890,
  "confirmation_token": "00000000-0000-0000-0000-000000000000"
}

The apply phase refetches invitations and deletes only invitations that still match the confirmed pending state.

Account Governance

Use these read tools to inspect account posture before making changes:

  • infomaniak_list_account_users

  • infomaniak_get_user_app_accesses

  • infomaniak_plan_user_offboarding

  • infomaniak_audit_account_access

Use these write tools for admin-controlled account governance:

  • infomaniak_create_account_invitation

  • infomaniak_update_account_invitation

  • infomaniak_delete_account_invitation

  • infomaniak_create_account_team

  • infomaniak_update_account_team

  • infomaniak_delete_account_team

  • infomaniak_add_account_team_users

  • infomaniak_remove_account_team_users

  • infomaniak_create_account_tag

  • infomaniak_update_account_tag

  • infomaniak_delete_account_tag

All account-governance writes use two-phase confirmation and refetch the current account, invitation, team, or tag state before applying.

Invitation-Based Product Access

Use infomaniak_get_account_invitation_access to inspect the current access snapshot on a pending account invitation before changing anything.

Use infomaniak_manage_account_invitation_access to grant, update, invite, or revoke kSuite, drive, mailbox, or kChat access on that invitation.

{
  "account_id": 123456,
  "invitation_id": 77,
  "target": "drive",
  "action": "create",
  "drive_id": 44311,
  "payload": { "role": "manager" }
}

The write tool always refetches the invitation snapshot before planning and before applying. It stays admin-first: no end-user chat workflow, no consumer sharing shortcut, and no silent mutation.

kDrive Admin Audit

Use infomaniak_audit_kdrive_admin for a read-only kDrive posture check.

{
  "drive_id": 44311,
  "storage_warning_ratio": 0.9
}

It checks product state, storage usage, drive users, external users, share links, settings, and trash count. It deliberately avoids end-user file operations.

Trash administration writes are available as narrow confirmed tools:

  • infomaniak_empty_drive_trash

  • infomaniak_restore_drive_trash_item

  • infomaniak_remove_drive_trash_item

  • infomaniak_update_drive_trash_settings

All kDrive trash writes use two-phase confirmation and current-state guards.

kDrive share-link administration is available for exposure cleanup:

  • infomaniak_list_drive_share_links

  • infomaniak_get_drive_share_link

  • infomaniak_create_drive_share_link

  • infomaniak_update_drive_share_link

  • infomaniak_remove_drive_share_link

  • infomaniak_invite_drive_share_link

Share-link writes are guarded by the current share-link state for the target file or folder.

kDrive file-permission administration is also available as narrow confirmed tools:

  • infomaniak_list_drive_file_access_users

  • infomaniak_list_drive_file_access_teams

  • infomaniak_list_drive_file_access_invitations

  • infomaniak_create_drive_file_access_user

  • infomaniak_update_drive_file_access_user

  • infomaniak_remove_drive_file_access_user

  • infomaniak_create_drive_file_access_team

  • infomaniak_update_drive_file_access_team

  • infomaniak_remove_drive_file_access_team

  • infomaniak_create_drive_file_access_invitation

All file-access writes use two-phase confirmation and refetch the current access list or invitation list before applying.

Use infomaniak_get_drive_statistics for read-only kDrive storage, activity, shared-file, user, and share-link statistics, including supported export endpoints.

kDrive Settings

Use infomaniak_get_drive_settings to inspect the current AI, link, office, and preferences policy snapshot for a drive.

Use infomaniak_manage_drive_settings to update one of those policy surfaces with a two-phase confirmation token.

{
  "drive_id": 44311,
  "action": "update_link",
  "settings": { "password_required": true, "default_expire_days": 7 }
}

These writes are admin policy changes, not file-level collaboration actions. They refetch the current settings snapshot before planning and before apply.

kDrive user administration writes are also available as narrow confirmed tools:

  • infomaniak_create_drive_user

  • infomaniak_update_drive_user

  • infomaniak_delete_drive_user

  • infomaniak_lock_drive_user

  • infomaniak_unlock_drive_user

  • infomaniak_set_drive_user_manager

Create operations are guarded by the current drive user list. User updates, deletes, locks, unlocks, and manager-right changes are guarded by the current user snapshot.

Domain and DNS Admin Audit

Use infomaniak_audit_domain_dns_admin for a single-zone posture check.

{
  "domain": "example.com",
  "zone": "example.com",
  "low_ttl_threshold": 300
}

It reads DNS records and DNSSEC status, then flags missing MX/SPF/DMARC, disabled DNSSEC, wildcard records, and very low TTLs.

Mail Security

The first mail security module is mailbox-admin focused:

  • infomaniak_get_mailbox_security

  • infomaniak_block_sender

  • infomaniak_unblock_sender

  • infomaniak_authorize_sender

  • infomaniak_unauthorize_sender

  • infomaniak_list_mailbox_filters

  • infomaniak_list_mailbox_filter_scripts

  • infomaniak_set_mailbox_spam_policy

  • infomaniak_update_mailbox_folders

  • infomaniak_purge_spam_folder

  • infomaniak_audit_mailbox_security

  • infomaniak_harden_mailbox_security

All mailbox security writes use two-phase confirmation and stale-state checks.

Mail Administration

These are admin-side mailbox and routing controls:

  • infomaniak_manage_mailbox_aliases

  • infomaniak_manage_mailbox_forwarding

  • infomaniak_manage_mailbox_auto_reply

  • infomaniak_manage_service_redirections

  • infomaniak_rotate_mail_dkim

All mail-administration writes use two-phase confirmation and refetch the current mailbox or mail-hosting state before applying.

Mail Signatures And Templates

  • infomaniak_get_mail_signatures

  • infomaniak_manage_mail_signatures

These tools cover mailbox and service signature inventories plus template creation, updates, deletes, and default selection. Writes use the same two-phase confirmation and current-state guard as the rest of the project.

Webmail Access

  • infomaniak_get_mail_webmail_access

  • infomaniak_manage_mail_webmail_access

These tools are for administrator-controlled mailbox webmail access review and revocation. They are not for personal chat or end-user productivity workflows.

Device And Session Cleanup

  • infomaniak_get_mail_device_access

  • infomaniak_manage_mail_device_access

These tools expose mailbox device/session inventory and confirmed cleanup of stale or suspicious access.

Newsletter Groups And Subscribers

  • infomaniak_get_newsletter_admin

  • infomaniak_manage_newsletter_admin

These tools are admin governance for newsletter lists, groups, assignment, and subscriber lifecycle actions. They stay on the list-management side of the API and avoid end-user broadcast composition tooling.

kChat Governance

The kChat surface in this project is intentionally admin-only:

  • infomaniak_list_kchat_channels

  • infomaniak_list_kchat_team_channels

  • infomaniak_get_kchat_channel

  • infomaniak_list_kchat_channel_members

  • infomaniak_get_kchat_channel_moderation

  • infomaniak_list_kchat_groups

  • infomaniak_list_kchat_bots

  • infomaniak_get_kchat_bot

  • infomaniak_list_kchat_commands

  • infomaniak_get_kchat_command

  • infomaniak_list_kchat_roles

  • infomaniak_manage_kchat_channel

  • infomaniak_manage_kchat_channel_members

  • infomaniak_manage_kchat_bot

  • infomaniak_manage_kchat_command

Use these for channel inventory, moderation review, group-linked permission audit, bot lifecycle, slash-command maintenance, and member-role management. Do not use them for personal chat, DMs, reactions, or kMeet scheduling.

Live Smoke Tests

Live tests are disabled by default. Enable them only against a test-safe account:

export INFOMANIAK_LIVE_TESTS=1
export INFOMANIAK_API_TOKEN=...
export INFOMANIAK_TEST_ACCOUNT_ID=123456
export INFOMANIAK_TEST_USER_ID=7890
export INFOMANIAK_TEST_MAIL_HOSTING_ID=456789
export INFOMANIAK_TEST_MAILBOX=admin@example.com
npm test -- test/live/admin-smoke.live.test.ts

The live harness only performs read operations.

Audit Logs

Persistent audit logging is enabled by default.

Default path:

./logs/infomaniak-mcp-audit.jsonl

Each line is JSON and records the tool name, timestamp, phase, risk, whether a confirmation token was present, sanitized input, a sanitized result summary, and failures. Secrets are redacted, including API tokens, cookies, passwords, private keys, certificates, and confirmation tokens.

Read the newest entries from inside MCP:

{
  "limit": 25
}

Tool: infomaniak_audit_log_tail

Find applied writes:

{
  "phase": "applied",
  "limit": 50
}

Tool: infomaniak_audit_log_search

Find destructive attempts or failures:

{
  "risk": "destructive",
  "limit": 100
}
{
  "phase": "failed",
  "limit": 100
}

Configure with:

export INFOMANIAK_AUDIT_LOG_ENABLED=true
export INFOMANIAK_AUDIT_LOG_INCLUDE_READS=true
export INFOMANIAK_AUDIT_LOG_PATH=./logs/infomaniak-mcp-audit.jsonl

Services

Service

Protocol

Description

Hosting & SSL

Infomaniak REST plus manager-private proxy

Sites, certificates, databases, FTP/SSH users, and Node.js apps

DNS / DNSSEC

Infomaniak REST

DNS records, DNSSEC checks, and record changes

Mail admin & security

Infomaniak Mail API

Mailboxes, sender control, routing, signatures, webmail access, device cleanup, and newsletters

Account governance

Infomaniak REST

Users, invitations, teams, tags, access audits, and offboarding

kDrive governance

Infomaniak REST plus manager-private proxy

Share links, file permissions, drive settings, users, trash, and statistics

kChat governance

Infomaniak REST

Channels, members, moderation, bots, commands, and roles

Identity & audit

Infomaniak REST plus local JSONL

Profile, security posture, session history, and audit trails

Cloud and utility tools

Infomaniak REST

VPS, short URLs, Swiss Backup, AI inventory, and workflow helpers

Escape hatch

MCP direct API call

Raw API access when a typed tool is not available

Capability Matrix

Surface

Read

Write

Notes

Hosting & SSL

Yes

Yes

Two-phase writes for sites, certificates, databases, and hosting users.

DNS / DNSSEC

Yes

Yes

Two-phase record and DNSSEC changes.

Mail admin & security

Yes

Yes

Sender blocks, allow lists, routing, signatures, webmail access, device cleanup, and newsletters.

Account governance

Yes

Yes

Invitations, teams, tags, access audits, and offboarding.

kDrive governance

Yes

Yes

Share links, permissions, settings, users, trash, and statistics.

kChat governance

Yes

Yes

Channels, members, moderation, bots, commands, and roles.

Identity & audit

Yes

No

Profile, security posture, session history, and audit log reads.

Cloud and utility tools

Yes

No

VPS, short URLs, Swiss Backup, and AI inventory.

Workflow tools / help

Yes

No

Planning helpers and self-description.

Escape hatch

Yes

Yes

Raw API calls, with confirmation on mutating methods.

Backend & Protocol Matrix

Area

Backend / protocol

Host

Auth

Used for

Hosting & SSL

Infomaniak REST plus manager-private proxy

api.infomaniak.com, manager.infomaniak.com/proxy/...

Bearer INFOMANIAK_API_TOKEN plus SASESSION / MANAGER-XSRF-TOKEN

Sites, certificates, databases, FTP/SSH, and Node.js apps

DNS / domains

Infomaniak REST

api.infomaniak.com

Bearer token

Records, DNSSEC, domain reads, and audits

Mail admin

Infomaniak Mail API

mail.infomaniak.com/api

Bearer token

Mailbox security, routing, signatures, webmail access, device cleanup, and newsletters

Account / org

Infomaniak REST

api.infomaniak.com

Bearer token

Users, invitations, teams, tags, and access audits

kDrive

Infomaniak REST plus manager-private proxy

api.infomaniak.com, manager.infomaniak.com/proxy/...

Bearer token plus browser session or manual cookies

Share links, permissions, settings, users, trash, and statistics

kChat

Infomaniak REST

*.kchat.infomaniak.com

Bearer token

Governance tools for teams, channels, members, bots, and commands

Utility surfaces

Infomaniak REST

api.infomaniak.com

Bearer token

VPS, short URLs, Swiss Backup, and AI inventory

Audit log

local JSONL

./logs/infomaniak-mcp-audit.jsonl

local filesystem

Append-only audit trail of tool activity

API Reference

This document is the current integration reference for infomaniak-admin-mcp. It replaces the older discovery notebook with a cleaner, maintainable view of how this project uses Infomaniak's documented API and the manager-backed routes that are needed for admin work.

Sources of truth

  • Infomaniak Developer Portal: https://developer.infomaniak.com/docs/api

  • Live tool discovery and coverage helpers: infomaniak_tool_catalog, infomaniak_help, infomaniak_explain, and infomaniak_api_coverage_report

When the docs and the live API differ, this project treats the live API response as the implementation source of truth and keeps the docs aligned with the behavior that is actually shipping.

Authentication model

Infomaniak exposes two auth surfaces that matter for this project:

  • api.infomaniak.com uses a Bearer token from the user's account.

  • manager.infomaniak.com/proxy/... uses the user's own manager session (SASESSION + X-XSRF-TOKEN).

The manager-backed routes are used only for admin workflows that the public API does not cover safely. No credentials are persisted by the server; it reads the user's local browser session or manual environment variables when needed.

What this project relies on

Surface

Typical auth

Notes

Account, organization, product inventory

Bearer token

Read-mostly data used for audits and discovery.

Mail, DNS, domains, drive, backups, URL shortener, AI

Bearer token

Mostly documented public API coverage.

Site, database, and application admin writes

Manager session

Confirmed writes routed through the manager-backed API.

Node.js hosting actions

Manager session

App lifecycle, logs, thumbnails, and job history.

kChat governance

Manager session

Admin/team/channel control only; no personal chat workflows.

Operational notes

  • The server keeps a shared 60 req/min throttle across both API clients.

  • Destructive operations always use a two-phase confirm/apply flow.

  • Tool execution is written to an append-only JSONL audit log when enabled.

  • The audit log stores the tool name, phase, confirmation state, and a redacted summary of the request and response.

  • infomaniak_audit_log_tail and infomaniak_audit_log_search are the best way to inspect what the MCP has been asked to do.

  • New kDrive activity/report tools support repeated array query parameters for actions, files, and users. API payloads for evolving Public Cloud, account, and backup resources remain pass-through objects where Infomaniak's schema is product- or plan-dependent.

Practical caveats this project keeps documented

  • Site creation expects force_fqdn: true and a directory under /sites/.

  • Hosting user creation uses connection_type: ftp or connection_type: ssh.

  • Database password rotation stays intentionally outside the typed write tools; the safe path is still direct MariaDB ALTER USER over SSH when required.

  • Node.js hostings are managed as one app per hosting and use the vhost route identifier in action URLs.

  • kChat remains admin-only. Personal conversations, reactions, and kMeet are out of scope for this project.

Keeping docs current

When you add or change a tool:

  1. Update the tool's source and tests.

  2. Update the README's tool list or use-case section if it affects users.

  3. Update this README if there is a new integration caveat or manager route worth keeping visible.

This document is intentionally concise. It should help contributors understand the integration model without turning the repository into a discovery log.

MCP Tool Discovery

AI agents do not infer the tool list from this README. The live surface comes from MCP tools/list after the client starts the server.

infomaniak_help is a read-only self-description tool. Ask your MCP client to "ask the Infomaniak MCP what tools it has" or call infomaniak_help with service: "mail" to get the current tools grouped by area, along with risk labels, argument names, and confirmation hints.

Use Cases

These are some of the workflows it handles well:

Block senders and spam campaigns

Tell Claude:

Block spam@example.net from info@example.com.

Claude can call infomaniak_block_sender, which reads the mailbox's current authorized_senders and blocked_senders, returns a diff, and only applies the block after you confirm with the returned token. If the sender was previously authorized, the tool removes it from the trusted list while adding it to the blocked list. The matching unblock and allow-list tools are infomaniak_unblock_sender, infomaniak_authorize_sender, and infomaniak_unauthorize_sender.

Harden mailbox security

Ask:

Audit and harden info@example.com against spam, but show me exactly what would change first.

Claude can use infomaniak_get_mailbox_security, infomaniak_audit_mailbox_security, and infomaniak_harden_mailbox_security to review spam movement, smart filtering, trusted senders, blocked senders, notes, and mailbox filter state. Writes use the same two-phase confirmation pattern.

Govern account invitations, teams, and tags

Ask:

Create an invitation for contractor@example.com, add them to the Security team, and tag the account for review.

Claude can use infomaniak_create_account_invitation, infomaniak_update_account_invitation, infomaniak_delete_account_invitation, infomaniak_create_account_team, infomaniak_update_account_team, infomaniak_delete_account_team, infomaniak_add_account_team_users, infomaniak_remove_account_team_users, infomaniak_create_account_tag, infomaniak_update_account_tag, and infomaniak_delete_account_tag. Each write tool plans first and applies only after confirmation with a fresh current-state check.

Grant product access through an invitation

Ask:

Show me the current invitation snapshot, then grant drive and mailbox access on invitation 77.

Claude can use infomaniak_get_account_invitation_access to inspect the current invitation, then infomaniak_manage_account_invitation_access to create, update, invite, or revoke kSuite, drive, mailbox, or kChat access with a fresh snapshot guard and confirmation token.

Reconfigure mailbox routing

Ask:

Replace the aliases and forwarding on info@example.com, then set an auto-reply and rotate DKIM.

Claude can use infomaniak_manage_mailbox_aliases, infomaniak_manage_mailbox_forwarding, infomaniak_manage_mailbox_auto_reply, infomaniak_manage_service_redirections, and infomaniak_rotate_mail_dkim to adjust mailbox-level and service-level mail routing. These are also two-phase writes with current-state guards.

Manage mail signatures and templates

Ask:

List mailbox signatures and then update the template before I roll it out.

Claude can use infomaniak_get_mail_signatures to inspect mailbox or service signature templates, then infomaniak_manage_mail_signatures to create, update, delete, or apply defaults with confirmation.

Review webmail access

Ask:

Show me who can use webmail on this mailbox, then revoke the stale account.

Claude can use infomaniak_get_mail_webmail_access to review current user and team access, then infomaniak_manage_mail_webmail_access to add, update, or remove access with a fresh state check.

Clean up mail device sessions

Ask:

List the mailbox device sessions and remove the suspicious one.

Claude can use infomaniak_get_mail_device_access to inspect device/session inventory, then infomaniak_manage_mail_device_access to delete a device or clear a user's mailbox device access with confirmation.

Manage newsletter groups and subscribers

Ask:

List newsletter groups and subscribers for example.com, then clean up the stale ones.

Claude can use infomaniak_get_newsletter_admin for read-only inventory and infomaniak_manage_newsletter_admin for confirmed create, update, delete, assign, unassign, and forget operations.

Offboard users safely

Ask:

Prepare offboarding for user 7890 on account 123456.

Claude can use infomaniak_plan_user_offboarding and infomaniak_audit_account_access to show app access and pending invitations. For pending invitations, infomaniak_cancel_user_pending_invitations cancels only after a confirmation token and a fresh state check.

Audit admin posture

Useful prompts:

Audit account access and highlight privileged users.
Audit kDrive 44311 for risky share links and external users.
Audit example.com for DNSSEC, MX, SPF, DMARC, wildcard records, and low TTLs.

These map to infomaniak_audit_account_access, infomaniak_audit_kdrive_admin, and infomaniak_audit_domain_dns_admin.

Ask:

List risky share links on kDrive 44311 and remove anything public with no expiry.
Tighten the share link on file 888 so it has a password and expiry.

Claude can use infomaniak_list_drive_share_links and infomaniak_get_drive_share_link for review, then infomaniak_update_drive_share_link, infomaniak_remove_drive_share_link, or infomaniak_invite_drive_share_link. Writes are two-phase and guarded by the current share-link state.

Manage kDrive file permissions safely

Ask:

Review who can access file 888 on kDrive 44311, then grant team 33 read access.
Invite external@example.com to the same file, but show me the plan first.

Claude can use infomaniak_list_drive_file_access_users, infomaniak_list_drive_file_access_teams, and infomaniak_list_drive_file_access_invitations to review current file access, then infomaniak_create_drive_file_access_user, infomaniak_update_drive_file_access_user, infomaniak_remove_drive_file_access_user, infomaniak_create_drive_file_access_team, infomaniak_update_drive_file_access_team, infomaniak_remove_drive_file_access_team, or infomaniak_create_drive_file_access_invitation. Every write uses two-phase confirmation and refetches the current access list before applying.

Review kDrive activity

Ask:

Show me kDrive 44311 storage, user activity, shared-file activity, and share-link activity this month.
Export share-link activity for kDrive 44311.

Claude can call infomaniak_get_drive_statistics for storage size charts and exports, activity charts and exports, user activity, shared-file activity, and share-link activity.

Tune kDrive settings

Ask:

Read the current kDrive settings snapshot, then tighten AI, link, office, and preferences policy.

Claude can use infomaniak_get_drive_settings to inspect the current policy snapshot, then infomaniak_manage_drive_settings to update the AI, share-link, office, or preferences settings with a fresh state check and confirmation.

Manage kDrive users safely

Ask:

Add new@example.com to kDrive 44311 as a user, but show me the plan before applying.
Lock user 7890 on kDrive 44311 until we finish the offboarding review.

Claude can use infomaniak_list_drive_users to review current access, then infomaniak_create_drive_user, infomaniak_update_drive_user, infomaniak_lock_drive_user, infomaniak_unlock_drive_user, infomaniak_set_drive_user_manager, or infomaniak_delete_drive_user. Every write reads the current user/list state first and requires the returned confirmation token before it mutates kDrive access.

Review what the MCP did

Every MCP tool call is written to an append-only JSONL audit log by default. Writes include explicit plan, apply_attempt, applied, and failed phases; read-only successes can be included or disabled. Secrets are redacted, including API tokens, cookies, passwords, private keys, certificates, and confirmation tokens.

Ask:

Show me every applied change from today.
Show me failed or destructive MCP actions.
Tail the last 25 audit log entries.

Claude can use infomaniak_audit_log_tail and infomaniak_audit_log_search. The default log path is ./logs/infomaniak-mcp-audit.jsonl.

Architecture

1. Runtime at a glance

flowchart LR
  Client["MCP client"]
  Server["src/index.ts"]
  Handler["src/tool-handler.ts"]
  Registry["src/tools/index.ts"]
  Introspection["src/tools/introspection.ts"]
  Guard["src/runtime/mutation-guard.ts"]
  Token["src/runtime/confirmation-store.ts"]
  Audit["src/runtime/audit-log.ts"]
  Logger["src/runtime/logger.ts"]
  Config["src/config.ts"]
  ClientCode["src/infomaniak/client.ts"]
  Errors["src/infomaniak/errors.ts"]
  Session["src/infomaniak/manager-session.ts"]
  RateLimit["src/runtime/rate-limit.ts"]
  PublicAPI["api.infomaniak.com"]
  ManagerAPI["manager.infomaniak.com/proxy/..."]

  Client --> Server
  Server --> Config
  Server --> Handler
  Handler --> Registry
  Handler --> Audit
  Server --> Logger
  Registry --> Introspection
  Registry --> Guard
  Registry --> ClientCode
  ClientCode --> Errors
  ClientCode --> Session
  ClientCode --> RateLimit
  Guard --> Token
  ClientCode --> PublicAPI
  ClientCode --> ManagerAPI

The diagram is conceptual rather than a literal import graph. It shows the main runtime pieces and the helpers they rely on.

The domain modules under src/tools/*.ts sit behind that graph. They are thin wrappers around shared helpers and are grouped by operational area: account, mail, drive, DNS, hosting, kChat governance, identity, audit, and workflow.

2. Current module map

Layer

Main files

Responsibility

Entry point

src/index.ts

Starts stdio or streamable HTTP and wires MCP request handlers.

Tool handler

src/tool-handler.ts

Converts Zod schemas to MCP JSON Schema, dispatches tool calls, and returns structured output.

Config

src/config.ts

Validates environment variables once and caches the result.

Infomaniak clients

src/infomaniak/client.ts, src/infomaniak/errors.ts, src/infomaniak/manager-session.ts

Public API calls, manager-session calls, typed errors, and cookie-backed manager auth.

Runtime

src/runtime/rate-limit.ts, src/runtime/logger.ts

Shared rate limiting and stderr logging with secret redaction.

Tool registry

src/tools/index.ts

Central export list for every exposed tool, grouped by admin domain.

Self-documentation

src/tools/introspection.ts

infomaniak_help, infomaniak_tool_catalog, infomaniak_explain, and coverage helpers.

Mutation guard

src/runtime/confirmation-store.ts, src/runtime/mutation-guard.ts

Single-use plan/apply tokens with fingerprinted stale-state checks.

Audit trail

src/runtime/audit-log.ts, src/tools/audit-log.ts

Append-only JSONL log plus read/search tools over that log.

Shared schemas

src/schemas/infomaniak.ts

Zod models for Infomaniak requests and responses.

3. Two Infomaniak APIs, two auth schemes

Infomaniak exposes two different HTTP surfaces, and the MCP chooses between them deliberately.

  • api.infomaniak.com uses a Bearer token and covers the documented public API plus some undocumented sub-routes that still behave like public routes.

  • manager.infomaniak.com/proxy/... uses the user's own manager session: SASESSION plus X-XSRF-TOKEN.

  • The manager-private API is used for writes that the public surface accepts but does not actually process, especially web-hosting mutations.

  • OAuth scopes do not unlock the same manager-only product actions, so the MCP uses the same authenticated browser session the user already has locally.

4. Confirmed writes

sequenceDiagram
  participant Client as MCP client
  participant Server as src/index.ts
  participant Tool as tool handler
  participant Guard as mutation guard
  participant API as Infomaniak API
  participant Log as audit log

  Client->>Server: call tool
  Server->>Tool: parse input
  Tool->>Log: record attempt / result
  Tool->>Guard: load current state
  Guard-->>Tool: current snapshot
  alt first call
    Tool->>Guard: mint confirmation token
    Tool-->>Server: status = plan
    Server-->>Client: plan + token
  else second call
    Tool->>Guard: verify token + fingerprint
    Tool->>API: apply mutation
    API-->>Tool: applied result
    Tool-->>Server: status = applied
    Server-->>Client: applied result
  end

Every confirmed write follows the same shape:

  1. load the current state

  2. build a plan from the current state and the request parameters

  3. mint a single-use confirmation token

  4. on the second call, re-load the current state and verify the token plus fingerprint

  5. apply the mutation only if the parameters and state still match

The guard lives in src/runtime/mutation-guard.ts, while token minting and consumption live in src/runtime/confirmation-store.ts.

5. Logging and auditability

The server writes two different kinds of logs.

  • Operational logs go to stderr through pino, because stdout is reserved for JSON-RPC framing.

  • Tool activity can also be written to a durable append-only JSONL audit log.

  • Audit phases currently include read, plan, apply_attempt, applied, failed, and completed.

  • The audit trail is searchable through the infomaniak_audit_log_tail and infomaniak_audit_log_search tools.

  • Sensitive data is redacted before it reaches the durable log.

That makes it possible to answer questions like "what did the MCP try to do?" without scraping process output.

6. Transport

The default transport is stdio, which is the standard MCP integration path for Claude Desktop, Claude Code, and the local Inspector.

The server also supports streamable HTTP for local/dev proxy scenarios. Relevant environment variables:

  • MCP_TRANSPORT=stdio|http|streamable-http

  • MCP_HTTP_HOST

  • MCP_HTTP_PORT

  • MCP_HTTP_PATH

  • MCP_HTTP_STATELESS

The transport is selected at startup; no code changes are needed to switch.

7. Self-documentation tools

The MCP is intentionally self-describing.

  • infomaniak_help turns free-form intent into likely tools.

  • infomaniak_tool_catalog lets an agent browse the registry by category, scope, and risk.

  • infomaniak_explain dumps the full schema of a single tool.

  • infomaniak_api_coverage_report compares the current registry with the live Infomaniak docs inventory.

That means an agent can ask the MCP what it does instead of relying on stale external notes.

Intentional exclusions

This MCP is admin-first by design.

  • no browser automation layer

  • no persisted secrets beyond the user-controlled environment and browser session

  • no end-user kMeet scheduling

  • no personal kChat conversation tooling

  • no cross-tenant aggregation by default

The project stays useful by staying narrow: strong admin actions, always with an explicit safety trail.

Environment Variables

Set credentials in your MCP client's env block, your shell, or the process manager that starts the server. Do not commit real tokens or manager cookies.

Minimal local shell setup:

export INFOMANIAK_API_TOKEN="paste-your-token-here"
export INFOMANIAK_AUTH_MODE="auto"
npx -y @henrikogard/infomaniak-admin-mcp

Manual manager-session fallback:

export INFOMANIAK_AUTH_MODE="manual"
export INFOMANIAK_SASESSION="paste-sasession-cookie"
export INFOMANIAK_XSRF_TOKEN="paste-manager-xsrf-token"

Optional operational settings:

export LOG_LEVEL="info"
export CONFIRMATION_TTL_SECONDS="60"
export RATE_LIMIT_PER_MINUTE="60"
export INFOMANIAK_AUDIT_LOG_ENABLED="true"
export INFOMANIAK_AUDIT_LOG_INCLUDE_READS="true"
export INFOMANIAK_AUDIT_LOG_PATH="./logs/infomaniak-mcp-audit.jsonl"

Variable

Required

Default

Purpose

INFOMANIAK_API_TOKEN

Yes

-

Bearer token for api.infomaniak.com

INFOMANIAK_AUTH_MODE

No

auto

auto reads Chrome cookies, manual uses INFOMANIAK_SASESSION and INFOMANIAK_XSRF_TOKEN, disabled skips manager-private endpoints

INFOMANIAK_SASESSION

No

-

Manager session cookie for manual mode

INFOMANIAK_XSRF_TOKEN

No

-

Manager XSRF cookie for manual mode

LOG_LEVEL

No

info

Pino log level

CONFIRMATION_TTL_SECONDS

No

60

TTL for destructive-operation confirmation tokens

RATE_LIMIT_PER_MINUTE

No

60

Request rate limit, capped at the Infomaniak hard limit

INFOMANIAK_AUDIT_LOG_ENABLED

No

true

Enable append-only audit logging

INFOMANIAK_AUDIT_LOG_INCLUDE_READS

No

true

Include successful reads in the audit log

INFOMANIAK_AUDIT_LOG_PATH

No

./logs/infomaniak-mcp-audit.jsonl

JSONL audit log path

Quick Start

1. Install

npm install @henrikogard/infomaniak-admin-mcp
npx -y @henrikogard/infomaniak-admin-mcp

2. Build from source

git clone https://github.com/henrikogaard/infomaniak-admin-mcp.git
cd infomaniak-admin-mcp
npm ci
npm run build
npm start

The built server entry point is ./dist/index.js.

3. Get your credentials

Two distinct credentials are needed because Infomaniak exposes both public and manager-private surfaces:

API

Auth

Purpose

api.infomaniak.com/{1,2}/...

Bearer token

Read-mostly admin data, including profile, products, mail, drive, DNS, domains, and billing

manager.infomaniak.com/proxy/...

SASESSION cookie + CSRF token

Writes on manager-private admin surfaces, including web hosting and Node.js apps

1. Bearer token (required)

  1. Sign in to your Infomaniak account.

  2. Go to manager.infomaniak.com/v3/ng/profile/user/token/list.

  3. Click "Create a token", give it a long lifetime, copy the value.

  4. Set it in INFOMANIAK_API_TOKEN.

The manager-private API does not accept Bearer tokens or OAuth. Instead, the MCP reads 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 written to disk; cookies live in memory for the duration of one operation.

When the session expires, reload manager.infomaniak.com in Chrome and 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).

4. Configure your AI client

Configure Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %AppData%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "infomaniak-admin": {
      "command": "npx",
      "args": ["-y", "@henrikogard/infomaniak-admin-mcp"],
      "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 @henrikogard/infomaniak-admin-mcp

5. Verify the server

npm run build
npm run verify:mcp
npm run smoke:readonly

npm run verify:mcp starts the built server, calls tools/list, prompts/list, and resources/templates/list, and checks that the help tool and temp-file resource template are advertised. npm run smoke:readonly adds a small read-only sanity pass.

All Tools

221 tools across the admin surface. Use infomaniak_tool_catalog to browse what the MCP can do by category/risk, infomaniak_help to fuzzy-search by intent, or infomaniak_explain to dump a tool's full JSON schema. Admin-focused examples and scope boundaries are included in Admin Scope.

Introspection (start here)

Tool

Annotation

Purpose

infomaniak_overview

read-only

Summary of organizations + products. Best first call.

infomaniak_tool_catalog

read-only

Browse the MCP toolbox by admin category, risk, capability, and high-value use cases. Best answer to "what can this MCP do for me?"

infomaniak_help

read-only

Suggest tools matching a free-form intent ("create site", "list mailboxes"…).

infomaniak_explain

read-only

Returns the full definition (description + schemas) of a specific tool.

infomaniak_audit_account

read-only

Scan an organization for expirations / locked products / ongoing ops.

infomaniak_history

read-only

List destructive actions taken in this session.

infomaniak_undo

destructive

Reverse a session action when reversible (two-phase commit).

Organizations & products

Tool

Annotation

Purpose

infomaniak_list_organizations

read-only

Accounts you have technical access to.

infomaniak_list_hostings

read-only

Web hostings (classic + Node.js) for one organization.

infomaniak_list_domains

read-only

Domains for one organization, with creation + expiration dates.

infomaniak_get_domain

read-only

Detail of one domain (DNS managed?, DNSSEC, errors).

Web hosting sites

Tool

Annotation

Purpose

infomaniak_find_site

read-only

Domain-first lookup. Resolves a public domain (e.g. broz.be) to {account_id, hosting_id, hosting_label, site_id, full site object}. Use this BEFORE any tool that needs hosting_id + site_id. Replaces iterating every hosting's list_sites (46+ API calls on a real fleet).

infomaniak_list_sites

read-only

Sites on a given web hosting (with applications).

infomaniak_create_site

destructive

Two-phase: returns a plan + token, second call with token actually creates.

infomaniak_delete_site

destructive

Two-phase delete (full preview of the site to be removed).

SSL certificates

Tool

Annotation

Purpose

infomaniak_get_certificate

read-only

Current cert status (updating/ok/error), issuer, expiry, ACME identifier errors.

infomaniak_request_certificate

destructive

Two-phase. Issue or renew a cert. Three type values: free (Let's Encrypt), paid (Sectigo, requires certificate_id), custom (BYO PEM, requires certificate + private_key).

infomaniak_delete_certificate

destructive

Two-phase. Remove the cert from a site. Undo via request_certificate with type: "free".

Databases

Tool

Annotation

Purpose

infomaniak_list_databases

read-only

MariaDB databases attached to a hosting (with disk usage).

infomaniak_get_database

read-only

Detail of one database.

infomaniak_create_database

destructive

Two-phase create.

infomaniak_delete_database

destructive

Two-phase delete (plan shows disk usage + linked app).

infomaniak_list_database_users

read-only

MariaDB-level user accounts attached to a hosting (applications, permissions, phpMyAdmin link).

infomaniak_get_database_user

read-only

Detail of a single MariaDB user.

⚠️ Note: this MCP intentionally does not expose a tool that changes a database user's password through the public API — see Practical caveats for the operational note that keeps it out of the typed tool surface. Rotate database passwords via direct MariaDB ALTER USER over SSH instead.

FTP / SSH users

Tool

Annotation

Purpose

infomaniak_list_hosting_users

read-only

FTP / SSH users on a web hosting.

infomaniak_create_hosting_user

destructive

Two-phase create with connection_type: ftp (SFTP-only) or ssh (full shell + FTP).

infomaniak_delete_hosting_user

destructive

Two-phase revoke (files preserved).

DNS & DNSSEC

Tool

Annotation

Purpose

infomaniak_dns_list_records

read-only

Every DNS record on an Infomaniak-managed zone.

infomaniak_dns_create_record

destructive

Two-phase create record (A, AAAA, CNAME, MX, TXT, SRV, NS, CAA, PTR, SPF).

infomaniak_dns_update_record

destructive

Two-phase update (current vs proposed diff in the plan).

infomaniak_dns_delete_record

destructive

Two-phase delete record (with full preview before commit).

infomaniak_manage_dnssec

mixed

Unified DNSSEC: action: check (read-only, KSK/DS records), action: enable or action: disable (two-phase commit destructive). Replaces the v0.9 trio dnssec_check / dnssec_enable / dnssec_disable.

Mail

Tool

Annotation

Purpose

infomaniak_list_mail_hostings

read-only

Mail hostings for one organization.

infomaniak_list_mailboxes

read-only

Mailboxes on a given mail hosting.

infomaniak_get_mailbox_info

read-only

Unified mailbox read: pass fields: ["aliases" | "signatures" | "backups"] (subset or all). Fetches in parallel, per-section errors returned independently. Replaces the v0.9 trio get_mailbox_aliases / get_mailbox_signatures / get_mailbox_backups.

infomaniak_get_mailbox_security

read-only

Mailbox spam/security posture: authorized senders, blocked senders, spam movement, smart filtering folders, and admin note.

infomaniak_list_mailbox_filters

read-only

Mailbox Sieve filter and script inventory for admin review.

infomaniak_list_mailbox_filter_scripts

read-only

Focused list of advanced Sieve scripts configured on a mailbox.

infomaniak_audit_mailbox_security

read-only

Review a mailbox for spam/security findings and recommended hardening steps.

infomaniak_create_mailbox

destructive

Two-phase create with password policy enforcement.

infomaniak_delete_mailbox

destructive

Two-phase delete (also wipes stored mail).

infomaniak_create_mailbox_alias

destructive

Two-phase add alias to a mailbox.

infomaniak_block_sender

destructive

Two-phase sender block. Adds the sender to blocked_senders and removes it from authorized_senders if needed.

infomaniak_unblock_sender

destructive

Two-phase sender unblock. Removes the sender from blocked_senders.

infomaniak_authorize_sender

destructive

Two-phase allow-list update. Adds the sender to authorized_senders and removes it from blocked_senders if needed.

infomaniak_unauthorize_sender

destructive

Two-phase removal from authorized_senders.

infomaniak_set_mailbox_spam_policy

destructive

Two-phase spam policy update for spam movement, smart filtering, folder targets, and admin note.

infomaniak_harden_mailbox_security

destructive

Two-phase hardening workflow based on the mailbox security audit.

infomaniak_update_mailbox_folders

destructive

Two-phase mailbox folder mapping update for archives, drafts, sent, trash, spam, commercials, and social-network folders.

infomaniak_purge_spam_folder

destructive

Two-phase purge of all messages currently in the mailbox spam folder. Not undoable.

infomaniak_list_redirections

read-only

Server-side mail redirection rules.

infomaniak_create_redirection

destructive

Two-phase create rule (forward name@… to N targets).

infomaniak_delete_redirection

destructive

Two-phase delete rule.

infomaniak_manage_mailbox_aliases

destructive

Two-phase mailbox alias management: list, replace, add, or delete aliases with current-state guards.

infomaniak_manage_mailbox_forwarding

destructive

Two-phase mailbox forwarding management: list, replace, add, delete, or clear forwarding targets.

infomaniak_manage_mailbox_auto_reply

destructive

Two-phase mailbox auto-reply management for list/create/update/delete/reset flows.

infomaniak_manage_service_redirections

destructive

Two-phase service-level redirection management, including confirmation resend and target updates.

infomaniak_rotate_mail_dkim

destructive

Two-phase DKIM rotation / check for a mail hosting.

infomaniak_get_mail_signatures

read-only

Mailbox or service signature/template inventory for admin review.

infomaniak_manage_mail_signatures

destructive

Two-phase signature/template create, update, delete, and defaults management.

infomaniak_get_mail_webmail_access

read-only

Webmail user/team access inventory for a mailbox or account.

infomaniak_manage_mail_webmail_access

destructive

Two-phase webmail access add, update, revoke, or invite flows.

infomaniak_get_mail_device_access

read-only

Mailbox device/session inventory for admin cleanup.

infomaniak_manage_mail_device_access

destructive

Two-phase mailbox device/session deletion or cleanup.

infomaniak_list_email_imports

read-only

Email-import history and job state for a mailbox.

infomaniak_manage_mailbox_filter_lifecycle

destructive

Two-phase filter/script activation and filter ordering.

infomaniak_empty_mailbox_trash

destructive

Two-phase permanent deletion of all messages in mailbox Trash.

infomaniak_list_mailing_lists

read-only

Mailing-list inventory for a mail hosting.

infomaniak_list_service_auto_replies

read-only

Service-level auto-reply inventory.

infomaniak_get_mail_preferences

read-only

Service-level mail preferences.

infomaniak_list_service_filter_models

read-only

Reusable service-level filter models.

infomaniak_get_newsletter_admin

read-only

Newsletter groups and subscriber inventory for a domain.

infomaniak_manage_newsletter_admin

destructive

Two-phase newsletter group/subscriber create, update, delete, assign, unassign, and forget operations.

kChat governance

Tool

Annotation

Purpose

infomaniak_list_kchat_channels

read-only

All kChat channels in the account.

infomaniak_list_kchat_team_channels

read-only

Public, private, or deleted channels for one team.

infomaniak_get_kchat_channel

read-only

One kChat channel snapshot.

infomaniak_list_kchat_channel_members

read-only

Channel members, plus an optional specific member snapshot.

infomaniak_get_kchat_channel_moderation

read-only

Channel moderation settings.

infomaniak_list_kchat_groups

read-only

Groups linked to a team, channel, or user for permission audits.

infomaniak_list_kchat_bots

read-only

Bot inventory.

infomaniak_get_kchat_bot

read-only

One bot snapshot.

infomaniak_list_kchat_commands

read-only

Slash command inventory.

infomaniak_get_kchat_command

read-only

One slash command snapshot.

infomaniak_list_kchat_roles

read-only

Role catalog for kChat permission auditing.

infomaniak_manage_kchat_channel

destructive

Two-phase create, update, patch, move, restore, delete, privacy, scheme, or moderation changes.

infomaniak_manage_kchat_channel_members

destructive

Two-phase add/remove/update member roles, scheme roles, or notification props.

infomaniak_manage_kchat_bot

destructive

Two-phase create, update, enable, disable, or delete bot.

infomaniak_manage_kchat_command

destructive

Two-phase create, update, delete, or regenerate a slash command token.

Identity ("who am I?")

Tool

Annotation

Purpose

infomaniak_get_my_profile

read-only

Name, email, language, country, timezone, current account, security posture (2FA, devices, last login).

infomaniak_get_my_security

read-only

Focused security report — 2FA method + status, recovery email, validated phone, Yubikey, rescue codes, password age, trusted devices with IP/time.

Account / Org

Tool

Annotation

Purpose

infomaniak_get_account_full

read-only

Full org detail: legal entity, billing addresses, VAT, locale, support tier, 2FA-required policy, your role, tags.

infomaniak_list_teams_and_tags

read-only

Teams (owners + counts) + tags (with products carrying each tag) in a single call.

infomaniak_list_account_users

read-only

Users on an organization, with roles and access metadata.

infomaniak_get_user_app_accesses

read-only

Per-user app access detail for audits and offboarding.

infomaniak_plan_user_offboarding

read-only

Step-by-step offboarding plan from current account, user, and invitation state.

infomaniak_audit_account_access

read-only

Cross-user access posture review and privileged app-access detection.

infomaniak_cancel_user_pending_invitations

destructive

Two-phase cancellation of pending account invitations for one user.

infomaniak_get_account_invitation_access

read-only

Invitation snapshot for kSuite, drive, mailbox, or kChat access review.

infomaniak_manage_account_invitation_access

destructive

Two-phase grant/update/invite/revoke of invitation-scoped product access.

infomaniak_create_account_invitation

destructive

Two-phase create of an account invitation, guarded by a fresh account snapshot.

infomaniak_update_account_invitation

destructive

Two-phase update of an account invitation, guarded by a fresh invitation snapshot.

infomaniak_delete_account_invitation

destructive

Two-phase delete of an account invitation, guarded by a fresh invitation snapshot.

infomaniak_create_account_team

destructive

Two-phase create of an account team, guarded by the current team list.

infomaniak_update_account_team

destructive

Two-phase update of an account team, guarded by a fresh team snapshot.

infomaniak_delete_account_team

destructive

Two-phase delete of an account team, guarded by a fresh team snapshot.

infomaniak_add_account_team_users

destructive

Two-phase add of one or more users to an account team, guarded by a fresh team-members snapshot.

infomaniak_remove_account_team_users

destructive

Two-phase removal of one or more users from an account team, guarded by a fresh team-members snapshot.

infomaniak_create_account_tag

destructive

Two-phase create of an account tag, guarded by the current tag list.

infomaniak_update_account_tag

destructive

Two-phase update of an account tag, guarded by a fresh tag snapshot.

infomaniak_delete_account_tag

destructive

Two-phase delete of an account tag, guarded by a fresh tag snapshot.

infomaniak_get_account_resources

read-only

Public API account, product, service, tag, team, team-user, and B2B invitation drill-downs.

infomaniak_manage_account_invitation_b2b

destructive

Two-phase B2B customer assignment/removal on an invitation.

Mail (deep)

Tool

Annotation

Purpose

infomaniak_get_mail_hosting_full

read-only

DNS health diagnostic (MX/SPF/DKIM/DMARC), quotas, admin, parent kSuite link, FQDNs, team access.

infomaniak_get_mailbox_full

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

infomaniak_get_domain_full

read-only

auth_code (EPP), transfer/trade status, glue records, TLD/registry, attached service, DNS detail + health, associated products, DNS logs URL. Accepts id or FQDN.

infomaniak_get_domain_resources

read-only

Canonical v2 domain, zone, DNSSEC, and DNS-record reads.

infomaniak_manage_domain_nameservers

destructive

Two-phase nameserver update or restoration of Infomaniak nameservers.

kDrive (deep, manager-private)

Tool

Annotation

Purpose

infomaniak_get_drive_full

read-only

Drive name, total size, used size, maintenance.

infomaniak_list_drive_users

read-only

Users with access to a kDrive (access audits).

infomaniak_list_drive_trash

read-only

Items in the trash bin with deletion timestamps.

VPS / Cloud Server

Tool

Annotation

Purpose

infomaniak_list_vps

read-only

List Cloud Server (Jelastic) products of an org.

infomaniak_get_vps_full

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

infomaniak_list_nodejs_apps

read-only

Discover the apps on a Node.js hosting. Returns each app's vhost_route_id (handle for every other Node.js tool) and its serving FQDNs.

infomaniak_get_nodejs_app

read-only

Full app config: Node version, listen port, start_command, build_command, public IPs (v4 + v6), SSL state, directory, storage quota.

infomaniak_nodejs_app_status

read-only

Live status — Running or Stopped. Cheap, safe to poll.

infomaniak_nodejs_app_aliases

read-only

All FQDNs serving the app (primary + auto xxx.preview.hosting-ik.com).

infomaniak_nodejs_app_jobs

read-only

Recent jobs (build / restart / …) with per-job log_stream JWT.

infomaniak_nodejs_app_logs

read-only

Returns a short-lived JWT + SSE endpoint URL to consume the live stdout/stderr stream of the running app.

infomaniak_nodejs_app_thumbnail

read-only

Screenshot of the live page as a base64 JPEG — visual smoke test without HTTP-probing.

infomaniak_nodejs_app_action

destructive

Two-phase. Start / stop / restart / build. stop records an undo to start. build returns the spawned job's resource_id + live log_stream to tail the output.

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) or manual (SASESSION + MANAGER-XSRF-TOKEN env vars). See Practical caveats.

kDrive

Tool

Annotation

Purpose

infomaniak_list_drives

read-only

All kDrives the account has access to (with quota).

infomaniak_list_drive_files

read-only

Files / subfolders of a drive root or any folder, paginated.

infomaniak_list_drive_share_links

read-only

Share-link inventory for admin exposure review.

infomaniak_get_drive_share_link

read-only

Share-link settings for one kDrive file or folder.

infomaniak_list_drive_file_access_users

read-only

User access entries for a kDrive file or folder.

infomaniak_list_drive_file_access_teams

read-only

Team access entries for a kDrive file or folder.

infomaniak_list_drive_file_access_invitations

read-only

Pending file-access invitations for a kDrive file or folder.

infomaniak_get_drive_statistics

read-only

kDrive storage, activity, user activity, shared-file activity, and share-link activity charts/exports.

infomaniak_get_drive_activities

read-only

Cursor-paginated activity history across users, files, actions, and time ranges.

infomaniak_get_drive_file_activities

read-only

Activity history for one file or folder.

infomaniak_get_drive_root_activities

read-only

Root-level file activity history.

infomaniak_list_drive_activity_reports

read-only

Generated activity-report inventory.

infomaniak_get_drive_activity_report

read-only

One generated activity report.

infomaniak_export_drive_activity_report

read-only

Download a generated activity report.

infomaniak_create_drive_activity_report

destructive

Two-phase asynchronous report generation.

infomaniak_delete_drive_activity_report

destructive

Two-phase report deletion.

infomaniak_get_drive_settings

read-only

Current kDrive AI, link, office, and preferences policy snapshot.

infomaniak_get_drive_user

read-only

Full kDrive user snapshot.

infomaniak_list_drive_invitations

read-only

Pending kDrive user invitations.

infomaniak_get_drive_invitation

read-only

One pending kDrive invitation.

infomaniak_manage_drive_private_directory

destructive

Two-phase private-directory size policy update.

infomaniak_create_drive_share_link

destructive

Two-phase create of a kDrive share link, guarded by current share-link state.

infomaniak_update_drive_share_link

destructive

Two-phase update of a kDrive share link, guarded by current share-link state.

infomaniak_remove_drive_share_link

destructive

Two-phase removal of a kDrive share link, guarded by current share-link state.

infomaniak_invite_drive_share_link

destructive

Two-phase share-link invitation, guarded by current share-link state.

infomaniak_manage_drive_settings

destructive

Two-phase update of kDrive AI, link, office, or preferences settings with a fresh snapshot guard.

infomaniak_create_drive_file_access_user

destructive

Two-phase grant of a file/folder user permission, guarded by the current access list.

infomaniak_update_drive_file_access_user

destructive

Two-phase update of a file/folder user permission, guarded by the current access list.

infomaniak_remove_drive_file_access_user

destructive

Two-phase removal of a file/folder user permission, guarded by the current access list.

infomaniak_create_drive_file_access_team

destructive

Two-phase grant of a file/folder team permission, guarded by the current access list.

infomaniak_update_drive_file_access_team

destructive

Two-phase update of a file/folder team permission, guarded by the current access list.

infomaniak_remove_drive_file_access_team

destructive

Two-phase removal of a file/folder team permission, guarded by the current access list.

infomaniak_create_drive_file_access_invitation

destructive

Two-phase invitation to a file or folder, guarded by the current invitation list.

infomaniak_create_drive_user

destructive

Two-phase create of a kDrive user, guarded by the current drive user list.

infomaniak_update_drive_user

destructive

Two-phase update of a kDrive user's role/access payload, guarded by the current user snapshot.

infomaniak_delete_drive_user

destructive

Two-phase removal of a kDrive user from the drive, guarded by the current user snapshot.

infomaniak_lock_drive_user

destructive

Two-phase lock of a kDrive user, guarded by the current user snapshot.

infomaniak_unlock_drive_user

destructive

Two-phase unlock of a kDrive user, guarded by the current user snapshot.

infomaniak_set_drive_user_manager

destructive

Two-phase manager-right update for a kDrive user.

infomaniak_empty_drive_trash

destructive

Two-phase empty of all kDrive trash items, guarded by the current trash count. Not undoable.

infomaniak_restore_drive_trash_item

destructive

Two-phase restore of one trashed file or folder, guarded by the current trash item details.

infomaniak_remove_drive_trash_item

destructive

Two-phase permanent removal of one trashed file or folder. Not undoable.

infomaniak_update_drive_trash_settings

destructive

Two-phase update of kDrive trash settings, guarded by the current drive settings snapshot.

URL shortener

Tool

Annotation

Purpose

infomaniak_list_short_urls

read-only

Short URLs configured on a domain.

infomaniak_create_short_url

destructive

Two-phase create.

infomaniak_delete_short_url

destructive

Two-phase delete.

Swiss Backup

Tool

Annotation

Purpose

infomaniak_list_swiss_backups

read-only

Swiss Backup slots on the account.

infomaniak_get_swiss_backup

read-only

Swiss Backup subscription detail.

infomaniak_get_swiss_backup_acronis_info

read-only

Acronis connection information.

infomaniak_list_swiss_backup_slots

read-only

Slot inventory.

infomaniak_get_swiss_backup_slot

read-only

One slot snapshot.

infomaniak_get_swiss_backup_pricing

read-only

Pricing or price calculation.

infomaniak_manage_swiss_backup_slot

destructive

Two-phase slot create/update/delete/enable/disable.

infomaniak_manage_swiss_backup_administrator

destructive

Two-phase administrator create/update.

Public Cloud

Tool

Annotation

Purpose

infomaniak_list_public_clouds / infomaniak_get_public_cloud

read-only

Public Cloud product inventory and detail.

infomaniak_get_public_cloud_status

read-only

Current Public Cloud status feed.

infomaniak_list_public_cloud_projects / infomaniak_get_public_cloud_project

read-only

Project inventory and detail.

infomaniak_list_public_cloud_project_users

read-only

Project access inventory.

infomaniak_list_public_cloud_database_services / infomaniak_get_public_cloud_database_service

read-only

DBaaS inventory and detail.

infomaniak_list_public_cloud_kubernetes_services / infomaniak_get_public_cloud_kubernetes_service

read-only

KaaS inventory and detail.

infomaniak_list_public_cloud_resource_data

read-only

Public Cloud configuration, regions, packs, types, and versions.

infomaniak_manage_public_cloud_project

destructive

Two-phase project create/update/delete/invite.

infomaniak_manage_public_cloud_project_user

destructive

Two-phase project-user create/update/delete/invite.

infomaniak_manage_public_cloud_database_service

destructive

Two-phase DBaaS lifecycle and operational actions.

infomaniak_manage_public_cloud_kubernetes_service

destructive

Two-phase KaaS lifecycle.

AI Tools

Tool

Annotation

Purpose

infomaniak_list_ai_products

read-only

AI subscriptions the account owns.

infomaniak_list_ai_models

read-only

Public catalogue of Swiss-sovereign LLM/STT models.

infomaniak_get_ai_consumptions

read-only

AI product usage/consumption records.

infomaniak_get_ai_batch_result

read-only

Async AI batch status or output download.

infomaniak_list_ai_product_models

read-only

Models exposed by one AI product's v2 OpenAI-compatible endpoint.

Workflows (multi-step)

Tool

Annotation

Purpose

infomaniak_provision_site_full

destructive

Site + DB + DNS in one orchestrated, plan-then-apply flow.

infomaniak_audit_dns_zones

read-only

Cross-zone audit: missing SPF/DMARC, dangling records, ….

Escape hatch (everything else)

Tool

Annotation

Purpose

infomaniak_api_call

destructive

Reach any endpoint on api.infomaniak.com directly. GET runs immediately, POST/PUT/PATCH/DELETE follow the two-phase commit. Refuses paths outside the documented /{1,2,3}/... namespace and refuses manager-private /proxy/... (use a typed tool).

Known Limitations

  • api.infomaniak.com is rate-limited to 60 requests per minute. The MCP throttles automatically, so heavy bursts can queue briefly.

  • Site creation still requires directory to live under /sites/; other paths are ignored by the manager backend.

  • Manager session cookies expire, usually after a few hours or when you sign out of Chrome. Re-open manager.infomaniak.com to refresh them.

  • Infomaniak rejects concurrent POSTs on the same hosting with 400 operation_in_progress, so the MCP serializes writes per hosting.

  • WordPress installation is intentionally out of scope. Create the empty site here, then install WordPress from the manager wizard or by uploading over FTP/SSH.

Security & Privacy

  • The server runs locally over stdio, so credentials stay on your machine.

  • INFOMANIAK_API_TOKEN is read from the process environment and used only against api.infomaniak.com.

  • Manager cookies (SASESSION, MANAGER-XSRF-TOKEN) live in memory for one operation and are never written to disk.

  • Persistent audit logging is opt-in through the environment variables above. When enabled, the JSONL log redacts tokens, cookies, passwords, private keys, certificates, and confirmation tokens.

  • Read the logs with infomaniak_audit_log_tail and infomaniak_audit_log_search. The default path is ./logs/infomaniak-mcp-audit.jsonl.

Disclaimer

This project is community-driven, MIT-licensed, and not affiliated with, endorsed by, or sponsored by Infomaniak Network SA. Public API routes and manager-private routes can change without notice. When something differs from the docs, use the API Reference section as the source of truth.

Acknowledgements

This project stands on the MCP and TypeScript ecosystem. It uses @modelcontextprotocol/sdk, zod, pino, and chrome-cookies-secure, and it integrates with Infomaniak APIs described in the API Reference section.

Bug reports and pull requests are welcome through GitHub Issues and Pull Requests. Do not post credentials, cookies, customer data, logs, or production payloads in public reports. Security-sensitive reports should use GitHub private vulnerability reporting when available.

License

MIT. See NOTICE for project notices and the Infomaniak trademark disclaimer.

This project is not affiliated with Infomaniak Network SA. "Infomaniak", "kDrive", "kChat", "kMeet", "kSuite", "Swiss Backup" are trademarks of Infomaniak Network SA.

Available Tools

221 tools
infomaniak_add_account_team_usersA
Destructive

Add one or more users to an account team. Two-phase commit with a fresh team-members snapshot guard.

Inputs: payload (required), team_id (required), account_id (required), confirmation_token. Returns: Two-phase confirmation result.

infomaniak_add_site_aliasesA
Destructive

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: aliases (required), site_id (required), hosting_id (required), confirmation_token. Returns: object

infomaniak_api_callA
Destructive

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: path (required), method (required), body, query, +1 more. Returns: object

infomaniak_api_coverage_reportA
Read-only

Fetch the Infomaniak developer portal navigation and report MCP endpoint coverage, admin candidates, risky writes, and user-focused surfaces that are intentionally out of scope.

Inputs: limit, docs_url. Returns: summary, docs_url, candidates, generated_at, +4 more

infomaniak_audit_accountA
Read-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: findings, account_id, scanned_products, summary_markdown

infomaniak_audit_account_accessA
Read-onlyIdempotent

Read-only admin audit of account users and their app accesses. Highlights privileged access, broad access, and per-user fetch errors.

Inputs: account_id (required), max_users. Returns: users, summary, findings, account_id, +2 more

infomaniak_audit_dns_zonesA
Read-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: zones, scanned, account_id, summary_markdown

infomaniak_audit_domain_dns_adminA
Read-onlyIdempotent

Read-only domain/DNS admin posture audit: DNSSEC, MX, SPF, DMARC, wildcard records, and very low TTLs for an Infomaniak-managed zone.

Inputs: domain (required), zone, low_ttl_threshold. Returns: zone, dnssec, domain, records, +3 more

infomaniak_audit_kdrive_adminA
Read-onlyIdempotent

Read-only kDrive admin posture audit: product health, users, external users, public share links, settings, storage usage, and trash count.

Inputs: drive_id (required), storage_warning_ratio. Returns: drive, summary, drive_id, findings, +3 more

infomaniak_audit_log_tailA
Read-only

Read the newest entries from the persistent MCP audit log. Use this to inspect recent tool calls, write confirmations, applied changes, and failures.

Inputs: limit. Returns: path, count, entries

infomaniak_audit_mailbox_securityA
Read-onlyIdempotent

Read-only admin audit for a mailbox security posture: spam policy, sender conflicts, Sieve scripts, and disabled filters.

Inputs: mailbox_name (required), mail_hosting_id (required). Returns: status, summary, findings, mailbox_name, +1 more

infomaniak_authorize_senderA
DestructiveIdempotent

Authorize this sender. Two-phase commit: first call returns the current-state diff and confirmation token, second call with the token applies the PATCH if the mailbox sender lists have not changed.

Inputs: sender (required), mailbox_name (required), mail_hosting_id (required), confirmation_token. Returns: object

infomaniak_block_senderA
DestructiveIdempotent

Block this sender. Two-phase commit: first call returns the current-state diff and confirmation token, second call with the token applies the PATCH if the mailbox sender lists have not changed.

Inputs: sender (required), mailbox_name (required), mail_hosting_id (required), confirmation_token. Returns: object

infomaniak_cancel_user_pending_invitationsA
DestructiveIdempotent

Cancel pending account invitations for a user. Two-phase commit: first call returns the pending invitation list and confirmation token; second call deletes only invitations still pending in the fresh apply prefetch.

Inputs: user_id (required), account_id (required), confirmation_token. Returns: object

infomaniak_create_account_invitationA
Destructive

Create an account invitation. Two-phase commit with a fresh account snapshot guard. The payload is passed through to Infomaniak as-is.

Inputs: payload (required), account_id (required), confirmation_token. Returns: Two-phase confirmation result.

infomaniak_create_account_tagA
Destructive

Create an account tag. Two-phase commit with a fresh tag-list snapshot guard. The payload is passed through to Infomaniak as-is.

Inputs: payload (required), account_id (required), confirmation_token. Returns: Two-phase confirmation result.

infomaniak_create_account_teamA
Destructive

Create an account team. Two-phase commit with a fresh team list snapshot guard. The payload is passed through to Infomaniak as-is.

Inputs: payload (required), account_id (required), confirmation_token. Returns: Two-phase confirmation result.

infomaniak_create_databaseA
Destructive

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_drive_activity_reportB

Create a kDrive activity report. Two-phase confirmation is required because Infomaniak starts report generation asynchronously.

Inputs: drive_id (required), lang, payload, confirmation_token. Returns: Two-phase confirmation result.

infomaniak_create_drive_file_access_invitationB

Invite a recipient to access a kDrive file or folder. Two-phase commit with current invitation guard.

Inputs: file_id (required), payload (required), drive_id (required), confirmation_token. Returns: object

infomaniak_create_drive_file_access_teamA

Grant a team access to a kDrive file or folder. Two-phase commit with current file-access guard.

Inputs: file_id (required), payload (required), team_id (required), drive_id (required), +1 more. Returns: object

infomaniak_create_drive_file_access_userB

Grant a user access to a kDrive file or folder. Two-phase commit with current file-access guard.

Inputs: file_id (required), payload (required), user_id (required), drive_id (required), +1 more. Returns: object

infomaniak_create_drive_userA

Create a kDrive user through POST /2/drive/{drive_id}/users. Two-phase commit with current user-list guard.

Inputs: user (required), drive_id (required), confirmation_token. Returns: object

infomaniak_create_hosting_userA
Destructive

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: login (required), password (required), hosting_id (required), home_directory, +2 more. Returns: object

infomaniak_create_mailboxA
Destructive

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: password (required), mailbox_name (required), mail_hosting_id (required), description, +1 more. Returns: object

infomaniak_create_mailbox_aliasA
Destructive

Add a new alias to an existing mailbox. Two-phase commit. The alias will receive emails delivered to the underlying mailbox.

Inputs: alias (required), mailbox_name (required), mail_hosting_id (required), confirmation_token. Returns: object

infomaniak_create_mailbox_filterA
Destructive

Create a mailbox Sieve filter. Two-phase commit: first call returns current filter inventory and confirmation token, second call applies the POST if inventory is unchanged.

Inputs: name (required), has_all_of (required), is_enabled (required), mailbox_name (required), +3 more. Returns: object

infomaniak_create_redirectionB
Destructive

Create a server-side mail redirection. Two-phase commit. Emails received at name@ will be forwarded to every address in targets.

Inputs: name (required), targets (required), mail_hosting_id (required), confirmation_token. Returns: object

infomaniak_create_short_urlA
Destructive

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_siteA
Destructive

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: fqdn (required), hosting_id (required), directory, environment, +1 more. Returns: object

infomaniak_delete_account_invitationA
Destructive

Delete an account invitation. Two-phase commit with a fresh invitation snapshot guard.

Inputs: account_id (required), invitation_id (required), confirmation_token. Returns: Two-phase confirmation result.

infomaniak_delete_account_tagA
Destructive

Delete an account tag. Two-phase commit with a fresh tag snapshot guard.

Inputs: tag_id (required), account_id (required), confirmation_token. Returns: Two-phase confirmation result.

infomaniak_delete_account_teamA
Destructive

Delete an account team. Two-phase commit with a fresh team snapshot guard.

Inputs: team_id (required), account_id (required), confirmation_token. Returns: Two-phase confirmation result.

infomaniak_delete_certificateA
Destructive

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: site_id (required), hosting_id (required), confirmation_token. Returns: object

infomaniak_delete_databaseA
DestructiveIdempotent

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_drive_activity_reportA
DestructiveIdempotent

Delete a generated kDrive activity report with a current-state guard.

Inputs: drive_id (required), report_id (required), confirmation_token. Returns: Two-phase confirmation result.

infomaniak_delete_drive_userA
Destructive

Delete a kDrive user from a drive. Destructive two-phase commit with current user guard.

Inputs: user_id (required), drive_id (required), confirmation_token. Returns: object

infomaniak_delete_hosting_userA
DestructiveIdempotent

Revoke a hosting user (FTP / SSH access). Two-phase commit. Existing files are not deleted.

Inputs: login (required), hosting_id (required), confirmation_token. Returns: object

infomaniak_delete_mailboxA
DestructiveIdempotent

Delete a mailbox. Two-phase commit. WARNING: this also deletes all stored emails for that mailbox.

Inputs: mailbox_name (required), mail_hosting_id (required), confirmation_token. Returns: object

infomaniak_delete_mailbox_filterA
DestructiveIdempotent

Delete a mailbox Sieve filter by name. Two-phase commit with current filter inventory guard before DELETE.

Inputs: name (required), mailbox_name (required), mail_hosting_id (required), confirmation_token. Returns: object

infomaniak_delete_mailbox_filter_scriptA
DestructiveIdempotent

Delete a mailbox Sieve script by name. Two-phase commit with current filter/script inventory guard before DELETE.

Inputs: name (required), mailbox_name (required), mail_hosting_id (required), confirmation_token. Returns: object

infomaniak_delete_redirectionA
DestructiveIdempotent

Delete a mail redirection. Two-phase commit.

Inputs: name (required), mail_hosting_id (required), confirmation_token. Returns: object

infomaniak_delete_siteA
DestructiveIdempotent

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: site_id (required), hosting_id (required), confirmation_token. Returns: object

infomaniak_delete_site_aliasA
Destructive

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: alias (required), site_id (required), hosting_id (required), confirmation_token. Returns: object

infomaniak_dns_create_recordA
Destructive

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: type (required), zone (required), source (required), target (required), +2 more. Returns: object

infomaniak_dns_delete_recordA
DestructiveIdempotent

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_recordsA
Read-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_recordA
DestructiveIdempotent

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), ttl, type, +3 more. Returns: object

infomaniak_empty_drive_trashA
DestructiveIdempotent

Empty the entire kDrive trash. Destructive two-phase commit with trash count guard; not undoable.

Inputs: drive_id (required), confirmation_token. Returns: object

infomaniak_empty_mailbox_trashA
DestructiveIdempotent

Permanently delete all messages in a mailbox trash folder after confirmation.

Inputs: mailbox_name (required), mail_hosting_id (required), confirmation_token. Returns: Two-phase confirmation result.

infomaniak_explainB
Read-onlyIdempotent

Returns the full definition of a specific tool — description, annotations, input parameters and output shape.

Inputs: tool (required). Returns: tool, capability, annotations, description, +2 more

infomaniak_export_drive_activity_reportB
Read-onlyIdempotent

Download the generated output for a kDrive activity report.

Inputs: drive_id (required), report_id (required), query. Returns: data, drive_id, report_id

infomaniak_find_siteA
Read-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: hint, site, found, domain, +5 more

infomaniak_get_account_fullA
Read-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, beta, logo, name, +23 more

infomaniak_get_account_invitation_accessA
Read-onlyIdempotent

Inspect a single account invitation and its current access snapshot before granting or revoking kSuite, drive, mailbox, or kChat access.

Inputs: account_id (required), invitation_id (required). Returns: account_id, invitation, invitation_id, summary_markdown

infomaniak_get_account_resourcesB
Read-onlyIdempotent

Read account inventory and governance drill-down resources: accounts, products, services, tags, basic teams, team members, and B2B invitation customers.

Inputs: resource (required), team_id, account_id, invitation_id. Returns: data, resource

infomaniak_get_ai_batch_resultA
Read-onlyIdempotent

Read or download the result of an asynchronous Infomaniak AI model batch.

Inputs: batch_id (required), product_id (required), download. Returns: data, batch_id, download, product_id

infomaniak_get_ai_consumptionsB
Read-onlyIdempotent

Read usage/consumption records for an Infomaniak AI product, including pagination metadata when available.

Inputs: product_id (required), query. Returns: data, product_id

infomaniak_get_certificateA
Read-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: site_id (required), hosting_id (required). Returns: type, issuer, status, site_id, +14 more

infomaniak_get_databaseA
Read-onlyIdempotent

Get the full detail of a specific database (disk usage, application, permissions, backups).

Inputs: hosting_id (required), database_name (required). Returns: name, backups, disk_used, application, +3 more

infomaniak_get_database_userA
Read-onlyIdempotent

Fetch the detail of a single MariaDB-level user (applications, permissions, link to phpMyAdmin).

Inputs: user_name (required), hosting_id (required). Returns: link, name, protected, is_unlocked, +5 more

infomaniak_get_domainA
Read-onlyIdempotent

Get detailed information about a domain (DNS management status, DNSSEC, IDN, errors).

Inputs: domain (required). Returns: id, is_idn, has_error, puny_code, +9 more

infomaniak_get_domain_fullA
Read-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, dns, tld, info, +43 more

infomaniak_get_domain_resourcesC
Read-onlyIdempotent

Read canonical v2 domain, zone, DNSSEC, and DNS-record resources from the Infomaniak public API.

Inputs: resource (required), zone, domain, record_id. Returns: data, resource

infomaniak_get_drive_activitiesA
Read-onlyIdempotent

Read kDrive activity history across users, files, actions, and time ranges. Supports cursor pagination and repeated action/file/user filters.

Inputs: drive_id (required), query. Returns: data, cursor, drive_id, has_more, +2 more

infomaniak_get_drive_activity_reportB
Read-onlyIdempotent

Read one generated kDrive activity report.

Inputs: drive_id (required), report_id (required), query. Returns: data, drive_id, report_id

infomaniak_get_drive_file_activitiesA
Read-onlyIdempotent

Read activity history for one kDrive file or folder.

Inputs: file_id (required), drive_id (required), query. Returns: data, cursor, drive_id, has_more, +2 more

infomaniak_get_drive_fullA
Read-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_drive_invitationA
Read-onlyIdempotent

Read one pending kDrive user invitation.

Inputs: drive_id (required), invitation_id (required). Returns: drive_id, invitation, invitation_id

infomaniak_get_drive_root_activitiesA
Read-onlyIdempotent

Read activity history for root-level kDrive files and folders.

Inputs: drive_id (required), query. Returns: data, cursor, drive_id, has_more, +2 more

infomaniak_get_drive_settingsA
Read-onlyIdempotent

Read the current kDrive policy settings snapshot for AI, share links, office, and preferences.

Inputs: drive_id (required). Returns: drive_id, settings, summary_markdown

infomaniak_get_drive_statisticsA
Read-onlyIdempotent

Read kDrive admin statistics and export endpoints: storage sizes, activity summaries, user activity, shared-file activity, and share-link activity.

Inputs: drive_id (required), statistic (required), query, export. Returns: data, export, drive_id, endpoint, +2 more

infomaniak_get_drive_userA
Read-onlyIdempotent

Read the complete user snapshot for a kDrive user.

Inputs: user_id (required), drive_id (required). Returns: user, user_id, drive_id

infomaniak_get_kchat_botA
Read-onlyIdempotent

Inspect one kChat bot.

Inputs: bot_user_id (required). Returns: item, summary_markdown

infomaniak_get_kchat_channelA
Read-onlyIdempotent

Get one kChat channel for admin inspection.

Inputs: channel_id (required). Returns: item, summary_markdown

infomaniak_get_kchat_channel_moderationA
Read-onlyIdempotent

Inspect the moderation settings for a kChat channel.

Inputs: channel_id (required). Returns: item, summary_markdown

infomaniak_get_kchat_commandA
Read-onlyIdempotent

Inspect one kChat slash command.

Inputs: command_id (required). Returns: item, summary_markdown

infomaniak_get_mailbox_fullA
Read-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: mailbox_name (required), mail_hosting_id (required). Returns: note, size, type, teams, +35 more

infomaniak_get_mailbox_infoA
Read-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: mailbox_name (required), mail_hosting_id (required), fields. Returns: errors, fields, aliases, backups, +3 more

infomaniak_get_mailbox_securityA
Read-onlyIdempotent

Read mailbox security and spam-control state: authorized senders, blocked senders, spam move policy, mail filtering folders, and note.

Inputs: mailbox_name (required), mail_hosting_id (required). Returns: note, mailbox_name, has_move_spam, blocked_senders, +5 more

infomaniak_get_mail_device_accessA
Read-onlyIdempotent

Inspect mailbox device/session access for a selected mailbox user, or list mailbox/service device inventories for cleanup planning.

Inputs: action (required), mail_hosting_id (required), scope, user_id, +1 more. Returns: scope, action, result, mailbox_name, +1 more

infomaniak_get_mail_hosting_fullA
Read-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, fqdn, tags, used, +39 more

infomaniak_get_mail_preferencesB
Read-onlyIdempotent

Read service-level mail preferences for a mail hosting.

Inputs: mail_hosting_id (required). Returns: preferences, mail_hosting_id

infomaniak_get_mail_signaturesA
Read-onlyIdempotent

Inspect mailbox signatures and signature templates at the mailbox or service level. Read-only inventory for admin review and template selection.

Inputs: scope (required), action (required), resource (required), mail_hosting_id (required), +3 more. Returns: scope, action, result, resource, +2 more

infomaniak_get_mail_webmail_accessA
Read-onlyIdempotent

Inspect mailbox webmail access for users and teams, plus admin audit lookups for account-scoped access records. Read-only inventory for webmail governance.

Inputs: action (required), mail_hosting_id (required), team_id, user_id, +2 more. Returns: action, result, mailbox_name, mail_hosting_id

infomaniak_get_my_profileA
Read-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, email, login, avatar, +7 more

infomaniak_get_my_securityA
Read-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, yubikey, score_max, twofa_method, +9 more

infomaniak_get_newsletter_adminA
Read-onlyIdempotent

Inspect newsletter groups, group subscribers, subscriber inventory, and count-status summaries for a domain. Read-only admin inventory for list governance.

Inputs: action (required), domain (required), group, subscriber. Returns: action, domain, result

infomaniak_get_nodejs_appA
Read-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, ips, tags, state, +14 more

infomaniak_get_public_cloudB
Read-onlyIdempotent

Read one Public Cloud product snapshot.

Inputs: public_cloud_id (required). Returns: public_cloud, public_cloud_id

infomaniak_get_public_cloud_database_serviceC
Read-onlyIdempotent

Read one Public Cloud DBaaS service.

Inputs: dbaas_id (required), project_id (required), public_cloud_id (required). Returns: service, dbaas_id, project_id, public_cloud_id

infomaniak_get_public_cloud_kubernetes_serviceB
Read-onlyIdempotent

Read one Public Cloud Kubernetes service.

Inputs: kaas_id (required), project_id (required), public_cloud_id (required). Returns: kaas_id, service, project_id, public_cloud_id

infomaniak_get_public_cloud_projectB
Read-onlyIdempotent

Read one Public Cloud project.

Inputs: project_id (required), public_cloud_id (required). Returns: project, project_id, public_cloud_id

infomaniak_get_public_cloud_statusA
Read-onlyIdempotent

Read the current Infomaniak Public Cloud service status feed.

Inputs: no named parameters. Returns: status

infomaniak_get_swiss_backupA
Read-onlyIdempotent

Read one Swiss Backup subscription in detail.

Inputs: swiss_backup_id (required). Returns: backup, swiss_backup_id

infomaniak_get_swiss_backup_acronis_infoA
Read-onlyIdempotent

Read Acronis connection information for a Swiss Backup subscription.

Inputs: swiss_backup_id (required). Returns: acronis, swiss_backup_id

infomaniak_get_swiss_backup_pricingA
Read-onlyIdempotent

Read Swiss Backup pricing or calculate a price from query parameters.

Inputs: query, calculate. Returns: data, calculate

infomaniak_get_swiss_backup_slotB
Read-onlyIdempotent

Read one Swiss Backup slot.

Inputs: slot_id (required), swiss_backup_id (required). Returns: slot, slot_id, swiss_backup_id

infomaniak_get_user_app_accessesA
Read-onlyIdempotent

List app accesses for one account user. Read-only admin inventory for access audit and offboarding planning.

Inputs: user_id (required), account_id (required). Returns: count, user_id, account_id, app_accesses

infomaniak_get_vps_fullA
Read-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, cpu, ram, lite, +46 more

infomaniak_harden_mailbox_securityA
DestructiveIdempotent

Plan and apply conservative mailbox security hardening: enable spam movement, enable mail filtering, and optionally set filtering folders. Two-phase commit with audit/current-state guard.

Inputs: mailbox_name (required), mail_hosting_id (required), ensure_move_spam, confirmation_token, +3 more. Returns: object

infomaniak_helpA
Read-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_historyA
Read-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_account_usersA
Read-onlyIdempotent

List users attached to an Infomaniak account. Read-only admin inventory for access review and offboarding.

Inputs: account_id (required). Returns: count, users, account_id

infomaniak_list_ai_modelsA
Read-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_product_modelsA
Read-onlyIdempotent

List the models exposed by one Infomaniak AI product through its OpenAI-compatible v2 endpoint.

Inputs: product_id (required). Returns: models, product_id

infomaniak_list_ai_productsA
Read-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_databasesA
Read-onlyIdempotent

List every MariaDB database attached to a web hosting (with disk usage and any running operations).

Inputs: hosting_id (required). Returns: count, databases, hosting_id

infomaniak_list_database_usersA
Read-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: count, users, hosting_id

infomaniak_list_domainsA
Read-onlyIdempotent

List every domain owned by an Infomaniak organization, with creation and expiration dates.

Inputs: account_id. Returns: count, domains, account_id

infomaniak_list_drive_activity_reportsA
Read-onlyIdempotent

List generated kDrive activity reports, optionally filtered by users and report status metadata.

Inputs: drive_id (required), query. Returns: data, drive_id, summary_markdown

infomaniak_list_drive_file_access_invitationsA
Read-onlyIdempotent

List file-access invitations for a kDrive file or folder. Read-only admin inventory for pending access grants.

Inputs: file_id (required), drive_id (required). Returns: items, file_id, drive_id, summary_markdown

infomaniak_list_drive_file_access_teamsA
Read-onlyIdempotent

List team access entries for a kDrive file or folder. Read-only admin inventory for file permission review.

Inputs: file_id (required), drive_id (required). Returns: items, file_id, drive_id, summary_markdown

infomaniak_list_drive_file_access_usersA
Read-onlyIdempotent

List user access entries for a kDrive file or folder. Read-only admin inventory for file permission review.

Inputs: file_id (required), drive_id (required). Returns: items, file_id, drive_id, summary_markdown

infomaniak_list_drive_filesA
Read-onlyIdempotent

List files and subfolders of a kDrive root or a specific folder. Supports pagination.

Inputs: drive_id (required), page, per_page, parent_id. Returns: page, count, files, drive_id, +1 more

infomaniak_list_drive_invitationsA
Read-onlyIdempotent

List pending kDrive user invitations for access review.

Inputs: drive_id (required). Returns: drive_id, invitations

infomaniak_list_drivesA
Read-onlyIdempotent

List every kDrive the account has access to.

Inputs: account_id. Returns: count, drives, account_id

infomaniak_list_drive_trashA
Read-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: count, items, drive_id

infomaniak_list_drive_usersA
Read-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: count, users, drive_id

infomaniak_list_email_importsA
Read-onlyIdempotent

List email-import jobs and their state for a mailbox.

Inputs: mailbox_name (required), mail_hosting_id (required), query. Returns: total, imports, mailbox_name, mail_hosting_id

infomaniak_list_hostingsA
Read-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: hostings, account_id

infomaniak_list_hosting_usersA
Read-onlyIdempotent

List the FTP / SSH users that have access to a web hosting (with environment and SSH flag).

Inputs: hosting_id (required). Returns: count, users, hosting_id

infomaniak_list_kchat_botsA
Read-onlyIdempotent

List kChat bots for admin review.

Inputs: no named parameters. Returns: items, summary_markdown

infomaniak_list_kchat_channel_membersA
Read-onlyIdempotent

List the members of a kChat channel, optionally including one specific member snapshot.

Inputs: channel_id (required), user_id. Returns: member, members, summary_markdown

infomaniak_list_kchat_channelsA
Read-onlyIdempotent

List kChat channels in the account. This stays on the admin/governance side of the Mattermost-compatible API surface.

Inputs: team_id. Returns: items, summary_markdown

infomaniak_list_kchat_commandsA
Read-onlyIdempotent

List kChat slash commands for a team or the account.

Inputs: team_id. Returns: items, summary_markdown

infomaniak_list_kchat_groupsA
Read-onlyIdempotent

List kChat groups for a team, channel, or user. This is useful for auditing permission-linked group sync.

Inputs: scope, team_id, user_id, channel_id. Returns: items, summary_markdown

infomaniak_list_kchat_rolesA
Read-onlyIdempotent

List kChat roles for permission auditing.

Inputs: no named parameters. Returns: items, summary_markdown

infomaniak_list_kchat_team_channelsA
Read-onlyIdempotent

List the public, private, or deleted channels for one kChat team. Useful for admin inventory and channel governance.

Inputs: team_id (required), visibility. Returns: items, summary_markdown

infomaniak_list_mailboxesA
Read-onlyIdempotent

List every mailbox on a given mail hosting.

Inputs: mail_hosting_id (required). Returns: count, mailboxes, mail_hosting_id

infomaniak_list_mailbox_filtersA
Read-onlyIdempotent

List Sieve filters, scripts, and available templates for a mailbox. Read-only admin inventory for spam/filter policy auditing.

Inputs: mailbox_name (required), mail_hosting_id (required). Returns: script, filters, scripts, templates, +4 more

infomaniak_list_mailbox_filter_scriptsA
Read-onlyIdempotent

List only the advanced Sieve scripts configured on a mailbox. Focused read-only view derived from the mailbox filter inventory endpoint.

Inputs: mailbox_name (required), mail_hosting_id (required). Returns: script, scripts, use_scripts, mailbox_name, +2 more

infomaniak_list_mail_hostingsA
Read-onlyIdempotent

List every mail hosting (a.k.a. email_hosting) attached to an Infomaniak organization.

Inputs: account_id. Returns: count, account_id, mail_hostings

infomaniak_list_mailing_listsA
Read-onlyIdempotent

List mailing lists configured on a mail hosting.

Inputs: mail_hosting_id (required). Returns: mailing_lists, mail_hosting_id

infomaniak_list_nodejs_appsA
Read-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: apps, hosting_id, hosting_name, hosting_state

infomaniak_list_organizationsA
Read-onlyIdempotent

Lists all Infomaniak organizations (accounts) the current token has technical access to.

Inputs: no named parameters. Returns: organizations

infomaniak_list_public_cloud_accessesA
Read-onlyIdempotent

List Public Cloud account accesses.

Inputs: no named parameters. Returns: accesses

infomaniak_list_public_cloud_database_servicesA
Read-onlyIdempotent

List Public Cloud DBaaS services globally or within a project.

Inputs: public_cloud_id (required), project_id. Returns: services, public_cloud_id

infomaniak_list_public_cloud_kubernetes_servicesA
Read-onlyIdempotent

List Public Cloud Kubernetes services globally or within a project.

Inputs: public_cloud_id (required), project_id. Returns: services, public_cloud_id

infomaniak_list_public_cloud_projectsC
Read-onlyIdempotent

List projects within a Public Cloud product.

Inputs: public_cloud_id (required). Returns: projects, public_cloud_id

infomaniak_list_public_cloud_project_usersA
Read-onlyIdempotent

List users with access to a Public Cloud project.

Inputs: project_id (required), public_cloud_id (required). Returns: users, project_id, public_cloud_id

infomaniak_list_public_cloud_resource_dataA
Read-onlyIdempotent

List Public Cloud configuration and service catalog data such as regions, packs, types, and Kubernetes versions.

Inputs: resource (required). Returns: data, resource

infomaniak_list_public_cloudsA
Read-onlyIdempotent

List Public Cloud products available to the current account.

Inputs: no named parameters. Returns: public_clouds

infomaniak_list_redirectionsA
Read-onlyIdempotent

List every server-side redirection rule on a mail hosting.

Inputs: mail_hosting_id (required). Returns: count, redirections, mail_hosting_id

infomaniak_list_service_auto_repliesA
Read-onlyIdempotent

List service-level auto-reply configurations for a mail hosting.

Inputs: mail_hosting_id (required). Returns: auto_replies, mail_hosting_id

infomaniak_list_service_filter_modelsA
Read-onlyIdempotent

List service-level reusable mail filter models.

Inputs: mail_hosting_id (required). Returns: filters, mail_hosting_id

infomaniak_list_short_urlsA
Read-onlyIdempotent

List the short URLs created by your account on Infomaniak's url-shortener service.

Inputs: page, per_page. Returns: page, count, per_page, short_urls

infomaniak_list_site_aliasesA
Read-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: site_id (required), hosting_id (required). Returns: count, aliases, site_id, main_fqdn, +1 more

infomaniak_list_sitesA
Read-onlyIdempotent

Lists all sites on a given web hosting (with applications attached).

Inputs: hosting_id (required). Returns: sites, hosting_id

infomaniak_list_swiss_backupsA
Read-onlyIdempotent

List Swiss Backup subscriptions on an Infomaniak organization (Acronis-based managed backup).

Inputs: account_id. Returns: count, account_id, swiss_backups

infomaniak_list_swiss_backup_slotsA
Read-onlyIdempotent

List backup slots belonging to a Swiss Backup subscription.

Inputs: swiss_backup_id (required). Returns: slots, swiss_backup_id

infomaniak_list_teams_and_tagsA
Read-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: tags, teams, tags_count, teams_count

infomaniak_list_vpsA
Read-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: vps, count, account_id

infomaniak_lock_drive_userA
Idempotent

Lock a kDrive user through POST /2/drive/{drive_id}/users/{user_id}/lock. Two-phase commit with current user guard.

Inputs: user_id (required), drive_id (required), confirmation_token. Returns: object

infomaniak_manage_account_invitation_accessB
Destructive

Grant, update, invite, or revoke invitation-scoped product access for kSuite, drive, mailbox, or kChat. Two-phase confirmation with a fresh invitation snapshot guard.

Inputs: action (required), target (required), account_id (required), invitation_id (required), +4 more. Returns: object

infomaniak_manage_account_invitation_b2bA
DestructiveIdempotent

Assign or unassign B2B customer partnerships on an account invitation. Two-phase confirmation with a fresh partnership snapshot.

Inputs: action (required), account_id (required), invitation_id (required), payload, +2 more. Returns: Two-phase confirmation result.

infomaniak_manage_dnssecA
Idempotent

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_manage_domain_nameserversA
Destructive

Update a domain's nameservers or restore Infomaniak nameservers. Two-phase confirmation with a current domain snapshot.

Inputs: domain (required), nameservers, use_infomaniak_ns, confirmation_token, +1 more. Returns: Two-phase confirmation result.

infomaniak_manage_drive_private_directoryA
Idempotent

Update the maximum allowed size of kDrive private folders. Two-phase confirmation with a fresh settings snapshot; null removes the limit.

Inputs: drive_id (required), size_threshold (required), confirmation_token. Returns: Two-phase confirmation result.

infomaniak_manage_drive_settingsA
Idempotent

Update kDrive AI, share-link, office, or preferences settings. Two-phase confirmation with a fresh settings snapshot guard.

Inputs: action (required), drive_id (required), settings (required), confirmation_token. Returns: object

infomaniak_manage_kchat_botA
Destructive

Create, update, enable, disable, or delete a kChat bot. Two-phase confirmation for every mutation.

Inputs: action (required), payload, bot_user_id, confirmation_token. Returns: object

infomaniak_manage_kchat_channelA
Destructive

Create, update, patch, move, restore, delete, or change privacy/scheme/moderation for a kChat channel. Two-phase confirmation for all writes.

Inputs: action (required), payload, team_id, channel_id, +1 more. Returns: object

infomaniak_manage_kchat_channel_membersA
Destructive

Add or remove channel members, or update a member's roles / scheme roles / notify props. Two-phase confirmation for every mutation.

Inputs: action (required), channel_id (required), roles, payload, +5 more. Returns: object

infomaniak_manage_kchat_commandA
Destructive

Create, update, delete, or regenerate a kChat slash command token. Two-phase confirmation for writes.

Inputs: action (required), payload, team_id, command_id, +1 more. Returns: object

infomaniak_manage_mailbox_aliasesA
Destructive

List, replace, add, or delete mailbox aliases. Replace/add/delete paths use two-phase confirmation and refetch the current alias list before applying.

Inputs: action (required), mailbox_name (required), mail_hosting_id (required), alias, +3 more. Returns: Two-phase confirmation result.

infomaniak_manage_mailbox_auto_replyA
Destructive

List, create, update, delete, or reset mailbox auto-reply models. Uses the mailbox auto-reply model endpoints and two-phase confirmation for mutations.

Inputs: action (required), mailbox_name (required), mail_hosting_id (required), payload, +2 more. Returns: Two-phase confirmation result.

infomaniak_manage_mailbox_filter_lifecycleA
Idempotent

Enable/disable mailbox filters or Sieve scripts, or reorder filters. All changes use two-phase confirmation with a fresh filter snapshot.

Inputs: action (required), mailbox_name (required), mail_hosting_id (required), order, +3 more. Returns: Two-phase confirmation result.

infomaniak_manage_mailbox_forwardingA
Destructive

List, replace, add, or delete mailbox forwarding addresses. Uses the forwarding-address collection endpoint and two-phase confirmation for mutations.

Inputs: action (required), mailbox_name (required), mail_hosting_id (required), payload, +2 more. Returns: Two-phase confirmation result.

infomaniak_manage_mail_device_accessA
Destructive

Delete a specific device access, or revoke all device sessions for a mailbox or service user. Uses two-phase confirmation and current-state guards.

Inputs: action (required), mail_hosting_id (required), scope, user_id, +3 more. Returns: object

infomaniak_manage_mail_signaturesA
Destructive

Create, update, delete, upload, set defaults, or generate signatures from templates. Uses two-phase confirmation and refetches the current signature or template state before apply.

Inputs: scope (required), action (required), resource (required), mail_hosting_id (required), +5 more. Returns: object

infomaniak_manage_mail_webmail_accessA
Destructive

Create, update, delete, or invite webmail access for mailbox users and teams. Uses two-phase confirmation and refetches current access state before apply.

Inputs: action (required), mail_hosting_id (required), payload, team_id, +4 more. Returns: object

infomaniak_manage_newsletter_adminA
Destructive

Create, update, delete, assign, unassign, or forget newsletter groups and subscribers. Uses two-phase confirmation and rechecks the current list before apply.

Inputs: action (required), domain (required), group, payload, +2 more. Returns: object

infomaniak_manage_public_cloud_database_serviceC
Destructive

Manage Public Cloud DBaaS lifecycle and operational actions with two-phase confirmation.

Inputs: action (required), project_id (required), public_cloud_id (required), payload, +2 more. Returns: object

infomaniak_manage_public_cloud_kubernetes_serviceA
Destructive

Create, update, or delete a Public Cloud Kubernetes service with two-phase confirmation.

Inputs: action (required), project_id (required), public_cloud_id (required), kaas_id, +2 more. Returns: object

infomaniak_manage_public_cloud_projectB
Destructive

Create, update, delete, or create-with-invitation a Public Cloud project using two-phase confirmation.

Inputs: action (required), public_cloud_id (required), payload, project_id, +1 more. Returns: object

infomaniak_manage_public_cloud_project_userA
Destructive

Create, update, delete, or invite a Public Cloud project user with two-phase confirmation.

Inputs: action (required), project_id (required), public_cloud_id (required), payload, +2 more. Returns: object

infomaniak_manage_service_redirectionsC
Destructive

List, create, update, delete, enable, and confirm service-level redirections. Also exposes target-list and confirmation resend helpers.

Inputs: action (required), mail_hosting_id (required), target, payload, +3 more. Returns: Two-phase confirmation result.

infomaniak_manage_swiss_backup_administratorA

Create or update the administrator for a Swiss Backup subscription with two-phase confirmation.

Inputs: action (required), payload (required), swiss_backup_id (required), confirmation_token. Returns: object

infomaniak_manage_swiss_backup_slotA
Destructive

Create, update, delete, enable, or disable a Swiss Backup slot with two-phase confirmation.

Inputs: action (required), swiss_backup_id (required), payload, slot_id, +1 more. Returns: object

infomaniak_nodejs_app_actionA
Destructive

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: action (required), hosting_id (required), vhost_route_id (required), confirmation_token. Returns: object

infomaniak_nodejs_app_aliasesA
Read-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_jobsA
Read-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_logsA
Read-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, consumer_hint, expires_at_iso

infomaniak_nodejs_app_statusA
Read-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_thumbnailA
Read-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_overviewA
Read-onlyIdempotent

Returns a summary of all Infomaniak organizations and products you have access to. Best called first in a session.

Inputs: account_id. Returns: accounts, total_accounts, total_products, summary_markdown

infomaniak_plan_user_offboardingA
Read-onlyIdempotent

Build a read-only initial offboarding plan for one account user from app accesses and invitations. This does not revoke anything.

Inputs: user_id (required), account_id (required). Returns: status, actions, user_id, account_id, +2 more

infomaniak_provision_site_fullA
Destructive

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: fqdn (required), hosting_id (required), database_name (required), ttl, +4 more. Returns: object

infomaniak_purge_spam_folderA
DestructiveIdempotent

Delete all messages currently in a mailbox spam folder. Destructive two-phase commit with mailbox security state guard.

Inputs: mailbox_name (required), mail_hosting_id (required), confirmation_token. Returns: object

infomaniak_remove_account_team_usersA
Destructive

Remove one or more users from an account team. Two-phase commit with a fresh team-members snapshot guard.

Inputs: payload (required), team_id (required), account_id (required), confirmation_token. Returns: Two-phase confirmation result.

infomaniak_remove_drive_file_access_teamA
DestructiveIdempotent

Revoke a team's access to a kDrive file or folder. Destructive two-phase commit with current file-access guard.

Inputs: file_id (required), team_id (required), drive_id (required), confirmation_token. Returns: object

infomaniak_remove_drive_file_access_userA
DestructiveIdempotent

Revoke a user's access to a kDrive file or folder. Destructive two-phase commit with current file-access guard.

Inputs: file_id (required), user_id (required), drive_id (required), confirmation_token. Returns: object

infomaniak_remove_drive_trash_itemA
DestructiveIdempotent

Permanently remove one file or folder from kDrive trash. Destructive two-phase commit with trashed-item guard; not undoable.

Inputs: file_id (required), drive_id (required), confirmation_token. Returns: object

infomaniak_request_certificateA
Destructive

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: type (required), site_id (required), hosting_id (required), certificate, +4 more. Returns: object

infomaniak_restore_drive_trash_itemA
DestructiveIdempotent

Restore one file or folder from kDrive trash. Two-phase commit with trashed-item guard.

Inputs: file_id (required), drive_id (required), confirmation_token. Returns: object

infomaniak_rotate_mail_dkimA
Destructive

Check or rotate the DKIM key for a mail hosting. The check path is read-only; rotate uses two-phase confirmation.

Inputs: action (required), mail_hosting_id (required), confirmation_token. Returns: Two-phase confirmation result.

infomaniak_set_drive_user_managerA
Idempotent

Set or remove kDrive manager rights through PATCH /2/drive/{drive_id}/users/{user_id}/manager. Two-phase commit with current user guard.

Inputs: user_id (required), drive_id (required), is_manager (required), confirmation_token. Returns: object

infomaniak_set_mailbox_spam_policyA
DestructiveIdempotent

Update mailbox spam movement, smart filtering folders, and admin note. Two-phase commit: returns a current-state diff and confirmation token, then applies only if the policy state has not changed.

Inputs: mailbox_name (required), mail_hosting_id (required), note, has_move_spam, +4 more. Returns: object

infomaniak_short_urls_quotaA
Read-onlyIdempotent

Return the current consumption and limit of your account's short-URL quota.

Inputs: no named parameters. Returns: limit, quota

infomaniak_tool_catalogA
Read-onlyIdempotent

List the MCP's Infomaniak tools by admin category, risk, and capability. Best for asking 'what can this MCP do?' before choosing a specific workflow.

Inputs: risk, limit, scope, category, +1 more. Returns: filters, categories, tool_count, summary_markdown, +1 more

infomaniak_unauthorize_senderA
DestructiveIdempotent

Remove this authorized sender. Two-phase commit: first call returns the current-state diff and confirmation token, second call with the token applies the PATCH if the mailbox sender lists have not changed.

Inputs: sender (required), mailbox_name (required), mail_hosting_id (required), confirmation_token. Returns: object

infomaniak_unblock_senderA
DestructiveIdempotent

Unblock this sender. Two-phase commit: first call returns the current-state diff and confirmation token, second call with the token applies the PATCH if the mailbox sender lists have not changed.

Inputs: sender (required), mailbox_name (required), mail_hosting_id (required), confirmation_token. Returns: object

infomaniak_undoA
Destructive

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

infomaniak_unlock_drive_userA
Idempotent

Unlock a kDrive user through POST /2/drive/{drive_id}/users/{user_id}/unlock. Two-phase commit with current user guard.

Inputs: user_id (required), drive_id (required), confirmation_token. Returns: object

infomaniak_update_account_invitationA
Destructive

Patch an account invitation. Two-phase commit with a fresh invitation snapshot guard.

Inputs: payload (required), account_id (required), invitation_id (required), confirmation_token. Returns: Two-phase confirmation result.

infomaniak_update_account_tagA
Destructive

Update an account tag. Two-phase commit with a fresh tag snapshot guard.

Inputs: tag_id (required), payload (required), account_id (required), confirmation_token. Returns: Two-phase confirmation result.

infomaniak_update_account_teamB
Destructive

Update an account team. Two-phase commit with a fresh team snapshot guard.

Inputs: payload (required), team_id (required), account_id (required), confirmation_token. Returns: Two-phase confirmation result.

infomaniak_update_drive_file_access_teamA
Idempotent

Update a team's access role on a kDrive file or folder. Two-phase commit with current file-access guard.

Inputs: file_id (required), payload (required), team_id (required), drive_id (required), +1 more. Returns: object

infomaniak_update_drive_file_access_userA
Idempotent

Update a user's access role on a kDrive file or folder. Two-phase commit with current file-access guard.

Inputs: file_id (required), payload (required), user_id (required), drive_id (required), +1 more. Returns: object

infomaniak_update_drive_trash_settingsA
DestructiveIdempotent

Update kDrive trash settings through PUT /2/drive/{drive_id}/settings/trash. Two-phase commit with current settings guard.

Inputs: drive_id (required), settings (required), confirmation_token. Returns: object

infomaniak_update_drive_userA

Update a kDrive user through PUT /2/drive/{drive_id}/users/{user_id}. Two-phase commit with current user guard.

Inputs: user (required), user_id (required), drive_id (required), confirmation_token. Returns: object

infomaniak_update_mailbox_filterA
Destructive

Update or rename a mailbox Sieve filter. Two-phase commit with current filter inventory guard before PATCH.

Inputs: name (required), old_name (required), has_all_of (required), is_enabled (required), +4 more. Returns: object

infomaniak_update_mailbox_foldersA
DestructiveIdempotent

Update mailbox folder mappings for archives, drafts, sent, trash, spam, commercials, and social-network folders. Two-phase commit with mailbox security state guard.

Inputs: sent_folder (required), draft_folder (required), mailbox_name (required), trash_folder (required), +6 more. Returns: object

infomaniak_upsert_mailbox_filter_scriptA
Destructive

Create or update a mailbox Sieve script. Omit old_name to create; provide old_name to update/rename. Two-phase commit with current inventory guard.

Inputs: name (required), content (required), mailbox_name (required), mail_hosting_id (required), +3 more. Returns: object

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.4/5.0

    Scored across 221 tools

    Disambiguation4/5

    Most tools target distinct resources and actions (hosting vs mail vs kDrive vs Public Cloud), and the descriptions clearly separate similar-sounding ones. However, the sheer volume and the many generic 'manage_*' tools that bundle multiple operations create some potential for misselection, so it's not a perfect 5.

    Naming Consistency4/5

    The overwhelming majority follow infomaniak_<verb>_<resource> in snake_case, which is very consistent. Minor deviations like infomaniak_short_urls_quota, infomaniak_api_call, infomaniak_tool_catalog, infomaniak_overview, infomaniak_history, and infomaniak_undo break the strict verb_noun pattern, so it's not a perfect 5.

    Tool Count1/5

    221 tools is an extreme count, far beyond even the 50+ threshold for a 1. Even for a broad multi-product admin MCP, this is overwhelming and likely to cause agent confusion and poor selection performance.

    Completeness5/5

    The server covers an enormous range of Infomaniak products with deep lifecycle operations (create/read/update/delete) across hosting, mail, kDrive, Public Cloud, Swiss Backup, kChat, AI, and more. It also provides meta tools and an api_call escape hatch, so there are no obvious dead ends or significant gaps for the stated admin purpose.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      C
      maintenance
      infomaniak-mcp-agent lets Claude (or any MCP client) drive a real Infomaniak account end-to-end through 54 tools — web hosting, mail, kDrive, domains, DNS, DNSSEC, FTP/SSH users, AI catalogue and more. Every destructive operation goes through a strict two-phase commit (plan + single-use confirmation token) so the agent can never silently mutate your account. Open Source
      74
      113 npm
      8
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables AI assistants to manage O2Switch hosting accounts, including deploying sites, managing subdomains, SSL certificates, WordPress, email, cron jobs, and more, with human confirmation for sensitive actions.
      2
      MIT