Skip to main content
Glama

infomaniak-mcp-agent

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

Drive your entire Infomaniak account from Claude — agentic, two-phase commit, open-source.

infomaniak-mcp-agent is an unofficial Model Context Protocol server that exposes the full surface of Infomaniak — Switzerland's sovereign cloud — as 78 tools an LLM can call directly: web hosting, mail (kSuite), kDrive, domains, DNS, DNSSEC, FTP/SSH users, AI products, account audits and more. Every destructive operation goes through a strict two-phase commit, so an agent can never silently delete or mutate something on your account.

You → Claude:  "audit the example.com hosting and tell me which mailboxes are over quota"
Claude → MCP:  infomaniak_audit_account → infomaniak_list_mail_hostings → infomaniak_list_mailboxes
Claude → You:  3 mailboxes >85% — paul@ (94%), notify@ (88%), team@ (87%). Want me to add an alert?

Table of contents

Related MCP server: FutureSense MCP

Why this exists

Infomaniak is one of the very few independent, Swiss-owned, open-source-friendly cloud providers in Europe — running its own datacentres in Switzerland, on hydro and wind power, with no parent in the US or China. Its product range is huge (web hosting, mail, kDrive, kChat, DNS, AI cloud, Swiss Backup, …) but its API is split between a documented public surface and a private manager-only one — which means automating real workflows usually requires a browser session, custom scripts, or both.

This project closes that gap by exposing everything through a single MCP server, so Claude or any other MCP client can run real account operations through natural language: provision a hosting, rotate a DNS record, create a mailbox, audit your domains for upcoming expirations, browse your kDrive — without ever forcing you to leave the chat or write a script.

🎒 Built in the open, in real time, by vibe-coding

This project was built rapidly by an LLM driving a terminal session ("vibe-coding"), with live tests against a real Infomaniak account at every step. It works perfectly on the maintainer's local setup and the full pipeline is green (TypeScript strict, ESLint, Prettier, 78 tests, build, CodeQL, gitleaks).

That said — given how it was built and given that several endpoints used here are reverse-engineered (see REVERSE-ENGINEERING.md) — it is entirely possible that you'll hit (potentially big) bugs depending on your account topology, plan tier, scopes, or Infomaniak's own changes. We are here to fix them as they show up. Please:

  1. Open an issue with the exact tool call, the input, the response, and your environment (Node version, OS, MCP client). Sanitize tokens / cookies / customer names before pasting.

  2. Or, even better, send a PR with a failing test and we will work from there together.

We move fast and ship often. Don't be shy.

⚠️ Status: unofficial

This project is not affiliated with, endorsed by, or sponsored by Infomaniak Network SA. It is a community-driven tool that combines:

  1. The public Infomaniak API (api.infomaniak.com), used with a Bearer token you generate yourself.

  2. Reverse-engineered manager endpoints (manager.infomaniak.com/proxy/...), required for write operations on web hosting that the public API silently ignores.

For full transparency, read REVERSE-ENGINEERING.md. Infomaniak may change these endpoints without notice; we do our best to keep up but cannot guarantee long-term compatibility.

What you can do with it

Once installed, you can ask Claude things like:

  • "List every domain on my account that expires in less than 60 days, sorted by date."

  • "Create a new site staging.example.com on hosting WP1234567, PHP 8.3, root in /sites/staging."

  • "Add a TXT record on example.com for the new Postmark DKIM, then verify it resolves."

  • "How much disk does the database myprefix_wp123456 use, and which application is wired to it?"

  • "Create a mailbox hello@example.com with a 16-character random password and forward it to my Gmail."

  • "Show me which kDrives I'm an admin on and how full they are."

  • "Audit my whole account: any locked product, expiring SSL, broken DNSSEC, ongoing operations?"

  • "Undo the last DNS change I made through this session."

It will not silently mutate anything destructive: every change goes through a plan + confirmation token round-trip. You stay in control even if the model gets creative.

Why "agentic" and not "wrapper"

Most MCP servers expose one tool per HTTP endpoint and call it a day. This one is built differently:

  • Guided dialogues — creating a site walks you through "which organization? which hosting? root domain or subdomain? what type? recap?" instead of asking you to know the right tool to call upfront.

  • Two-phase commit — every destructive operation returns a plan with a single-use confirmation token (60 s TTL). Nothing is mutated until you call back with the token.

  • Pre-flight checks — the server checks for conflicts (existing FQDN, busy hosting, expired domain) before hitting the API.

  • Actionable errors — every error tells you what happened, why, and the next step you can take.

  • Introspectioninfomaniak_overview, infomaniak_help and infomaniak_explain give the agent context-on-demand instead of forcing it to memorize a tool catalog.

  • Session memoryinfomaniak_history lists every destructive action of the current session, and infomaniak_undo reverses the ones that are reversible.

See ARCHITECTURE.md for the full design rationale.

Install

Available on npm — the recommended path is to let npx fetch the latest release on demand:

npx infomaniak-mcp-agent

(no install step needed; npx resolves the latest version on first invocation and caches it).

Or install globally if you prefer a stable binary in your $PATH:

npm install -g infomaniak-mcp-agent

If you'd rather pin to a specific commit (or hack on the source), install from this repo:

git clone https://github.com/Mogacode-ma/infomaniak-mcp-agent.git
cd infomaniak-mcp-agent
npm ci
npm run build
# resulting binary: ./dist/server.js

Configure Claude Desktop

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

{
  "mcpServers": {
    "infomaniak": {
      "command": "npx",
      "args": ["-y", "infomaniak-mcp-agent"],
      "env": {
        "INFOMANIAK_API_TOKEN": "paste-your-token-here",
        "INFOMANIAK_AUTH_MODE": "auto"
      }
    }
  }
}

Restart Claude Desktop to pick up the change.

Configure Claude Code

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

Authentication

Two distinct credentials are needed because Infomaniak runs two APIs side-by-side:

API

Auth

Purpose

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

Bearer token

Read-mostly: profile, products, mail, drive, dns, domains, billing

manager.infomaniak.com/proxy/...

SASESSION cookie + CSRF token

Writes on web hosting (sites, databases, applications)

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 (Infomaniak only exposes openid profile email phone scopes to third-party apps; web, mail, etc. are reserved). Instead, we read the SASESSION and MANAGER-XSRF-TOKEN cookies that your local Chrome already has when you are logged into manager.infomaniak.com.

With INFOMANIAK_AUTH_MODE=auto (the default), the MCP reads these cookies on demand using chrome-cookies-secure. Nothing is ever written to disk; cookies live in memory for the duration of one operation.

When the session expires, simply reload manager.infomaniak.com in Chrome — the MCP will pick up the fresh cookies on the next call.

3. Manager session (manual fallback)

For headless environments or troubleshooting:

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

To copy them: open Chrome DevTools on manager.infomaniak.com, Application → Cookies, copy SASESSION and MANAGER-XSRF-TOKEN (URL-encoded — paste as-is, the MCP decodes).

Quick example

A typical first conversation, end-to-end:

You:    What's on my account?
Claude: [calls infomaniak_overview]
        You have 16 organizations, 311 products: 47 web hostings, 73 domains,
        12 mail hostings, 3 kDrives, 2 AI Tools subscriptions.

You:    Any domain expiring soon?
Claude: [calls infomaniak_audit_account on each org]
        2 domains expire in <30 days: example.com (April 22), demo.org (May 04).
        4 SSL certificates were auto-renewed in the last 7 days. No locked products.

You:    Create a TXT record on example.com saying "v=spf1 include:spf.example.net ~all".
Claude: [calls infomaniak_dns_create_record → returns plan + token]
        Plan: CREATE TXT record on example.com → "v=spf1 include:spf.example.net ~all", TTL 3600.
        Confirm with token abc-123 within 60 s.

You:    Confirm.
Claude: [calls infomaniak_dns_create_record again with the token]
        Done. Record id 84219113. Logged in session history (undoable).

Tools

78 tools across 22 areas. Use infomaniak_help to fuzzy-search by intent, or infomaniak_explain to dump a tool's full JSON schema.

Introspection (start here)

Tool

Annotation

Purpose

infomaniak_overview

read-only

Summary of organizations + products. Best first call.

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

Site aliases

Additional FQDNs bound to an existing site's Apache vhost / DocumentRoot — how you serve several domains from a single install without provisioning a new site.

Tool

Annotation

Purpose

infomaniak_list_site_aliases

read-only

FQDNs (main + aliases) bound to a site.

infomaniak_add_site_aliases

destructive

Bind one or more FQDNs (wildcards like *.example.com accepted). Two-phase. Asynchronous: returns a progress_id, the alias shows up in list_site_aliases a few seconds later.

infomaniak_delete_site_alias

destructive

Unbind one alias FQDN (the main FQDN cannot be removed). Two-phase.

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.

infomaniak_change_database_user_password

destructive

Rotate a MariaDB user's password and re-declare its grants atomically. Two-phase.

infomaniak_change_database_user_permissions

destructive

Change which databases a user can reach (read/write/admin per DB), password untouched. Two-phase.

⚠️ Both tools take a grants array that declares every database the user may access — anything omitted is set to no-access. Call infomaniak_get_database_user first and copy the current permissions, or you will silently revoke access. This is deliberate: it is also the canonical way to revoke a grant.

They use the manager-private endpoint rather than the public API on purpose. The public PATCH /1/web_hostings/{id}/database_users/{user} accepts a password, changes it, and silently wipes permissions and applications — see REVERSE-ENGINEERING.md §Database users.

Prefer these tools over a direct MariaDB ALTER USER / SET PASSWORD over SSH. The manager is the source of truth for hosting database credentials: a password set only in MariaDB diverges from it silently, and gets reverted to the manager's value at the next Infomaniak maintenance — which can be months later, with no apparent link to the change.

FTP / SSH users

Tool

Annotation

Purpose

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_change_hosting_user_password

destructive

Rotate an FTP/SSH user's password. Two-phase. Pass the user's current connection_type to leave it untouched.

infomaniak_change_hosting_user_connection_type

destructive

Promote / demote a user between ftp and ssh. Password untouched. Two-phase.

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

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 (deep)

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.

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.

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 REVERSE-ENGINEERING.md §Node.js DevOps.

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.

URL shortener

Tool

Annotation

Purpose

infomaniak_list_short_urls

read-only

Short URLs configured on a domain.

infomaniak_short_urls_quota

read-only

Short URL quota used / available on a domain.

infomaniak_create_short_url

destructive

Two-phase create.

Swiss Backup

Tool

Annotation

Purpose

infomaniak_list_swiss_backups

read-only

Swiss Backup slots on the account.

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.

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

Limitations

  • Hard rate limit of 60 req/min on api.infomaniak.com. The MCP throttles automatically with a token-bucket. You will see brief queueing delays on heavy bursts; this is intentional and protects your token from blacklisting.

  • No directory outside /sites/ when creating a site. Required by the manager backend (silently no-ops otherwise — see REVERSE-ENGINEERING.md).

  • Manager session cookies expire (typically every few hours / when you sign out of Chrome). Re-open manager.infomaniak.com to refresh.

  • One concurrent operation per hosting — Infomaniak rejects concurrent POSTs on the same hosting with 400 operation_in_progress. The MCP serializes write calls per hosting.

  • WordPress installation is intentionally out of scope. Create the empty site with this MCP, then install WP from the manager's wizard (the applications/add flow uses an undocumented per-step wizard that is too brittle to automate cleanly today).

Roadmap

Shipped in v0.7 (current)

  • ✅ Web hosting: list + create + delete sites, databases, FTP/SSH users

  • ✅ DNS: full CRUD on records, DNSSEC enable/disable/check

  • ✅ Mail: mailboxes, aliases, signatures, backups, redirections — all CRUD

  • ✅ kDrive: list drives + browse files

  • ✅ Swiss Backup: list slots

  • ✅ AI Tools: list products + public model catalogue

  • ✅ URL shortener: full CRUD

  • ✅ Account audit: domains expiring soon, locked products, ongoing operations

  • ✅ Workflow tools: provision_site_full, audit_dns_zones

  • undo / history session tools

  • ✅ Generic API escape hatch for any documented endpoint

Next (v0.8+)

  • ⬜ kDrive write: upload, download, move, share, archive

  • ⬜ Newsletter: campaigns, contacts (untouched today)

  • ⬜ kChat: channels, threads, posts (no public API yet — needs reverse-engineering)

  • ⬜ Workflow: provision_wordpress_site (needs a WP install path that does not depend on the brittle manager wizard)

  • ⬜ Swiss Backup write: slot creation, schedules, restores

  • ⬜ Per-tool happy-path tests to push coverage from 35% to 70%

  • ⬜ MCPB packaging for one-click install in Claude Desktop

FAQ

Is this an official Infomaniak product?

No. It is community-driven, MIT-licensed, and not affiliated with, endorsed by, or sponsored by Infomaniak Network SA. See the disclaimers in NOTICE and REVERSE-ENGINEERING.md.

Does it work with clients other than Claude?

Yes. It speaks the standard Model Context Protocol over stdio, so it works with any MCP-capable client — Claude Desktop, Claude Code, Cursor, Cline, Continue, Zed AI, and the MCP Inspector for debugging.

Will my Infomaniak token / session ever leave my machine?

No. The server runs locally over stdio. Your Bearer token is read from INFOMANIAK_API_TOKEN (env or .env) and used only to call api.infomaniak.com. The Chrome cookies (SASESSION, MANAGER-XSRF-TOKEN) live in memory for the duration of a single tool call and are never persisted. Logs redact every sensitive value (tokens, cookies, passwords).

Does it support self-hosting / running outside macOS?

Yes — INFOMANIAK_AUTH_MODE=manual lets you paste cookies straight into env vars, which is the path to use on Linux servers, Docker containers, or CI. Auto-extraction from Chrome works on macOS, Windows, and Linux when Chrome is installed locally.

Why does site creation use a manager-private endpoint and not the public API?

Because the public POST /1/products/{id}/web_hostings/{hid}/sites endpoint silently returns a success response without actually creating anything. After reverse-engineering the manager bundle we found that the manager-private endpoint requires force_fqdn: true, directory: /sites/..., and environment: apache_php — none of which are documented. Full write-up in REVERSE-ENGINEERING.md.

Can it install WordPress automatically?

Not today. The manager's applications/add flow is a multi-step wizard with per-step tokens that is brittle to script. The recommended pattern is: create the empty site with this MCP, then install WordPress (or any other CMS) from the manager wizard or by uploading via FTP/SSH.

Is there a hosted / SaaS version?

No. By design — this server runs against your own credentials on your own machine. There is no hosted SaaS, no hosted proxy, no telemetry.

How do I report a bug or request a tool?

Open a GitHub issue. Include the exact tool call, the input, the response (sanitized — strip tokens, cookies, customer names), and your environment (Node version, OS, MCP client, plan tier). PRs with a failing test are doubly welcome.

What about Infomaniak's own AI Tools?

Infomaniak runs a Swiss-sovereign AI cloud hosting Llama, Mixtral, Whisper and other open-weights models. This MCP exposes infomaniak_list_ai_products and infomaniak_list_ai_models so an agent can discover what's available and what models are public on your account; we deliberately do not wrap their inference endpoints (use the OpenAI-compatible API directly for that).

Contributing

Contributions are welcome. Please read CONTRIBUTING.md and follow the CODE_OF_CONDUCT.md. Security issues should be reported privately per SECURITY.md.

If this saved you time

The fastest way to support the project is a ⭐ star on GitHub — it helps other Infomaniak users find this and tells me what to keep building.

You can also:

  • Open an issue for bugs, edge cases, or missing tools

  • Start a discussion for design or API questions

  • Share what you built with it — I'd love to hear

License

MIT — see NOTICE for the trademark disclaimer.

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

Available Tools

74 tools
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.

ParametersJSON Schema
NameRequiredDescriptionDefault
hosting_idYes
site_idYes
aliasesYesOne or more FQDNs to bind to the site. WILDCARDS ARE ACCEPTED (e.g. `*.evo.broz.be`) — use this pattern to serve any subdomain from a single WordPress install. The DNS for each alias must already point to the hosting's IP, otherwise Apache will respond but the browser will never reach it.
confirmation_tokenNoToken from the prior plan response. Required on the apply phase only.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses important behaviors: two-phase commit, asynchronous return of progress_id, eventual consistency (alias appears in list after a few seconds), and the manager-private restriction. This adds meaningful context beyond the readOnly/destructive hints, and there is no contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each carrying essential information: core action, architectural effect, and key behavioral caveats (async, two-phase, manager-private). No fluff, and the main purpose is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (two-phase commit, async provisioning, destructive hint, output schema), the description and schema together cover the essential workflow: what it does, when to use it, what it returns, and the confirmation token's role. A slightly more explicit walkthrough of the two phases would improve it, but it is largely sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides descriptions for aliases and confirmation_token, but site_id and hosting_id lack schema descriptions. The description itself does not elaborate these parameters, though the tool name and top-level text imply the hosting/site context. With only 50% schema description coverage, the description partially compensates by clarifying wildcard usage and DNS prerequisites for aliases, but leaves some gap for the two id parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (bind FQDNs), the target resource (web hosting site), and the effect (Apache vhost serves the new domains). It also distinguishes the tool from related siblings like delete_site_alias by noting 'no new site provisioning required'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives useful context: it mentions the two-phase commit, asynchronous behavior, and the fact that no new site provisioning is needed, implying when this tool is appropriate. However, it does not explicitly name alternatives or conditions for not using it, such as when deletion is needed (sibling delete_site_alias).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
methodYes
pathYes
queryNo
bodyNo
confirmation_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true, readOnlyHint=false, and openWorldHint=true. The description adds valuable context beyond annotations: 'GET runs immediately. POST/PUT/PATCH/DELETE follow the two-phase commit pattern.' It also discloses the /proxy/ endpoint restriction. This is meaningful behavioral information not present in the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences long and front-loaded with the most critical information (escape hatch, target API, when to use). Every sentence earns its place: it covers purpose, usage boundary, and method-specific behavior with no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is a generic escape hatch with no dedicated schema descriptions. The description covers purpose, usage boundaries, and key behavioral differences (immediate GET vs. two-phase commit). It does not explain the two-phase commit process in detail, but the output schema and annotations provide additional context. Overall, it is reasonably complete for a generic API call tool, with minor gaps around parameter construction and explicit destructive operation warnings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does not explain the path, body, query, or confirmation_token parameters in any detail. The only parameter-related hint is that non-GET methods use a two-phase commit pattern, implying the need for confirmation_token. The description does not clarify the structure of body/query or the expected path format, leaving a significant gap in parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'call ANY Infomaniak public API endpoint (api.infomaniak.com) when no dedicated tool exists.' It uses a specific verb ('call'), identifies the resource (Infomaniak public API), and distinguishes itself from the many typed sibling tools by explicitly positioning itself as an escape hatch.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool: 'when no dedicated tool exists.' It also states an exclusion and an alternative: 'Manager-private (/proxy/...) endpoints are NOT reachable through this tool — use a typed tool instead.' Additionally, it differentiates behavior by method (GET vs. POST/PUT/PATCH/DELETE), offering clear usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

infomaniak_audit_accountA
Read-onlyIdempotent

Scan an Infomaniak organization for actionable issues: products expiring soon, products in maintenance, locked products, ongoing operations.

ParametersJSON Schema
NameRequiredDescriptionDefault
account_idNoOrganization/account ID. Optional: defaults to the first account the token has access to. Discover via infomaniak_overview.
days_aheadNoFlag products expiring within this many days as warnings. Default 60.
max_domain_checksNoCap on the number of `/1/domain/{name}` lookups used to disambiguate stale `expired_at` flags on domain products. Each lookup is one API call. With the 60 req/min rate limit, leave this ≤ 50 unless you have time. Set to 0 to skip domain re-checks entirely (faster but may miss real expirations).

Output Schema

ParametersJSON Schema
NameRequiredDescription
account_idYes
scanned_productsYes
findingsYes
summary_markdownYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint. The description adds behavioral context by outlining what will be checked (expiring products, maintenance, locked products, ongoing operations), which is useful beyond the annotations. It doesn't contradict any annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that immediately states the tool's purpose and then lists the types of issues found. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema and robust annotations, so the description need not explain return values. It covers the core purpose and categories, though it could mention the scope (entire organization) more explicitly. Overall it is sufficient for agent understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and each parameter (account_id, days_ahead, max_domain_checks) has a detailed description including defaults, constraints, and rate-limit context. The tool description itself doesn't add parameter semantics, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Scan') with a clear resource ('Infomaniak organization') and enumerates concrete categories of issues (expiring, maintenance, locked, ongoing operations). This distinguishes it from other audit tools like infomaniak_audit_dns_zones or infomaniak_audit_account_access.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies when to use this tool: for a broad health/audit scan of an organization. It doesn't explicitly state exclusions or alternatives, but the context is clear for a general audit tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
account_idNoOrganization/account ID. Optional: defaults to the first account the token has access to.
max_domainsNoCap the number of domains scanned. Each domain requires 2 sequential API calls (records + dnssec). Default 20 keeps execution under ~30s.
filter_containsNoFilter domains by substring (case-insensitive). Use this for targeted audits (e.g. 'broz.be') to avoid scanning the entire fleet.

Output Schema

ParametersJSON Schema
NameRequiredDescription
account_idYes
scannedYes
zonesYes
summary_markdownYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already disclose read-only and idempotent behavior. The description adds valuable behavioral context: it scans all domains by default, each domain requires 2 sequential API calls, and the default max_domains keeps execution under ~30s. This goes beyond the annotations to set performance expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core purpose, and includes a practical use case. Every word earns its place; no fluff or redundant details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (bulk audit, optional params, output schema present), the description covers purpose, use case, performance implications, and scoping options. It omits explicit alternative tool comparisons, but overall it is complete enough for an agent to select and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All three parameters are fully documented in the input schema, including descriptions, defaults, and constraints. The tool description adds little beyond the schema—only reinforcing the bulk-read scope. Since schema coverage is 100%, the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb ('Bulk-read') and resource ('every domain owned by an account'), with the exact output (number of DNS records and DNSSEC status). It distinguishes itself from sibling tools like list_domains and dns_list_records by focusing on bulk auditing across all zones rather than per-zone operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool ('spot-checking large fleets') and how to scope it (via filter_contains for targeted audits). It does not explicitly name alternative tools or list exclusions, but the guidance is sufficient for a read-only audit tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
hosting_idYesWeb hosting ID where the database will live. Discover via infomaniak_find_site(domain) or infomaniak_list_hostings.
database_nameYesDatabase name. Alphanumeric and underscores only (no dots, dashes or hyphens), 1-64 chars. Infomaniak automatically prepends the hosting prefix (e.g. 'v33dqc_') — do NOT include it yourself.
descriptionNoOptional description shown in the manager UI (≤ 255 chars).
confirmation_tokenNoToken from the prior plan response. Required on the apply phase only.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds valuable behavioral context beyond annotations: two-phase commit (requires a plan+apply flow) and the fact that going through the private API is required because the public API silently fails. This goes well beyond the readOnly/destructive hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core purpose, and every sentence provides unique, non-redundant information. The warning about the public API is concise and highly useful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists, return values need not be described. The description covers the critical non-obvious aspects (two-phase commit, private API) and is sufficiently complete for an agent to invoke the tool correctly. The schema covers parameter details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema documents all parameters thoroughly (100% coverage), including the confirmation_token's role in the apply phase and the naming rules. The description mentions two-phase commit but does not add new parameter-level details beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Create a new MariaDB database on a web hosting' with a specific verb and resource. It also mentions the two-phase commit behavior and the private API, distinguishing it from sibling tools like list_databases or delete_database.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool by stating it creates a database and warns that the public API silently no-ops, making this private-API tool necessary. It does not explicitly state alternatives or when not to use it, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
hosting_idYesWeb hosting ID where the user will be created. Discover via infomaniak_list_hostings.
loginYesUser login WITHOUT the hosting prefix (e.g. 'audit', not 'q387gx_audit'). Alphanumeric + underscore/dash only, 1-32 chars. Infomaniak prepends the hosting prefix automatically.
passwordYesUser password. Minimum 8 chars with at least one lowercase, one uppercase, one digit. Special character recommended but not required.
connection_typeNoAccess level. `ssh` = full shell + FTP/SFTP, `ftp` = SFTP-only (no interactive shell). Default `ftp` (safer).ftp
home_directoryNoSub-path inside the hosting the user is jailed into. Default '/' (root of the hosting). Use to scope an FTP-only user to a single site, e.g. '/sites/example.com'./
confirmation_tokenNoToken from the prior plan response. Required on the apply phase only.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds critical behavioral context beyond the annotations, including the two-phase commit process, the distinction between SFTP-only and full shell access, and the password policy. These details are not exposed by the readOnlyHint/destructiveHint annotations and are valuable for an agent to understand the tool's non-obvious behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with three sentences that front-load the core purpose and immediately provide essential distinctions (connection types, two-phase commit). Every sentence contributes functional information, and there is no fluff or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description tells the agent the essential facts: what it does, the two-phase commit, and connection type meanings. The schema covers parameter details and the output schema exists, so return values are not required. It doesn't elaborate on permissions or failure modes, but for a create operation with rich schema support, this is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers all 6 parameters with detailed descriptions (login prefix rule, password regex, hosting_id discovery, home_directory default, connection_type enum, confirmation_token purpose). The description text adds no significant parameter information beyond the schema, so it rests at the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Create a new FTP / SSH user on a web hosting', identifying the specific verb and resource. It distinguishes from sibling tools like infomaniak_list_hosting_users and infomaniak_delete_hosting_user by focusing on creation. The mention of two-phase commit further clarifies the tool's unique scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by specifying connection types and password policy, but it does not explicitly state when to use this tool vs alternatives like list_hosting_users or delete_hosting_user. No exclusions or alternative recommendations are provided, so the usage guidance is only implicit rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
mail_hosting_idYesMail hosting ID. Discover via infomaniak_list_mail_hostings.
mailbox_nameYesLocal part of the mailbox WITHOUT the @domain (e.g. 'info', NOT 'info@example.com'). Lowercase alphanumeric with dots, underscores or dashes; 1-64 chars.
passwordYesInitial mailbox password. Infomaniak policy: ≥ 8 chars, at least one lowercase, one uppercase, one digit and one special character. NEVER appears in the plan response — only in the apply call.
descriptionNoOptional free-text description (≤ 255 chars), shown in the manager UI.
confirmation_tokenNoToken from the prior plan response. Required on the apply phase only.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds useful context beyond annotations, such as the two-phase commit flow and that the password never appears in the plan output. However, it does not explain the non-obvious destructiveHint=true annotation, and the operation is described as 'create' without discussing potential destructive side effects, leaving a gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is exactly two sentences, front-loaded with the primary purpose, and includes the workflow and security note without any extraneous words. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has a complex two-phase commit behavior, and the description covers it sufficiently. An output schema exists to document return values, and the description explains the core workflow. It could be more complete by mentioning prerequisites like discovering the mail_hosting_id, but that is covered in the schema, so the overall context is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides descriptions for all 5 parameters (100% coverage), so the baseline is 3. The description adds value by clarifying the role of confirmation_token in the two-phase process and emphasizing that the password is only used in the apply call, which complements the schema's notes.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Create a new mailbox on a mail hosting' with a specific verb and resource. It distinguishes itself from sibling tools like infomaniak_create_mailbox_alias and infomaniak_delete_mailbox, and the two-phase commit detail adds additional precision.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly describes the two-phase commit process ('plan + token first, then apply with token'), which is a critical usage guideline. However, it does not explicitly mention when not to use this tool versus other mailbox-related tools, though the purpose is clear enough to infer proper usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
mail_hosting_idYes
mailbox_nameYes
aliasYes
confirmation_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate non-read-only and destructive behavior. The description adds the 'Two-phase commit' detail, which is a notable behavioral trait beyond the annotations. However, it does not explain what the two phases are or that a confirmation_token is required, leaving important process behavior undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with purpose, and every word earns its place. The phrase 'Two-phase commit' is terse but conveys a critical constraint without unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values are covered. However, the two-phase commit process is underspecified: the description does not tell the agent that a confirmation token is needed or how the phases work. For a tool with a non-simple workflow, this is a notable gap in completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It implicitly clarifies alias and mailbox (via 'Add a new alias to an existing mailbox'), and mail_hosting_id is implied as an identifier, but the confirmation_token parameter—critical for the two-phase commit—is completely omitted. This leaves a key parameter unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (Add), the object (a new alias), and the target (an existing mailbox). It also explains the functional effect ('The alias will receive emails delivered to the underlying mailbox'), which distinguishes it from sibling tools like manage_mailbox_aliases.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool: adding a new alias to an existing mailbox. However, it does not explicitly mention alternatives or exclusion criteria (e.g., when to use manage_mailbox_aliases instead), so it lacks full if-then guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
mail_hosting_idYesMail hosting ID. Discover via infomaniak_list_mail_hostings.
nameYesLocal part of the source address (e.g. 'support' to forward 'support@coden.lu'). Lowercase alphanumeric with dots, underscores or dashes; 1-64 chars. NOT the full email.
targetsYesDestination addresses, full emails. Every address must be valid. Multiple targets fan-out (each receives a copy).
confirmation_tokenNoToken from the prior plan response. Required on the apply phase only.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructive and non-idempotent behavior, so the bar is lower. The description adds the 'Two-phase commit' detail and the fan-out forwarding behavior, which are useful. However, it doesn't disclose potential side effects, prerequisites beyond the schema, or what happens during the apply phase. It adds some context but not rich behavioral transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loads the primary purpose, and includes only essential information. It is concise and well-structured with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The two-phase commit workflow is a significant behavioral complexity, but the description only mentions it in passing. It doesn't explain the phases, how to obtain the confirmation token, or the expected invocation sequence. While the schema documents the token, the description itself is incomplete for guiding an agent through a multi-step operation. The tool is also one of many redirection-related tools, and the description doesn't situate it within that context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and each parameter has a detailed description (e.g., name pattern, targets format, mail_hosting_id discovery, confirmation_token purpose). The tool description adds no parameter semantics beyond what the schema already provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Create a server-side mail redirection.' This is a specific verb+resource pairing. It also explains the forwarding behavior ('Emails received at name@<domain> will be forwarded to every address in targets'), which adds clarity and distinguishes it from sibling tools like list or delete redirections.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to use this tool versus alternatives. It mentions 'Two-phase commit' as a process hint, but doesn't explain when to use it (e.g., for creating redirections) or when another tool like infomaniak_manage_service_redirections would be more appropriate. There are no clear usage or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesLong URL to shorten. Must be a complete http:// or https:// URL (e.g. 'https://example.com/page'). A bare domain like 'example.com' is rejected.
confirmation_tokenNoToken from the prior plan response. Required on the apply phase only.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the two-phase commit behavior, which is crucial for correct invocation and goes beyond what annotations provide. With destructiveHint=true and readOnlyHint=false already set, the description adds the state-changing nature and the confirmation token requirement. It doesn't mention irreversibility or specific side effects, but the two-phase protocol is substantial added context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, each adding distinct value: purpose, process, and prerequisite. No fluff or repetition of schema fields. The description is front-loaded with the core purpose and remains highly readable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and full parameter documentation, the description covers purpose, process, and precondition adequately. The two-phase commit workflow is hinted but not fully detailed (e.g., how to obtain the confirmation_token), but the schema's token description and output schema likely fill this gap. Complete enough for tool selection and basic invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers both parameters with clear descriptions (100% coverage), so the baseline is 3. The description adds context for the 'confirmation_token' by mentioning 'two-phase commit', which clarifies why the token is needed. This goes slightly beyond the schema's note about 'apply phase' and provides workflow context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Create') and resource ('short URL') with a clear target ('long target'). It distinguishes itself from siblings like infomaniak_list_short_urls and infomaniak_short_urls_quota by indicating it creates rather than lists or checks quota. The 'Two-phase commit' adds process clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance to check quota with infomaniak_short_urls_quota when uncertain about headroom, which is a helpful prerequisite. It doesn't explicitly contrast with alternative create or list tools, but the create purpose is self-evident. Missing an explicit 'when not to use' or alternative comparison.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
hosting_idYes
fqdnYes
directoryNo
environmentNoapache_php
confirmation_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false and destructiveHint=true, and the description adds important behavioral context: the two-phase commit, the requirement for a confirmation token, and that creation only happens on the second call. This goes beyond the annotations and does not contradict them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences. The first clearly states the action, and the second explains the necessary two-phase flow, with no redundant wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description captures the essential two-phase workflow and is supported by an output schema and annotations. However, it omits prerequisites and alternative tool references, so it is slightly above minimum viability but not fully comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description only mentions confirmation_token, without explaining hosting_id, fqdn, directory, or environment. It fails to compensate for the lack of parameter documentation, providing almost no semantic value for most parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a new site on Infomaniak web hosting, with a specific two-phase commit. It does not explicitly differentiate from sibling tools like infomaniak_provision_site_full, so it lacks sibling distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance by explaining the two-phase commit: first call returns a plan with confirmation_token, second call with same params + token creates the site. However, it does not mention when to use this tool versus alternatives or any exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
hosting_idYesWeb hosting ID. Discover via infomaniak_find_site(domain) → hosting_id.
site_idYesSite ID on that hosting. Same source as hosting_id.
confirmation_tokenNoToken from the first (plan) phase. Re-pass to execute. Omit to receive the plan + token. Undo afterwards by calling infomaniak_request_certificate with type='free'.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructiveHint=true and readOnlyHint=false, but the description goes further by explaining the fallback to no HTTPS or default cert and the two-phase commit behavior. This adds context about what happens after deletion and the safety mechanism of a planning phase. It doesn't disclose every consequence (e.g., potential downtime) but provides useful transparency beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the primary action, and every word adds value. It explains the outcome, the two-phase commit, and the planning benefit without fluff. Structure is clear and focused.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the destructive nature and two-phase flow, the description captures the essential context: what happens, how to preview, and that a new cert can be requested later. An output schema is present, so return values are covered elsewhere. The description lacks explicit prerequisites (e.g., hosting_id/site_id), but those are in the schema. Overall, it is complete for an agent to understand the tool's role.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema covers all parameters (100% coverage) with descriptions for site_id, hosting_id, and confirmation_token. The description does not add parameter-specific details beyond the schema, but it does reinforce the two-phase flow involving confirmation_token. Since the schema already provides thorough explanations, a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Delete the SSL certificate of a site.' It uses a specific verb and resource, and the fallback behavior ('will fall back to no HTTPS or Infomaniak's default cert') distinguishes it from certificate provisioning tools like infomaniak_request_certificate. The name and description together leave no ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the two-phase commit process: 'The plan pulls the current certificate status so the caller can see what is about to be removed.' This tells the agent that a first call (without confirmation_token) generates a plan, and a second call executes. It also implies the alternative for re-adding a certificate ('until a new one is requested'), though it doesn't explicitly name infomaniak_request_certificate in the description. No exclusions are stated, but the context is sufficient for an agent to know when to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
hosting_idYesWeb hosting ID. Discover via infomaniak_find_site(domain) or infomaniak_list_hostings.
database_nameYesFull database name as returned by infomaniak_list_databases (includes the hosting prefix, e.g. 'v33dqc_WP1250842'). NOT the unprefixed name you'd pass to create_database.
confirmation_tokenNoToken from the first (plan) phase. The plan response includes disk usage and any linked application so you can review before confirming. Re-pass to execute.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes beyond the annotations by specifying the exact destructive impact ('database content (tables, rows) is wiped') and irreversibility ('cannot be recovered without an Infomaniak backup'). It also discloses the two-phase commit behavior, adding meaningful context to the destructiveHint and readOnlyHint annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact (two sentences) and front-loaded with the purpose, followed by the critical warning. Every word adds value: the action, the two-phase process, the access restriction, and the destructive consequence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (two-phase commit, destructive, three parameters), the description covers all necessary aspects: the process, the warning, and the access requirement. An output schema exists, so return values need not be explained. The description is complete for an agent to decide when and how to invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides 100% coverage with detailed descriptions for all three parameters, including guidance on discovering hosting_id and the correct format for database_name. The description adds little beyond the schema, just mentioning two-phase commit which is already reflected in the confirmation_token schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action with a specific verb ('Delete') and resource ('MariaDB database'). It distinguishes this tool from sibling delete tools like delete_site or delete_mailbox by specifying the exact resource type.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides useful context for usage: 'Two-phase commit' informs the agent that a two-step confirmation process is required, and 'manager-private API' indicates restricted access. However, it does not explicitly mention alternatives or when-not-to-use scenarios, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

infomaniak_delete_hosting_userA
DestructiveIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault
hosting_idYesWeb hosting ID. Discover via infomaniak_list_hostings.
loginYesFull user login as shown by infomaniak_list_hosting_users (includes the hosting prefix, e.g. 'q387gx_audit'). User's files are preserved on disk; only access is revoked.
confirmation_tokenNoToken from the first (plan) phase. Re-pass on the second call to actually revoke access. Omit on first call to receive the plan + token.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds significant behavioral context beyond the annotations: it discloses the two-phase commit nature and explicitly states 'Existing files are not deleted,' which is crucial for a destructive action. This goes beyond the basic readOnlyHint=false and destructiveHint=true annotations, giving the agent a clear picture of side effects and safety boundaries.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: three short sentences, each carrying essential information. The main action is front-loaded in the first sentence, followed by critical behavioral notes. No unnecessary words or repetition, making it highly efficient for an agent to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the rich schema (100% param coverage), output schema presence, and annotations covering destructive/idempotent/readOnly hints, the description fills remaining gaps: the two-phase commit workflow and file preservation. It provides enough context for an agent to select and correctly invoke the tool, including understanding the need for a token and the non-destructive nature regarding files.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description itself does not add parameter-level details; all parameter semantics are already in the schema (e.g., confirmation_token purpose, login format). The description's mention of two-phase commit relates to the confirmation_token but is already elaborated in the schema, so no additional value beyond the structured fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Revoke a hosting user (FTP / SSH access).' This is a specific verb and resource, and it distinguishes from siblings like infomaniak_create_hosting_user and infomaniak_list_hosting_users. It also adds the key nuance of two-phase commit and file preservation, clarifying the scope of the action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the usage context (revoking access) and even hints at the two-phase commit procedure. However, it does not explicitly name alternatives or when not to use this tool, such as pointing to infomaniak_create_hosting_user for creating users. The two-phase commit is mentioned in the description but fully detailed in the schema, which slightly reduces the guidance value.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

infomaniak_delete_mailboxA
DestructiveIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault
mail_hosting_idYesMail hosting ID. Discover via infomaniak_list_mail_hostings.
mailbox_nameYesLocal part of the mailbox WITHOUT the @domain (e.g. 'anthony' for anthony@coden.lu). NOT the full email address. Verify with infomaniak_list_mailboxes before deleting — this wipes stored mail.
confirmation_tokenNoToken from the first (plan) phase. The plan response shows the mailbox + a warning that stored mail will be wiped. Re-pass to execute.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (destructiveHint=true, readOnlyHint=false), the description discloses two-phase commit behavior and explicitly warns that all stored emails are deleted, adding valuable context not captured by annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short, high-impact sentences: purpose, two-phase commit, and warning. Every sentence earns its place with zero waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the destructive nature and two-phase commit, the schema compensates with detailed parameter descriptions (e.g., confirmation_token, verification steps) and an output schema exists. The description is brief but sufficient when combined with structured context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description itself contains no parameter details, but schema coverage is 100% with rich descriptions for each parameter, so the baseline of 3 applies. No added value from the description, but no gap either.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Delete a mailbox' with a specific verb and resource, and the warning about deleting all stored emails distinguishes it from related mailbox operations like purging spam or emptying trash.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool vs alternatives, nor any prerequisites. 'Two-phase commit' hints at a workflow but does not explain the plan/execute flow or recommend verifying with infomaniak_list_mailboxes beforehand (though the schema does provide this).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

infomaniak_delete_redirectionA
DestructiveIdempotent

Delete a mail redirection. Two-phase commit.

ParametersJSON Schema
NameRequiredDescriptionDefault
mail_hosting_idYesMail hosting ID. Discover via infomaniak_list_mail_hostings.
nameYesLocal part of the redirection source to remove (e.g. 'support' to delete 'support@coden.lu'). NOT the full email. List existing rules with infomaniak_list_redirections.
confirmation_tokenNoToken returned by the first (plan) phase of the two-phase commit. Re-pass it on the second call to actually delete. Omit on first call to receive the plan + token.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds the critical behavioral trait 'Two-phase commit' beyond what annotations provide. Annotations already indicate destructive and idempotent hints, so the bar is lower, but the two-phase process is essential context not present in annotations. This helps the agent understand the tool requires an extra confirmation step.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is exactly two sentences with no filler. It front-loads the purpose ('Delete a mail redirection') and immediately follows with the essential two-phase commit caveat. Every word earns its place; it is concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity and the rich schema (all parameters explained, output schema present), the description is adequate. It captures the core purpose and the unique two-phase behavior. The schema fills in the remaining details about token handling and discovery steps, making the definition complete enough for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description itself adds no parameter-level detail; it does not mention mail_hosting_id, name, or confirmation_token. The schema descriptions are comprehensive, so the definition remains clear, but the description provides no extra semantic value for parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Delete a mail redirection') with a specific verb and resource. It distinguishes itself from sibling tools like infomaniak_create_redirection or infomaniak_manage_service_redirections by naming the delete operation and adding the 'Two-phase commit' note, which uniquely identifies this tool's behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage (when you want to delete a mail redirection) but does not explicitly state when to use versus alternatives or exclude other tools. The schema provides some guidance via parameter descriptions (e.g., 'List existing rules with infomaniak_list_redirections'), but the description itself lacks direct usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
hosting_idYesWeb hosting ID. Discover via infomaniak_find_site(domain) or infomaniak_list_hostings.
site_idYesSite ID on that hosting. Same source as hosting_id (infomaniak_find_site or infomaniak_list_sites).
confirmation_tokenNoToken returned by the first (plan) phase. Re-pass on the second call to execute the delete. Omit on first call to receive the plan + token (full preview of what will be removed).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (destructiveHint=true), the description discloses that deletion also 'wipes the site directory on the FTP backend after a short grace period' and that the first call is a non-destructive preview. This is significant behavioral context not in annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with purpose, and efficiently adds essential procedure and warning without padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite being a destructive, two-phase operation, the description covers the action, the phase flow, and the consequence (directory wipe with grace period). Output schema exists, so return values need not be described. This is complete for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions for all three parameters are already detailed (e.g., confirmation_token explains phase usage). The tool description repeats the token flow but adds no new parameter-level semantics, so it relies on schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource: 'Delete a site from an Infomaniak web hosting.' It also clarifies the two-phase commit nature, distinguishing it from single-call tools like infomaniak_delete_site_alias or infomaniak_delete_database.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains the two-phase procedure: first call returns a plan with token, second call with same params + token performs the delete. This gives clear when-to-call context. It does not explicitly name alternative tools or exclusion criteria, so not a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
hosting_idYes
site_idYes
aliasYesThe FQDN to remove (e.g. `*.evo.broz.be` or `client1.example.com`). Cannot remove the main FQDN of the site (that's the `is_main: true` entry in the list).
confirmation_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag the tool as destructive, but the description adds valuable behavioral details: 'Two-phase commit' and the post-condition that the Apache vhost will no longer respond. It also states the main FQDN exclusion. This goes beyond the bare destructive flag.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences, front-loaded with the primary purpose. Every sentence adds distinct information: action, exclusion, commit behavior, consequence, and access level. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the main effect and constraint, and an output schema exists to describe returns. However, 'Two-phase commit' is mentioned but not explained, and there is no mention of the confirmation_token parameter or that list_site_aliases should be used first. This leaves gaps for a destructive operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 25% (only alias has a description). The description reiterates the alias constraint but does not clarify hosting_id, site_id, or confirmation_token. With low schema coverage, the description should compensate, but it does not explain the remaining parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action: 'Remove one alias FQDN from a web hosting site', which clearly identifies the verb and resource. It also distinguishes itself from siblings by noting the main FQDN cannot be removed, differentiating it from list/add alias tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: it is for removing an alias from a hosting site, explicitly excludes the main FQDN, and notes the operation is 'Manager-private'. It does not explicitly name sibling tools as alternatives, but the scope is sufficiently clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
zoneYesDNS zone (root domain) to add the record to, e.g. 'broz.be'. Must be a domain whose DNS is managed by Infomaniak (check via infomaniak_get_domain).
sourceYesSubdomain part (e.g. 'www', 'mail') or '.' for the zone apex. Do NOT include the zone itself.
typeYesRecord type as enum: A, AAAA, CNAME, MX, TXT, NS, SRV, CAA, PTR. Must be UPPERCASE.
targetYesRecord value. For MX and SRV, embed the priority inline as Infomaniak does, e.g. '5 mta-gw.infomaniak.ch'.
ttlNoTime-to-live in seconds. Min 60, max 86400 (24h). Default 3600 (1h).
confirmation_tokenNoToken from the prior plan response. Required on the apply phase only.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructiveHint=true and readOnlyHint=false; the description adds the critical two-phase commit behavior, explaining that the first call plans and the second with token actually creates. This is valuable beyond structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, first states purpose, second explains the phased behavior. Zero redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a non-idempotent, mutating tool with a two-phase protocol, the description captures the essential workflow. The zone prerequisite is mentioned in the description and reinforced in schema; output format is covered by output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters with rich descriptions. Description adds the cross-phase constraint that all params must be identical except the token, which clarifies how confirmation_token interacts with other parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses specific verb 'Create' with resource 'DNS record' and scope 'Infomaniak-managed zone'. The two-phase commit detail distinguishes this create tool from update/delete/list siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context: use to create a DNS record on a managed zone, and outlines the two-phase procedure. Does not name sibling alternatives explicitly, but the verb and resource make the intended use unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
zoneYesDNS zone (root domain) the record belongs to, e.g. 'broz.be'. Must be a domain whose DNS is managed by Infomaniak.
record_idYesNumeric id of the record to delete. Get it from infomaniak_dns_list_records → records[].id. NOT the record name or source.
confirmation_tokenNoToken from the first (plan) phase. The plan response includes a full preview of the record so you can verify before confirming. Re-pass to execute.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already convey destructive hint and non-read-only. The description adds significant behavioral detail: the two-phase commit process, including the plan preview and confirmation token. This context is not present in annotations and helps the agent understand the deletion is not immediate, requiring a second call. It does not cover token expiry or failure modes, but the core behavior is transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the primary purpose, followed by the two-phase explanation. Every word adds value—no fluff. The structure is clear and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema and annotations, the description covers the essential workflow: delete operation with two-phase commit, preview, and token. It doesn't explicitly mention prerequisites like zone ownership, but the schema's zone description includes that. It is sufficiently complete for a destructive tool with good annotations and schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and each parameter has a detailed description (zone, record_id, confirmation_token). The description adds minimal parameter info beyond referencing the token from the first phase, which the schema already explains. Baseline of 3 applies because the schema handles parameter semantics well.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: 'Delete a DNS record from an Infomaniak-managed zone.' It uses a specific verb and resource, and the two-phase commit explanation further distinguishes it from simple delete tools. It is easily differentiated from sibling tools like infomaniak_dns_create_record and infomaniak_dns_update_record.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool (to delete a DNS record) and provides the two-phase workflow, which is a key usage guideline. It does not explicitly mention alternatives or exclusions, but the purpose is clear. The schema reference to infomaniak_dns_list_records for obtaining record_id also guides usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
zoneYesZone (root domain), e.g. 'example.com'

Output Schema

ParametersJSON Schema
NameRequiredDescription
zoneYes
countYes
recordsYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, so the safety profile is covered. The description adds meaningful behavioral context by explaining the tool returns all records on the zone and that the input must be a root domain, not a subdomain. It does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. The key action and example are front-loaded, and each sentence earns its place by defining scope and clarifying the required input format.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter listing tool with a robust output schema and annotations covering safety and idempotency, the description adequately covers the essential context. It states what the tool lists, the required input type, and the constraint against subdomains, leaving no significant gap for an agent to misuse it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and already describes the zone parameter as 'Zone (root domain), e.g. example.com'. The description reinforces the root-domain requirement but does not add substantive new parameter semantics beyond what the schema provides, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists every DNS record on an Infomaniak-managed zone, using a specific verb ('List') and resource ('DNS record on a zone'). It distinguishes the tool from DNS mutation siblings like infomaniak_dns_create_record and infomaniak_dns_update_record by focusing on enumeration, and gives a concrete example.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context by instructing the agent to use the root domain and explicitly warns against using a subdomain. It does not name alternative tools for exclusions, but the second sentence provides actionable guidance on how to invoke the tool correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
zoneYes
record_idYes
sourceNo
typeNo
targetNo
ttlNo
confirmation_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses a crucial behavioral trait: the two-phase commit process. It explains that the first call previews changes and returns a token, while the second call applies them. This goes well beyond the annotations (which only indicate readOnly=false, destructive=true, idempotent=true) and adds critical context for the agent to understand the tool's state-changing workflow.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is exceptionally concise: two sentences, front-loaded with the tool's purpose, followed by the two-phase mechanism. Every word earns its place with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with two-phase commit, 7 parameters, and an output schema, the description captures the essential workflow and the meaning of the confirmation_token. The existence of an output schema covers return values, and the required parameters (zone, record_id) are self-evident from the schema. The explanation is sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does explain the confirmation_token's role by mentioning 'same params + token' in the two-phase commit, which is valuable. However, other parameters (ttl, type, source, target) are not elaborated; the description only generically says 'one or more fields' rather than listing them. This is adequate but not comprehensive.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states precisely: 'Update one or more fields of a DNS record.' This clearly identifies the tool's purpose with a specific verb and resource, and distinguishes it from sibling tools like infomaniak_dns_create_record and infomaniak_dns_delete_record. The mention of 'one or more fields' adds scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description conveys clear usage context: it is for updating existing DNS records, and the two-phase commit explains the process. However, it does not explicitly name alternatives or state when not to use it, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

infomaniak_explainA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault
toolYesName of the tool to explain (e.g. 'infomaniak_overview').

Output Schema

ParametersJSON Schema
NameRequiredDescription
toolYes
descriptionYes
annotationsNo
input_schemaYes
output_schemaNo

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, indicating safe repeated reads. The description does not add behavioral context beyond stating it returns the definition. No side effects or auth requirements are mentioned, which is acceptable given the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that succinctly conveys the tool's purpose and the content of its output. No superfluous words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and clear annotations, the description is largely complete. It captures the essential function and could be improved by noting the format of the returned definition, but it is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers 100% of the single parameter 'tool' with a description. The tool description does not add additional semantic meaning beyond what the schema already provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Returns the full definition of a specific tool' and lists the components (description, annotations, parameters, output shape). It distinguishes itself from siblings, as it is a meta-tool for obtaining information about other tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is implied by the description (useful for learning about a tool), but there is no explicit guidance on when to use it versus alternatives or when not to use it. The sibling tools are all action-oriented, so the purpose is clear, but no exclusions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesPublic domain to locate. Accepts root domains (broz.be) or sub-domains (crm.coden.lu). Punycode (xn--...) is fine.
account_idNoOptional account_id to restrict the lookup. Omit to scan every account the token has access to.

Output Schema

ParametersJSON Schema
NameRequiredDescription
foundYes
domainYes
account_idNo
hosting_idNo
hosting_labelNo
site_idNo
siteNo
scanned_hostingsYes
hintNo

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, which covers the safety profile. The description adds valuable behavioral context beyond that: it returns a specific ID set and the full site object, and it 'short-circuits on the first match,' explaining the performance behavior. It does not disclose edge cases like no-match behavior, but it is transparent enough given the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences with no wasted words. It front-loads the core purpose and return value, then provides usage guidance and performance rationale. Every sentence contributes useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that an output schema exists and the input schema is fully described, the description covers the remaining context: when to use the tool, what it returns, and how it compares to alternatives. It is complete for an agent to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds the high-level purpose and return fields, but the parameter semantics (domain type, optional account_id restriction) are already documented in the schema. No additional meaning is provided that is not in the input schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Locate a domain (e.g. broz.be) in the Infomaniak account tree.' It clearly states what it returns and explicitly distinguishes itself from sibling tools by positioning it as a prerequisite for tools requiring hosting_id and site_id, and by contrasting it with the more expensive list_hostings + list_sites approach.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit usage guidance: 'Use this BEFORE any tool that requires hosting_id + site_id ... when you only know the domain name.' It also names the alternative (calling list_hostings + list_sites) and explains the efficiency advantage, making the right invocation context clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
account_idYesAccount/organization id. Discover via infomaniak_list_organizations.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
nameYes
legal_entity_typeNo
websiteNo
phoneNo
vat_numberNo
localeNo
timezoneNo
logoNo
logo_squareNo
support_levelNo
has_2fa_requiredNo
betaNo
typeNo"owner" | "admin" | "billing" | "user" — your role.
billingNo
mailingNo
workspace_onlyNo
no_accessNo
is_blockedNo
is_customerNo
is_ssoNo
nb_usersNo
count_ownersNo
has_customer_paiement_methodNo
addressesNo
tagsNo
created_atNo

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive behavior, so the description needs less. It adds valuable context with the 'Manager-private' access restriction and clarifies the support tier value (premium=2). Enumerating the returned fields also enhances transparency beyond what annotations offer.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, information-dense sentence that front-loads the purpose with 'Full organization detail.' Every listed field is relevant, and there is no redundant wording or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only getter with one parameter, existing output schema, and rich annotations, the description sufficiently covers the tool's function and data scope. Minor gaps like explicit usage alternatives and return-format details are acceptable because the output schema handles format and the sibling list implies scope.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides a complete description for account_id, including how to discover it (via infomaniak_list_organizations), achieving 100% schema description coverage. The tool description adds no parameter-specific information, but that is unnecessary given the schema's thoroughness.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves 'Full organization detail' and enumerates specific data fields (legal entity, billing addresses, VAT, locale, timezone, etc.). It unambiguously identifies the resource as the account/organization and distinguishes itself from sibling tools targeting other resources (domains, drives, VPS).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this is the comprehensive org-detail tool via 'Full organization detail,' but does not explicitly state when to use it over alternatives like infomaniak_list_organizations or infomaniak_get_account_resources. No exclusions or alternative recommendations are provided, making usage guidance only implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
hosting_idYes
site_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
site_idYes
statusYes
typeNo
sub_typeNo
issuerNo
organizationNo
main_fqdnNo
main_fqdn_idnNo
emitted_atNo
expired_atNo
fingerprint_sha256No
is_validNo
is_expiredNo
is_selfsignedNo
ignored_identifiersNo
error_identifiersNo
error_on_certificateNo
last_attempt_atNo

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint, idempotentHint, and openWorldHint, reducing the burden. The description adds value by detailing the specific return fields (provisioning state, type, validity flags, timestamps, etc.), providing behavioral context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the main purpose and lists features. It is efficient with no wasted words, though the list of fields makes it slightly long.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema, the description need not explain return values, but it does so helpfully. However, it omits how to obtain the required IDs (e.g., from list hostings/sites) and does not address error cases like missing certificates. Adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It only implies that hosting_id and site_id identify a site on a web hosting, but does not define them clearly or indicate how to obtain them. This is insufficient for a tool with only two parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns the full SSL certificate detail for one site on a web hosting, and lists many specific fields. It distinguishes well from sibling tools like infomaniak_request_certificate and infomaniak_delete_certificate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving certificate details but does not explicitly state when to use this tool versus alternatives like infomaniak_list_sites or infomaniak_get_domain. No prerequisites or exclusions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

infomaniak_get_databaseA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault
hosting_idYes
database_nameYesDatabase name as listed by infomaniak_list_databases (e.g. 'myprefix_WP123456')

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameYes
descriptionNo
applicationNo
disk_usedNo
permissionsNo
backupsNo
operation_in_progressNo

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, so the safety profile is covered. The description adds useful context by listing what 'full detail' includes (disk usage, application, permissions, backups), giving the agent a concrete sense of the returned information. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with a parenthetical that adds value without clutter. Every word contributes to purpose and expected return content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only get operation with a clear output schema and strong annotations, the description is mostly sufficient. It could be slightly richer by referencing sibling tools or clarifying prerequisites, but the available schema and annotations fill most gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 50%, with hosting_id lacking any description and database_name getting a helpful description. The tool description does not add meaning for either parameter beyond calling the target 'a specific database', so it fails to compensate for the missing hosting_id semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses a specific verb ('Get') and a clear resource ('full detail of a specific database'), adding concrete detail categories in parentheses. It clearly distinguishes itself from sibling tools like infomaniak_list_databases and infomaniak_get_database_user.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for one specific database rather than a list, but it does not explicitly state when to use it versus alternatives such as infomaniak_list_databases. The schema's reference to infomaniak_list_databases provides some context, but the description itself offers no direct exclusions or alternative guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

infomaniak_get_database_userA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault
hosting_idYes
user_nameYesFull user name including the hosting prefix

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameYes
applicationsNo
permissionsNo
is_temporaryNo
operation_in_progressNo
is_unlockedNo
protectedNo
protected_informationNo
linkNo

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint, making the safe read nature clear. The description adds valuable context about what the detail includes (applications, permissions, link to phpMyAdmin), going beyond the annotations. It does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that is concise, front-loaded with the verb 'Fetch', and contains no filler. Every word adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only get tool, the description provides sufficient context: what the tool returns and the resource type. Output schema covers return structure, and annotations cover safety. The only minor gap is the lack of parameter details, but that is a separate dimension and not critical for overall completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 50% of parameters (user_name has a description, hosting_id does not). The description does not compensate for the undocumented hosting_id; it only mentions 'single MariaDB-level user' which implicitly relates to user_name but not to hosting_id. No additional parameter meaning is provided beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Fetch') and the resource ('detail of a single MariaDB-level user'), and specifies the type of details returned ('applications, permissions, link to phpMyAdmin'). It distinguishes from siblings by emphasizing 'single' user as opposed to listing tools like infomaniak_list_database_users.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool: when you need details of a single MariaDB-level user. It does not explicitly mention alternatives or exclusions, but the 'single' scope provides clear context relative to list tools. No misleading guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

infomaniak_get_domainA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesThe domain name, e.g. 'example.com'

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
customer_nameYes
is_dns_managed_by_infomaniakNo
is_externalNo
has_dnssecNo
is_dnssec_pendingNo
has_errorNo
has_trustee_contactNo
has_whois_antispamNo
is_part_of_ksuiteNo
is_premiumNo
is_idnNo
puny_codeNo

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, covering the safety profile. The description adds some context by specifying the categories of information returned, but it does not go beyond that to disclose potential error behavior, prerequisites, or other non-obvious traits. This is mild added value over the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-formed sentence that front-loads the action and resource, followed by a concise parenthetical list of included details. Every word is informative and there is no redundancy or unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-parameter read-only tool, the description provides sufficient context about what data is returned (DNS management status, DNSSEC, IDN, errors). The output schema exists, so return values need not be described. The only notable gap is the lack of relationship clarification with the sibling infomaniak_get_domain_full, which is not critical for basic invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has one parameter with a clear description ('The domain name, e.g. example.com'), so schema coverage is 100%. The tool description does not add any additional parameter semantics beyond what the schema already provides, which justifies the baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get') and resource ('domain'), and lists the information categories covered (DNS management status, DNSSEC, IDN, errors). This clearly indicates what the tool does, but it does not explicitly distinguish it from the sibling tool infomaniak_get_domain_full, so it misses the full differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving detailed domain information but provides no explicit guidance on when to use this tool versus alternatives like infomaniak_get_domain_full or infomaniak_get_domain_resources. No exclusions or alternative tool mentions are present, making the usage context only implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesEither the numeric domain id (e.g. '1938345') OR the FQDN (e.g. 'agensea.net'). Both work. Discover via infomaniak_list_domains.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
customer_nameYes
puny_codeNo
has_dnssecNo
has_errorNo
has_trustee_contactNo
has_whois_antispamNo
infoNo
is_city_domainNo
is_dns_managed_by_infomaniakNo
is_dnssec_pendingNo
is_externalNo
is_idnNo
is_part_of_ksuiteNo
is_premiumNo
is_service_mail_domain_aliasNo
is_service_mail_on_other_accountNo
is_synonymNo
auth_codeNo
restorableNo
transfer_statusNo
trade_statusNo
terminationNo
domain_statusNo
glue_recordsNo
tldNo
registryNo
ownerNo
serviceNo
dnsNo
associated_productsNo
subdomain_associated_productsNo
has_mailNo
has_infomaniak_dnsNo
use_custom_urlNo
diagnostic_dnsNo
dns_logs_api_urlNo
authcode_quotaNo
extra_fieldsNo
optionsNo
rightsNo
errorNo
synonymNo
synonymsNo
usersNo
statusNo
productNo

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only/idempotent safety, so the description adds value by listing the specific data categories returned and the manager-level access requirement. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is a single efficient sentence that front-loads the purpose and uses a concise list of included data. Every item is specific and non-redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a rich output schema present, the description covers all necessary behavioral context: input formats, included data, and access requirements. It is fully sufficient for selecting and invoking the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'domain' is fully described in the schema (100% coverage); the description only briefly reiterates ID/FQDN acceptance without adding format or discovery details beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it returns 'Full domain detail' and enumerates specific fields (auth_code, transfer_status, DNS health, etc.), distinguishing it from simpler domain tools like infomaniak_get_domain. The verb+resource+scope is specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the accepted input forms (domain_id or FQDN) and notes 'Manager-private' access, giving clear context for invocation. It does not explicitly name alternative tools or exclusions, but the scope is evident from the detailed field list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
drive_idYeskDrive id. Discover via infomaniak_list_drives.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
nameYes
sizeYes
used_sizeYes
created_atYes
updated_atNo
in_maintenanceNo
maintenance_atNo

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds the manager-private API context and the specific data fields returned, which goes beyond the annotation-provided safety profile. No contradictions exist, though more detail on response behavior would have improved it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the tool's purpose and full detail fields, followed by a distinguishing note about the sibling tool. Every sentence earns its place with no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a simple read-only tool with one parameter and an output schema, the description covers purpose, return content, use case, and access-level differentiation. It is sufficiently complete for an agent to select and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter drive_id is fully described in the input schema with a hint to discover via infomaniak_list_drives. The description adds no parameter-specific semantics, but since schema coverage is 100%, a baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves full kDrive detail, listing specific fields (name, total size, used size, timestamps, maintenance flag) and explicitly distinguishes from infomaniak_list_drives by API access level. It identifies a specific verb and resource with concrete scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates usefulness for storage usage monitoring and explicitly contrasts with infomaniak_list_drives (public Bearer API vs manager-private), offering clear guidance on when to use this tool. It doesn't exhaustively cover when not to use it, so it falls slightly short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
mail_hosting_idYes
mailbox_nameYesLocal part of the mailbox (e.g. 'anthony' for anthony@coden.lu).

Output Schema

ParametersJSON Schema
NameRequiredDescription
mailbox_nameYes
mailboxYes
mailbox_idnNo
noteNo
typeNo
is_limitedNo
is_free_mailNo
is_used_for_accountNo
count_signaturesNo
count_invitationsNo
count_devicesNo
has_auto_responderNo
auto_responderNo
has_redirectionNo
redirectionNo
aliasesNo
full_aliasesNo
created_atNo
password_last_changed_atNo
sizeNoMailbox size on disk in bytes.
size_checked_atNo
imap_last_login_atNo
pop3_last_login_atNo
usersNo
teamsNo
has_move_spamNo
authorized_sendersNo
blocked_sendersNo
has_dkim_signatureNo
smtpban_bounceNo
smtpban_authNo
smtpban_urlNo
has_mail_filteringNo
mail_filtering_folder_commercialsNo
mail_filtering_folder_social_networksNo
has_legacy_deviceNo
has_multi_passwordNo
external_mail_flag_enabledNo
count_usersNo

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds value by detailing the specific data categories returned and the 'Manager-private' access level, but it does not disclose other behavioral aspects like rate limits or authentication requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, information-dense sentence that front-loads the core purpose and then lists the exact scope of returned data. Every listed item is informative and there is no fluff, though the sentence is long and could be slightly more structured with separators.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and comprehensive annotations, the description adequately covers the tool's purpose, usage context, and data scope. The only notable gap is the lack of parameter clarification, but this is partially offset by the schema and the tool's straightforward nature.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 50%, with only mailbox_name having a description. The tool description adds no information about either parameter, leaving mail_hosting_id entirely unexplained. The agent must rely on external context or other tools to understand that parameter, so the description does not compensate for the schema gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description begins with 'Full mailbox detail' followed by a comprehensive enumeration of specific attributes (auto-responder, aliases, redirections, security flags, filters, etc.), making it unmistakably clear that this tool retrieves an exhaustive mailbox snapshot. The scope distinguishes it from narrower siblings like get_mailbox_info or get_mailbox_security, even though those alternatives are not explicitly named.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states 'Useful for mailbox audits and onboarding flows', providing clear context for when to employ this tool. It also adds a 'Manager-private' access restriction. However, it does not mention alternative tools or when not to use it, so it lacks explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
mail_hosting_idYesMail hosting ID. Discover via infomaniak_list_mail_hostings.
mailbox_nameYesLocal part of the mailbox (the part before @, e.g. 'anthony' for anthony@coden.lu). NOT the full email address.
fieldsNoSections to fetch. Each adds one API call. Omit to fetch all three.

Output Schema

ParametersJSON Schema
NameRequiredDescription
mail_hosting_idYes
mailbox_nameYes
fieldsYes
aliasesNo
signaturesNo
backupsNo
errorsNo

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only and idempotent, so the bar is lower. The description adds that it hits only the corresponding endpoints in parallel, revealing efficiency and conditional behavior. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with purpose, each sentence has a distinct role: purpose, field selection, replacement statement. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With output schema and rich annotations, the description is sufficient: it names the three sections, explains field behavior, and provides migration context from old tools. No critical missing info.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are already fully documented. The description only restates the 'subset' concept and parallel behavior, adding minimal semantic value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States 'Read mailbox metadata in one call' with a specific verb and resource. Explicitly distinguishes from siblings by naming the replaced trio and the three metadata sections (aliases, signatures, backups).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance to use this instead of the v0.9 trio, and explains how to select subsets via the fields argument. Doesn't discuss alternatives like get_mailbox_full, but the replacement context gives a clear when-not.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
mail_hosting_idYesMail hosting id. Discover via infomaniak_list_mail_hostings.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
account_idYes
service_idYes
service_nameYes
customer_nameYes
internal_nameNo
created_atYes
expired_atNo
has_maintenanceNo
is_lockedNo
has_operation_in_progressNo
tagsNo
unique_idNo
descriptionNo
is_freeNo
is_zero_priceNo
is_trialNo
rightsNo
parent_idNo
parent_service_idNo
parent_service_nameNo
totalNo
quotaNo
usedNo
redirections_quotaNo
redirections_target_quotaNo
redirections_usedNo
adminNo
fqdnNo
main_fqdnNo
main_fqdn_idnNo
main_fqdn_sourceNo
diagnostic_dnsNo
dns_errorNo
has_multi_passwordNo
has_new_creation_flowNo
has_team_accessNo
signature_template_forced_stateNo
mailing_lists_configurationNo
batch_actionNo
statusNo
bill_referenceNo
bill_periodicityNo

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, and non-destructive, so the safety profile is covered. The description adds meaningful context about returned data (MX/SPF/DKIM/DMARC health check, quotas) and access restrictions, which goes beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the most important information, and every word adds value. The structure is efficient and scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the existence of an output schema and read-only annotations, the description adequately explains what the tool does, what it contains, and when to use it. No significant gaps are apparent for a simple one-parameter getter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage; the parameter description explains what mail_hosting_id is and how to discover it. The tool description does not add parameter-specific details beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns 'Full mail hosting detail' and enumerates specific content (diagnostic_dns, quotas, admin user, etc.), distinguishing it from list_mail_hostings and other mailbox-specific tools. The verb 'get' is implied by the name, and the resource scope is explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear use case ('Use this for mail-config sanity checks') and notes access level ('Manager-private'). It does not explicitly mention alternatives or when not to use, but the context is sufficiently clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
display_nameYes
first_nameNo
last_nameNo
emailYes
is_ssoNo
avatarNo
loginNoInternal Infomaniak login (e.g. PR00793).
preferencesNo
phonesNo
emailsNo

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds behavioral context beyond those: it reveals that the tool acts on the currently authenticated user/account, requires the SASESSION cookie, and is manager-private, plus what current_account_id means. This enriches transparency without contradicting annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences front-load the core purpose and then pack useful details (returned fields, usage guidance, auth requirement) into tight phrasing. No filler or redundancy; every clause adds information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description doesn't need to enumerate return types. It covers the purpose, usage context, and auth prerequisite, making it complete for a zero-parameter identity tool with strong annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters and 100% schema coverage, so the baseline is 4. The description has no parameter semantics to add because there are none; it instead describes the rich output surface, which is appropriate for a no-arg profile tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource: 'Get the identity of the currently-authenticated Infomaniak user.' It enumerates returned fields (name, email, language, country, timezone, current_account_id, security posture) and explicitly frames its role as confirming which user/account the MCP acts on behalf of, distinguishing it from sibling tools like get_my_security or list_organizations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives an explicit usage directive: 'Use this first to confirm which user + account the MCP is acting on behalf of.' It also states a prerequisite (requires SASESSION cookie, manager-private). It does not discuss when not to use or name alternatives, so it stops short of full exclusion guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
scoreYes
score_maxYes
twofa_enabledYes
twofa_methodNo
has_recovery_emailYes
has_valid_phoneYes
yubikeyYes
authenticatorYes
remaining_rescue_codesNo
last_login_at_isoNo
password_last_changed_isoNo
trusted_devices_countYes
trusted_devicesYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds valuable context beyond annotations by specifying the exact fields covered and noting it is 'Manager-private,' which conveys an access constraint. This is appropriate given the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and uses a compact list to convey the detailed output. Every sentence earns its place: the first explains what it returns, the second gives usage scenarios and access scope. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only tool with an output schema, the description provides sufficient context. It clarifies the scope (current user), the content (comprehensive security fields), and appropriate usage. Nothing critical is missing for an agent to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so schema coverage is 100% by definition. The baseline for no parameters is 4, and the description does not need to explain parameters. It adds no parameter-specific details, which is fine.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly and specifically states what the tool does: it provides a security posture report for the current user, listing concrete data points (2FA, recovery email, trusted devices, etc.). This distinguishes it from sibling tools like get_my_profile or audit_account by scoping to security-specific current-user data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly suggests usage as 'a periodic security review or pre-action sanity check,' giving clear context. However, it does not name alternative tools or describe when not to use it, so it falls short of a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
hosting_idYesNode.js hosting id.
vhost_route_idYesThe vhost_route_id of the app — get it from `infomaniak_list_nodejs_apps`. Also called `feature_id` in some responses.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
unique_idNo
service_idNo
customer_nameNo
tagsNo
feature_idYes
has_maintenanceNo
main_fqdnYes
is_main_previewNo
preview_urlNo
directoryYes
is_protectedNo
ssl_statusNo
ipsNo
storageNo
environmentNo
stateYes
created_atNo

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds value by disclosing the authentication requirement (SASESSION + CSRF cookies) and the 'Manager-private' restriction, which are behavioral constraints beyond the schema. It also enumerates the returned configuration fields, providing transparency about what will be fetched. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two clear sentences. The first sentence fronts the purpose and enumerates the key data fields; the second provides access requirements. Zero filler, every word earns its place. The list of fields is dense but structured as a comma-separated enumeration that sets expectations for the output schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that an output schema is present, the description needn't explain return values, and it doesn't. It covers the tool's purpose, the resource type, key configuration fields, and access requirements. The access/auth caveat is important for an agent to invoke it correctly. An explicit pointer to list_nodejs_apps for discovery is present via the parameter description. It could mention relationship to nodejs_app_status or nodejs_app_aliases, but those are less relevant to a 'get full configuration' operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are already documented well. The description adds crucial cross-referencing for vhost_route_id: 'Also called feature_id in some responses' and 'get it from infomaniak_list_nodejs_apps', which helps resolve the known ID naming ambiguity. hosting_id is straightforward but the cross-resource guidance is valuable. This goes beyond the baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get full configuration') and identifies the exact resource ('Node.js application') with a list of concrete details (Node version, listen port, SSL status, IPs, etc.). It also distinguishes itself from sibling tools like infomaniak_list_nodejs_apps (list vs. get) and infomaniak_nodejs_app_status by targeting full configuration rather than status or aliases.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly notes 'Manager-private — requires SASESSION + CSRF cookies,' giving clear access context. The sibling tool name infomaniak_list_nodejs_apps is referenced in the parameter description ('get it from infomaniak_list_nodejs_apps'), providing a retrieval path. However, it doesn't explicitly state when NOT to use this tool or contrast it with alternatives like status/logs/aliases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
vps_idYesVPS id. Discover via infomaniak_list_vps.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
account_idYes
service_idNo
service_nameNo
customer_nameYes
internal_nameNo
locationNo
managedNo
liteNo
cloudNo
cloud_versionNo
cpuNo
ramNo
perfNo
ip_v4No
ip_v6No
bandwidthNo
traficNo
has_default_blocked_rdpNo
packNo
is_renewableNo
mysqlNo
mysql_versionNo
database_typeNo
database_upgradeNo
php_versionsNo
can_migrateNo
os_versionNo
can_migrate_dbNo
total_websiteNo
used_websiteNo
total_dedicated_ipNo
used_dedicated_ipNo
total_hosting_webNo
used_hosting_webNo
total_disk_spaceNo
total_disk_space_assignedNo
total_disk_space_usedNo
total_disk_database_usedNo
firewallNo
premium_supportNo
premium_support_mailNo
premium_support_emergencyNo
premium_support_urlNo
expired_atNo
bill_periodicityNo
bill_referenceNo
migration_startNo
migration_origin_idNo
migration_endNo

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds 'Manager-private' (a visibility/authorization caveat) and a detailed list of returned fields, but it does not discuss rate limits, errors, or pagination behavior. Given the existing annotations, this is solid supplementary context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose, then gives a detailed but efficient enumeration of fields, followed by concise usage guidance. Every item in the list carries information, though the long comma-separated list makes it slightly dense; still, there is no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that an output schema exists, the description does not need to describe return values. It fully explains the tool's scope, the information provided, the prerequisite list operation, and an access restriction. For a one-parameter read-only detail tool, this is contextually complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents `vps_id` with 100% coverage, including the instruction to discover it via `infomaniak_list_vps`. The tool description reinforces the sequencing but does not add new parameter semantics beyond what the schema provides, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Full VPS / Cloud Server detail' and enumerates the specific data returned, making the verb+resource+scope clear. It also distinguishes itself from the sibling `infomaniak_list_vps` by framing itself as the drill-down companion tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states 'Use after `infomaniak_list_vps` to drill into one server,' giving a clear when-to-use instruction and relationship to a sibling. The 'Manager-private' note adds an access-role restriction, which further clarifies appropriate usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
intentYesFree-form description of what you want to do, in any language.
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
intentYes
suggestionsYes
next_step_markdownYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint, idempotentHint), the description reveals that the tool uses 'lightweight keyword matching', which implies limited accuracy and simple logic. This adds behavioral context, though it could be more detailed about limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core action and resource. No redundant words, each sentence serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple parameters, the presence of an output schema (not shown), and the straightforward nature of a tool recommender, the description is complete enough. It explains both what the tool does and how (keyword matching).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 2 parameters with 50% description coverage (intent has description, limit does not). The description adds some context ('keyword matching' implying how intent is used) but does not elaborate on limit's purpose or edge cases. Baseline 3 is appropriate given the schema already covers the required parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'suggest', the resource 'which Infomaniak tools', and the method 'lightweight keyword matching'. It distinguishes itself from sibling tools that are specific actions (create, delete, list), making its purpose distinct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when the agent needs to map a natural language intent to a tool, but it does not explicitly state when not to use it or name alternatives. However, the context of sibling tools is clear, and the description provides adequate guidance for the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
entriesYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, making the safety profile clear. The description adds beyond annotations by revealing the content semantics (destructive actions) and the inline undoability reference, which is useful for decision-making. It doesn't detail session boundaries or additional behaviors, but the added value is meaningful.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, both dense with information. It front-loads the action and resource, then adds the reversal context. No wasted words; every phrase earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with an output schema and good annotations, the description covers the essentials. It could mention the limit parameter and clarify 'current session,' but these are minor gaps given the tool's simplicity. The undoability hook provides extra context not present in the structured fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 1 parameter (limit) and 0% schema description coverage, the description must compensate. It does not mention the limit parameter at all. Although the schema provides type, min, max, and default, the description should have explained how limit controls the list size or that it's optional. This is a clear gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: listing destructive actions from the current session, most recent first. It also specifies a unique distinguishing feature—each entry includes undoability via infomaniak_undo—which differentiates it from sibling audit/search tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use: to review destructive actions in the session and determine reversibility. It references infomaniak_undo as the companion tool, providing context. However, it doesn't explicitly contrast with alternatives like infomaniak_audit_log_search or state when not to use it, so it falls short of a perfect score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
modelsYes

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint, idempotentHint, and openWorldHint. The description adds that it lists models, consistent with annotations. No additional behavioral details like pagination or rate limits are provided, but the annotations cover the safety profile sufficiently.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no fluff. First sentence states purpose with examples, second sentence gives usage context. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite the tool's simplicity (zero parameters, output schema exists), the description provides sufficient context: lists model types, examples, and relevance to the chat endpoint. It is complete for the tool's scope.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, so the baseline is 4. The description does not need to add parameter information; it correctly describes what the tool does without referencing parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List', the resource 'public catalogue of LLM/STT/embedding models', and provides specific examples (Mixtral, Llama variants, Whisper). It effectively distinguishes from sibling tools like infomaniak_list_ai_products.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context by stating it is useful for targeting the OpenAI-compatible chat endpoint, implying when to use this tool. However, it does not explicitly state when not to use it or compare against alternatives like infomaniak_list_ai_products.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
productsYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, so the safety profile is covered. The description adds behavioral context by explaining that an empty result signifies no active AI subscription and includes a direct subscription URL. This goes beyond the schema and annotations, providing meaningful interpretive guidance.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only two sentences, with the action front-loaded in the first sentence and a useful conditional next step in the second. Every word adds value; no fluff or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless list tool with annotations and an output schema, the description is complete. It covers what the tool returns, how to interpret an empty result, and the follow-up action. No additional details about return format are necessary given the output schema exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline is 4. The description correctly omits param details as there are none. No further semantic explanation is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'List the Infomaniak AI products the account owns.' This is a specific verb+resource combination that distinguishes it from sibling tools like list_ai_models and list_ai_product_models. It also provides additional meaning about the result interpretation, making the purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes clear context on when to use the tool: to check which AI products are owned, and what to do if the list is empty (subscribe via the provided link). However, it does not explicitly contrast with alternatives like list_ai_models or list_ai_product_models, so it misses the 'when-not-to-use' aspect.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

infomaniak_list_databasesA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault
hosting_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
hosting_idYes
countYes
databasesYes

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds detail about disk usage and running operations, which helps set expectations beyond the schema, but no additional behavioral traits like permissions or pagination are mentioned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with zero unnecessary words. It efficiently conveys the action, scope, and extra output details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter list operation with an output schema, the description fully covers the purpose and scope. The presence of an output schema means return values are already documented, so no additional detail is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter hosting_id is self-descriptive by name, and the description's phrase 'attached to a web hosting' clarifies its role. With 0% schema coverage, this context compensates well, though it does not explicitly state that hosting_id is the identifier for the web hosting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') and resource ('every MariaDB database attached to a web hosting'), clearly distinguishing it from tools like get_database. It also adds useful context about disk usage and running operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies when to use this tool: to enumerate all databases under a given hosting_id. It does not explicitly mention alternatives or exclusions, but the scope is self-evident from the wording.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
hosting_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
hosting_idYes
countYes
usersYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, openWorldHint=true, and idempotentHint=true, so the operation's safety is known. The description adds value by disclosing the data structure: each user has its own password, a permissions array for databases, and WordPress users are marked protected: true. This goes beyond the annotations and helps the agent set expectations about the response.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is exactly two sentences, front-loaded with the core purpose, and includes necessary nuance about passwords, permissions, and WordPress protection. Every sentence earns its place with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple (one parameter), has rich annotations (read-only, open-world, idempotent), and an output schema exists. The description explains what the list contains and the special WordPress case, which is sufficient for an agent to invoke the tool correctly. No critical details are missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter is hosting_id, which the schema defines as an integer. The description references 'web hosting' in the first sentence, making it inferable that hosting_id refers to that web hosting. However, there is no explicit mapping or guidance on how to obtain a valid hosting_id (e.g., from list_hostings). Given 0% schema description coverage, the description partially compensates but could be more explicit.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'List the MariaDB-level user accounts attached to a web hosting.' The verb 'List' is specific, the resource is well-defined (MariaDB-level user accounts, distinct from hosting users), and it differentiates itself from sibling tools like infomaniak_list_hosting_users by explicitly noting 'MariaDB-level' and mentioning the permissions array and protected flag.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use this tool: when you need database-level user accounts for a web hosting, each with its own password and permissions. It does not explicitly name alternatives, but the scope (MariaDB-level vs hosting-level) implicitly guides the agent away from or toward sibling tools. It also adds a WordPress-specific nuance that aids usage decisions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

infomaniak_list_domainsA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault
account_idNoOrganization/account ID. Optional: defaults to the first account the token has access to. Discover via infomaniak_overview.

Output Schema

ParametersJSON Schema
NameRequiredDescription
account_idYes
countYes
domainsYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint, openWorldHint, idempotentHint), the description adds behavioral scope ('every domain owned by an Infomaniak organization') and discloses the returned attributes (creation and expiration dates). It does not discuss pagination, but the output schema likely covers return details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single declarative sentence with a front-loaded verb and object. Every word earns its place; there is no fluff or redundant restatement of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple list operation with one optional parameter, rich annotations, and an output schema. The description adequately specifies the scope and key return fields, and no further behavioral details are necessary for an agent to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with account_id already documented as optional, defaulting to the first account the token has access to, and discoverable via infomaniak_overview. The tool description adds no additional parameter semantics, so it meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses specific verb 'List every domain owned by an Infomaniak organization, with creation and expiration dates.' It clearly distinguishes from sibling tools such as infomaniak_get_domain and infomaniak_get_domain_full by emphasizing enumeration of all domains rather than a single domain lookup.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for enumerating all domains in an organization, but it does not explicitly state when to prefer this over related tools like infomaniak_get_domain_full or infomaniak_list_sites, nor does it mention exclusions. The optional account_id guidance is present in the schema rather than the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

infomaniak_list_drive_filesA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault
drive_idYes
parent_idNoFolder id to list inside. Omit to list the drive's root.
per_pageNo
pageNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
drive_idYes
pageYes
per_pageYes
countYes
filesYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, covering the safety profile. The description adds useful context about pagination support and the ability to list root or a specific folder. It does not detail limits or edge cases, but with annotations present, this is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the action and resource. It adds value without unnecessary words, making it an efficient and focused description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema and annotations, the tool is partially covered. The description provides basic context (root/folder, pagination) but lacks details on parameter usage, page/per_page defaults, and potential alternative tools. For a 4-parameter tool with low schema coverage, this is a minimal but not fully complete context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 25% (only parent_id has a description). The description mentions pagination and folder selection but does not explain drive_id, page, or per_page parameters. It partially compensates for the coverage gap but leaves key parameter semantics undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') and clearly identifies the resource ('files and subfolders of a kDrive root or a specific folder'). It distinguishes from sibling tools like list_drive_trash and list_drive_share_links by focusing on the file/folder listing operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description conveys when to use the tool: when listing files/subfolders in a drive. However, it does not explicitly mention alternative tools or state exclusions (e.g., when to use list_drive_trash instead). The guidance is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

infomaniak_list_drivesA
Read-onlyIdempotent

List every kDrive the account has access to.

ParametersJSON Schema
NameRequiredDescriptionDefault
account_idNoOrganization/account ID. Optional: defaults to the first account the token has access to. Discover via infomaniak_overview.

Output Schema

ParametersJSON Schema
NameRequiredDescription
account_idYes
countYes
drivesYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, covering safety. The description adds behavioral scope by specifying 'every kDrive the account has access to', which clarifies that no filtering is applied and results include all accessible drives. This goes beyond the annotation safety profile, though it doesn't describe pagination or return format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with the action and resource, zero unnecessary words. Perfectly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (one optional parameter, rich annotations, and an output schema), the description is complete. It clearly states what it lists, and the output schema handles return details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already thoroughly describes account_id, including its optionality and default behavior. The description adds no parameter-specific information, but the schema fully compensates.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'List' and clearly identifies the resource as 'every kDrive the account has access to', which distinguishes it from sibling tools like infomaniak_list_drive_files (which lists files within a drive) and infomaniak_get_drive_full (which gets details of a specific drive). No ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states what the tool does but does not explicitly provide guidance on when to use it versus alternatives. The scope ('every kDrive the account has access to') implies it's the tool for enumerating drives, but no alternative tools are mentioned or exclusions provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
drive_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
drive_idYes
countYes
itemsYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the tool as read-only, idempotent, and non-destructive. The description adds useful behavioral context by noting that each item shows deletion and addition dates, and that the tool is manager-private. This enriches the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, succinct and front-loaded with the main purpose. Every sentence adds useful information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with one parameter and an output schema. The description covers the action, scope, and a use case, and the 'manager-private' note adds operational context. No major gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter, drive_id, has no description in the schema (0% coverage) and the tool description does not explain it. While the name is somewhat self-explanatory, the description adds no meaning beyond the schema field name.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists items in the kDrive trash bin (files and folders), with a specific verb and resource. It distinguishes from siblings by focusing on the trash bin and mentions the audit purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states the use case: 'Use this to audit what's pending hard-deletion.' It provides clear context but does not explicitly mention alternatives or when not to use the tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
drive_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
drive_idYes
countYes
usersYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, etc. The description adds the 'Manager-private' restriction, which is a meaningful behavioral constraint not covered by annotations. It also clarifies the meaning of 'access' with 'who can touch what's in this drive.' No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, front-loaded with the verb and resource, and every phrase adds value. Three short sentences cover purpose, use case, and a critical access restriction without any fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple (one parameter) and has an output schema, so the description only needs to cover usage context. It provides purpose, audit relevance, and manager restriction. The only gap is the lack of guidance on obtaining drive_id, but that is minor given the simplicity and output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not mention the drive_id parameter at all. While the parameter name is self-explanatory, the description should have compensated for the lack of schema documentation by explaining how to identify the drive or that drive_id is required. It adds no semantic value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'List the users with access to a kDrive.' This is a specific verb+resource combination. It also distinguishes from siblings by emphasizing drive-level access ('who can touch what's in this drive') and the 'Manager-private' note, which differentiates it from file-access or invitation tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear context for use: 'Useful for access audits.' This implies when to use the tool (auditing drive access). However, it does not explicitly name alternatives or state when not to use it, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
account_idNoOrganization/account ID. Optional: if omitted, falls back to the first account the token has access to. Use infomaniak_overview to enumerate.
include_nodejsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
account_idYes
hostingsYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, so the safety profile is covered. The description adds useful scope (given organization, classic + Node.js) but does not disclose return format, pagination, or auth details. It adds some value beyond annotations but not rich behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the primary action and resource, and includes a useful prerequisite without redundancy. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity, presence of an output schema, and strong annotations (readOnly, openWorld, idempotent), the description is complete: it names the resource types, the required scope (organization), and the prerequisite discovery step. No significant information gap remains.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%: account_id has a full description, while include_nodejs has only type and default. The description's 'classic + Node.js' partially clarifies include_nodejs's purpose, but does not explicitly state that setting it to false excludes Node.js. The description compensates somewhat but does not fully carry the parameter-semantics burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists web hostings (classic + Node.js) for a given Infomaniak organization, using a specific verb ('Lists') and resource ('web hostings'). It distinguishes from siblings like infomaniak_list_sites and infomaniak_list_nodejs_apps by explicitly scoping to hostings and including both classic and Node.js types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear prerequisite: 'Use infomaniak_list_organizations first to discover account IDs.' This gives explicit when-to-use guidance, though it does not mention when not to use this tool or name alternative listing tools, stopping short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

infomaniak_list_hosting_usersA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault
hosting_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
hosting_idYes
countYes
usersYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, and openWorld, covering the safety profile. The description adds that results include environment and SSH flag, but does not disclose pagination, ordering, or error behavior. This is acceptable given the read-only nature.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with no filler, front-loaded verb, and concise parenthetical about output fields. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple listing tool with one parameter, an output schema, and safety annotations, the description is sufficient. It states the resource and included fields, and the schema covers the required input. It could mention that hosting_id is required, but that is already in the schema, so the description remains complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has one required parameter (hosting_id) with 0% description coverage. The description refers to 'a web hosting' but never mentions 'hosting_id' or explains how to identify the hosting. The agent must infer the parameter from the schema alone, so the description adds no semantic value for the parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the verb 'List' with a specific resource ('FTP/SSH users') scoped to 'a web hosting', and mentions included fields (environment, SSH flag). This clearly differentiates it from siblings like list_hostings or create_hosting_user.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for enumerating users on a specific web hosting, but it does not explicitly state when to choose this over alternatives such as create_hosting_user or list_database_users. No when-not or alternative guidance is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

infomaniak_list_mailboxesA
Read-onlyIdempotent

List every mailbox on a given mail hosting.

ParametersJSON Schema
NameRequiredDescriptionDefault
mail_hosting_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
mail_hosting_idYes
countYes
mailboxesYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds the specific scope ('every mailbox on a given mail hosting') which is useful behavioral context. No contradictions; no additional limitations or side effects are mentioned but none are necessary for a simple list operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single clear sentence that is front-loaded and free of filler. It conveys all necessary information in the most concise way possible.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is very simple with one parameter and an output schema that likely defines mailbox structure. The description is sufficient for a straightforward list operation, though it could have mentioned that the mail_hosting_id comes from list_mail_hostings. However, given the output schema and annotations, this is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for the only parameter (mail_hosting_id). The description only says 'given mail hosting,' which vaguely refers to the parameter but does not explain what the ID is, how to find it, or its format. With zero schema descriptions, this is insufficient compensation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') with a clear resource ('every mailbox') and a scope ('on a given mail hosting'). It clearly distinguishes from sibling tools like list_mail_hostings (which lists hostings) and get_mailbox_info (which gets a single mailbox).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool should be used when you have a mail hosting and need all mailboxes, but it does not explicitly state when to use it vs alternatives or any exclusions. It lacks the explicit alternative naming seen in high-quality examples.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

infomaniak_list_mail_hostingsA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault
account_idNoOrganization/account ID. Optional: defaults to the first account the token has access to. Discover via infomaniak_overview.

Output Schema

ParametersJSON Schema
NameRequiredDescription
account_idYes
countYes
mail_hostingsYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint. The description adds the 'every' completeness qualifier and the organizational scope but does not disclose additional behavioral details such as pagination, rate limits, or required permissions. It is consistent with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One concise sentence of 13 words, front-loaded with the verb and resource, with no filler or redundant content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple listing tool with an output schema, full annotation coverage, and a single well-documented optional parameter, the description provides sufficient context. No return value explanation is needed given the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter account_id is fully described in the schema (including default behavior), and the description does not introduce any new parameter semantics. With 100% schema coverage, the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'List', identifies the resource as 'mail hosting (a.k.a. email_hosting)', and scopes it to 'attached to an Infomaniak organization', clearly distinguishing it from sibling tools like list_mailboxes or list_hostings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for enumerating mail hostings within an organization but does not explicitly state when to prefer this over related tools such as get_mail_hosting_full or list_mailboxes, nor does it mention exclusions. The context is present but lacks explicit alternative guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
hosting_idYesNode.js hosting id (service_id 57).

Output Schema

ParametersJSON Schema
NameRequiredDescription
hosting_idYes
hosting_nameYes
hosting_stateYes
appsYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, idempotent, etc.), the description reveals significant behavioral context: it is a manager-private endpoint requiring SASESSION + CSRF cookies, it typically returns one entry because each hosting runs a single app, and it returns vhost_route_id and FQDNs. These details are not present in the annotations and materially affect invocation and output expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with the core purpose, then key behavioral nuances (typical single result, return value, auth requirement). Every sentence earns its place, and there is no filler or redundant restatement of the tool name or schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with one parameter and an output schema, the description is fully complete. It covers purpose, typical cardinality, the critical return value (vhost_route_id), and the authentication requirement. An agent has sufficient context to select and invoke this tool correctly without further clarification.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides 100% coverage, describing hosting_id as 'Node.js hosting id (service_id 57)' with an exclusive minimum. The description does not add further meaning to the parameter itself, so a baseline score of 3 is appropriate—the schema does the heavy lifting and the description adds no additional parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'List Node.js applications running on a hosting_3 container.' It clearly states the tool's scope and differentiates it from sibling tools by noting it returns the vhost_route_id needed for every other Node.js tool. The purpose is immediately obvious and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly positions this tool as a prerequisite for all other Node.js tools by stating it returns the vhost_route_id needed for them. It also provides an important usage condition—auth mode (INFOMANIAK_AUTH_MODE=auto) for the manager-private endpoint. This gives the agent clear guidance on when and how to invoke it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

infomaniak_list_organizationsA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
organizationsYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, covering safety and idempotency. The description adds valuable context beyond annotations by specifying that the listing is limited to organizations the token has 'technical access to', clarifying the scope of 'all'. This is meaningful additional behavioral insight, though it doesn't mention pagination or rate limits. With annotations carrying the bulk of the safety profile, a 4 is warranted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that directly states the tool's function and scope. No unnecessary words or repeated information. It is ideal in size and front-loaded with the verb and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter listing tool with comprehensive annotations (readOnly, openWorld, idempotent) and an output schema, the description is complete. It clearly states what is listed and the access scope. The openWorldHint covers potential pagination, and the output schema handles return values. No gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there is nothing for the description to explain. Per the rubric, 0 params gives a baseline of 4. The description appropriately focuses on the tool's purpose and scope rather than parameter details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Lists all Infomaniak organizations (accounts) the current token has technical access to.' It uses a specific verb ('Lists') and resource ('organizations/accounts'), and adds a scope qualifier ('current token has technical access to') that distinguishes it from other listing tools that might list different resource types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use the tool: to list all organizations accessible by the current token. It doesn't explicitly mention alternatives or exclusions, but for a simple listing tool with no parameters, the context is sufficiently clear. A score of 4 is appropriate: clear context, no exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

infomaniak_list_redirectionsA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault
mail_hosting_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
mail_hosting_idYes
countYes
redirectionsYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint, openWorldHint, and idempotentHint, covering safety profile. The description adds the 'server-side' qualifier and 'every' scope, which is some additional context. No contradictions, but no further behavioral details like pagination or output format are provided.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no unnecessary words. Every word adds meaning, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter read-only tool with annotations and an output schema, the description is sufficiently complete. It states what the tool does, and the schema/annotations cover parameter and safety details, so no critical information is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has a single required parameter, mail_hosting_id, with zero description coverage. The description implies the parameter's role by mentioning 'mail hosting' but does not explicitly explain that mail_hosting_id is the ID of the hosting. The parameter name is descriptive, but the description could compensate more given the low coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'List' and clearly identifies the resource as 'server-side redirection rule' with scope 'on a mail hosting.' This distinguishes it from sibling tools that list mailboxes or mail hostings, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context that this tool is for listing redirection rules on a mail hosting, making the usage obvious. It does not explicitly mention alternatives or exclusions, but the context is sufficient for an agent to know when to select it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

infomaniak_list_short_urlsA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
per_pageNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
pageYes
per_pageYes
countYes
short_urlsYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, covering the safety profile. The description adds the account-scoped nature of the listing, which is useful context beyond the annotations. No contradictions or additional behavioral details are necessary for this read-only operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that immediately conveys the tool's purpose. It is front-loaded with the action 'List' and includes the essential scope ('your account' and the service). No filler or unnecessary details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with only two optional pagination parameters, and the output schema covers return values. Annotations cover safety and idempotency. The description provides enough scope information, and there are no missing behavioral or usage details that would hinder correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has two parameters (page, per_page) with defaults and constraints, but the description provides no additional meaning or explanation of pagination. Schema description coverage is 0%, so the description should compensate, but it doesn't mention that the tool is paginated or how the parameters behave.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'List' and a clear resource: short URLs on Infomaniak's url-shortener service. It also scopes to 'your account,' which differentiates it from sibling tools like infomaniak_create_short_url and infomaniak_short_urls_quota.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies this is the read/list operation for short URLs, with no ambiguity. It doesn't explicitly state when not to use it or mention alternatives, but given the simple nature of the tool and clear sibling context, the intended usage is evident.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
hosting_idYesWeb hosting id. Discover via infomaniak_list_hostings / infomaniak_find_site.
site_idYesSite id on the hosting. Discover via infomaniak_find_site.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hosting_idYes
site_idYes
countYes
main_fqdnNo
aliasesYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds valuable context beyond that: 'Manager-private' indicates access restrictions, and the explanation of FQDNs/vhost/DocumentRoot clarifies what the listing represents and why aliases matter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, front-loaded with the core action, and each sentence earns its place: the first states what it lists, the second explains the technical context, and the third gives the practical use case. No redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a rich output schema, complete annotations, and two fully described parameters, the description fills remaining gaps: it explains the vhost/DocumentRoot relationship, notes manager-private access, and connects to WordPress/domain serving. This is a complete and self-sufficient description for a list operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both site_id and hosting_id already well-described in the input schema ('Discover via infomaniak_find_site', etc.). The tool description adds no new parameter-level detail, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'List the FQDNs (main + aliases) bound to a web hosting site.' It clearly distinguishes this from sibling tools like infomaniak_list_sites by focusing on aliases/FQDNs rather than sites themselves, and even clarifies the relationship to add_site_aliases/delete_site_alias.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: it explains the aliases share the same Apache vhost/DocumentRoot and that adding an alias serves more domains from one WordPress install. It doesn't explicitly name alternatives or state when not to use it, but the use case is evident and well-scoped.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

infomaniak_list_sitesA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault
hosting_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
hosting_idYes
sitesYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint true, so the safe read behavior is covered. The description adds scope (given web hosting) and mentions applications are attached, but doesn't disclose pagination, ordering, or result size. It is consistent with annotations and adds limited behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence that communicates purpose and a clarifying parenthetical. No filler, no redundant content, and the structure is easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list operation with one parameter, good annotations, and an output schema, the description is close to sufficient. It could be more complete by explaining how to obtain hosting_id or when to use this vs find_site, but the essential behavior is covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%; the description doesn't explain the single 'hosting_id' parameter beyond saying 'given web hosting'. Since coverage is low, the description should compensate, but it doesn't clarify the parameter type, semantics, or where to find the ID. The param name is self-explanatory, which gives minimal added value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses a specific verb 'Lists' and identifies the resource 'all sites on a given web hosting', with a parenthetical clarifying that attached applications are included. It clearly distinguishes from sibling tools like infomaniak_list_hostings (which lists hostings) and infomaniak_find_site (which finds sites).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for listing sites when you have a hosting_id, but provides no explicit when-to-use guidance, exclusions, or alternatives. It doesn't mention that infomaniak_find_site or infomaniak_list_hostings could be used for related tasks, so usage context is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

infomaniak_list_swiss_backupsA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault
account_idNoOrganization/account ID. Optional: defaults to the first account the token has access to. Discover via infomaniak_overview.

Output Schema

ParametersJSON Schema
NameRequiredDescription
account_idYes
countYes
swiss_backupsYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint, openWorldHint, and idempotentHint true, so the agent knows this is a safe read operation. The description adds the fact that this is Acronis-based, which is contextual but not behavioral. It does not detail any potential edge cases, pagination, or response structure, but the annotations carry most of the load.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that immediately states the action and resource, with no filler or redundant information. It is appropriately brief for a simple list tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with one optional parameter and an output schema, the description is fairly complete. It states the resource type, scope (Infomaniak organization), and notes the underlying technology (Acronis). It could clarify the relationship to Swiss Backup slots, but that is not essential for basic invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter, account_id, is fully described in the schema (100% coverage), including its optionality and default behavior. The description adds no additional parameter meaning, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists Swiss Backup subscriptions on an Infomaniak organization, with a specific verb and resource. It partially distinguishes from the sibling 'infomaniak_list_swiss_backup_slots' by specifying 'subscriptions' rather than 'slots', but it does not explicitly mention the distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is used to list Swiss Backup subscriptions, which is a typical read operation. However, it provides no explicit context about when to choose this tool over related siblings like list_swiss_backup_slots or get_swiss_backup, and no exclusions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
account_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
teamsYes
teams_countYes
tagsYes
tags_countYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already mark the operation as read-only, idempotent, and non-destructive. The description adds the 'Manager-private' access requirement (an auth constraint) and clarifies that both teams and tags are returned in a single call. This goes beyond the annotations by disclosing an access restriction and the combined nature of the response.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three short sentences: the first states capabilities, the second gives a use case, and the third notes the access restriction. Every sentence earns its place with no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers what the tool does, why it is useful, and who can use it (manager-private). With an output schema present, the return format is captured elsewhere. For a simple read-only list operation with a single parameter, this is fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is only one parameter, account_id, with 0% schema description coverage. The description maps it to 'an organization', providing some interpretive context beyond the bare integer type, but it does not explicitly name the parameter or explain the relationship to the account_id field. For a single obvious parameter, this is adequate but minimal.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action ('List') applied to two resources ('teams' and 'tags') with details on the contents (owners, user/product counts, products per tag), all scoped to 'an organization, in a single call'. This distinguishes it from any sibling tool, as no other tool combines teams and tags listing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a concrete use case: 'Both are useful to understand how an org partitions access and labels its products', and notes the access restriction 'Manager-private'. It does not explicitly compare to alternative tools, but no direct sibling offers this combined view, so the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
account_idYesAccount id. Discover via infomaniak_list_organizations.

Output Schema

ParametersJSON Schema
NameRequiredDescription
account_idYes
countYes
vpsYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, and non-destructive behavior, lowering the burden. The description adds useful context by disclosing the 'Manager-private' access requirement and that it returns billing and flags, which goes beyond annotation metadata. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is highly concise: two sentences front-loaded with the action and resource, followed by a compact field list, a usage note, and an access flag. Every sentence contributes meaning without redundancy or unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity list tool with one parameter and an output schema present, the description covers purpose, key return fields, when to use it relative to a sibling, and access context. There is no notable gap in what an agent needs to select and invoke this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single parameter (account_id) is already well-documented in the schema with guidance to discover via infomaniak_list_organizations. The tool description adds no additional parameter semantics beyond what the schema provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists VPS (Cloud Server, Jelastic-managed) products of an organization, enumerates specific return fields (id, customer_name, internal_name, etc.), and distinguishes itself from sibling infomaniak_get_vps_full by serving as the id-discovery step.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to use this before `infomaniak_get_vps_full` to find the id of a specific server, providing clear context for when this tool is appropriate. However, it does not mention any exclusion cases or alternative listing tools, so it lacks a full when-not-to-use contrast.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesPublic domain to operate on (e.g. 'broz.be'). Must be a domain registered through or managed by this Infomaniak account.
actionNoOperation to perform. `check` is read-only (default). `enable`/`disable` are destructive and require the two-phase commit (confirmation_token).check
confirmation_tokenNoRequired for `enable`/`disable` after receiving a plan. Pass the token from the previous (plan) response within 60 seconds.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds valuable behavioral details beyond annotations: the two-phase commit flow, plan + confirmation_token, TTL, and the read-only nature of check. It does not contradict the annotations, though it could have explicitly noted the destructive nature of enable/disable (which is only implied by 'remove DS record').

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is tightly written in three sentences, front-loading the core purpose and then providing the critical workflow and migration note. Every sentence earns its place without unnecessary verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with three modes, a two-phase commit, and a migration note, the description is remarkably complete. The existence of an output schema covers return values, so the description focuses on the essential operational flow and legacy replacement, leaving no major gaps for an agent to misuse the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for all three parameters, so the schema already fully describes domain, action, and confirmation_token. The description adds minimal new parameter-level meaning beyond what the schema provides, meeting the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose as unified DNSSEC management with three specific actions (check, enable, disable), each with an explicit verb and resource. It distinguishes itself from sibling tools by focusing on DNSSEC operations and noting it replaces the deprecated v0.9 trio.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides strong usage context by explaining the two-phase commit for enable/disable and the 60-second confirmation_token TTL. It also gives explicit alternative guidance by naming the replaced trio (dnssec_check/enable/disable). However, it does not explicitly compare to other DNS record tools or state when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
hosting_idYes
vhost_route_idYes
actionYes`start` — start a Stopped app; `stop` — stop a Running app (causes downtime until next start/restart!); `restart` — gracefully restart the app (a few seconds of downtime); `build` — trigger a build job (runs `build_command` + relaunches the app); returns a `resource_id` + log_stream
confirmation_tokenNoToken from the prior plan response. Required on the apply phase.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructiveHint and readOnlyHint: false, but the description adds essential behavioral detail beyond those flags: the two-phase commit protocol, the downtime implication of stop, and the side effect of build triggering a job with a tailable log_stream. It also notes the manager-private restriction, enriching the agent's understanding of access and consequences.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three dense sentences, front-loaded with the core verb+resource, then efficiently adds the high-stakes workflow details. Every sentence contributes critical information—actions, two-phase flow, downtime warning, build/log_stream behavior, and access scope—with no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (two-phase commit, multiple actions, destructive stop, build side effects) and the availability of an output schema, the description covers everything an agent needs to select and invoke it correctly: what action to take, the required plan/apply sequence, downtime consequences, and log_stream availability. The action enum in the schema fills in remaining per-action details like 'graceful restart' and 'runs build_command', so the description is complete enough for safe usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 50%, and the description partially compensates by explaining the confirmation_token workflow (first call returns plan + token, second call requires token + same args) and the action's lifecycle meaning. However, the description does not clarify hosting_id or vhost_route_id, leaving those required identifiers dependent on their self-explanatory names rather than any added semantic guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Start, stop, restart, or build a Node.js application,' a specific action verb plus resource that clearly distinguishes this from sibling tools like list/get/status. It also names the exact operation set and key behaviors (two-phase commit, log_stream), leaving no ambiguity about what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear usage context: it explains the two-phase commit flow, warns that stop causes downtime, and notes that build returns a log_stream. It does not explicitly compare against sibling read/status tools, but the action-oriented framing and lifecycle guidance make appropriate use clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
hosting_idYes
vhost_route_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
aliasesYes

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the tool as read-only, idempotent, and non-destructive. The description adds useful behavioral context by specifying the exact return payload (primary FQDN plus preview URL) and noting that it is Manager-private, implying access restrictions. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences, starts with the action verb 'List', and contains no redundant information. It is front-loaded and every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description explains what the tool returns, which combined with the output schema provides useful context. However, it lacks explicit parameter explanation and usage guidance, leaving the required inputs ambiguous. Given the tool's simplicity and annotated safety, it is partially complete but has clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema requires hosting_id and vhost_route_id, but the description does not mention or explain these parameters. With 0% schema description coverage, the description carries the burden to clarify the meaning of these identifiers, and it fails to do so, leaving users without guidance on what values are expected.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'List' and clearly identifies the resource as 'FQDNs (domain names) serving a Node.js application,' explicitly stating the return includes the primary FQDN and automatic preview URL. This distinguishes it from sibling tools like list_site_aliases by scoping to Node.js apps, and from get_nodejs_app which focuses on broader app details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this tool is used to retrieve FQDNs for a Node.js app, but it does not explicitly state when to use it over related tools such as list_site_aliases or get_nodejs_app, nor does it provide exclusion criteria. The 'Manager-private' note hints at restricted access but does not offer usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
hosting_idYes
vhost_route_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
jobsYes
totalYes

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds useful context beyond these: 'Manager-private' indicates access control, and 'JWT-protected log_stream endpoint per job' reveals a detail about the response. This adds behavioral transparency without contradicting annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that is front-loaded with the key purpose. It includes essential information (jobs, status, log_stream endpoint, manager privacy) without any redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the main purpose and mentions the output element (log_stream endpoint), and an output schema exists which helps. However, it lacks explanation of the required parameters and does not reference related tools, leaving some contextual gaps for a tool that requires two identifiers to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the description does not explain the meaning or purpose of hosting_id or vhost_route_id. The parameter names are not self-explanatory, and the description does not mention them at all, leaving the agent without guidance on how to populate these required fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') and specifies the resource ('recent jobs that ran for a Node.js app') with examples ('builds, restarts, etc.'). It also mentions the output includes status and a JWT-protected log_stream endpoint, making it distinct from sibling tools like status or logs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context (listing jobs for a Node.js app) and indicates it is 'Manager-private', but it does not explicitly state when to use this tool versus alternatives such as infomaniak_nodejs_app_status or infomaniak_nodejs_app_logs. No exclusions or comparative guidance is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
hosting_idYes
vhost_route_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
endpointYesURL of the live log stream — Server-Sent Events on manager-logs-01.hosting-ik.com.
jwt_tokenYesShort-lived bearer JWT (~1h) — pass as `Authorization: Bearer <token>` when connecting to the endpoint.
expires_at_isoYesISO timestamp of JWT expiry, decoded from the token's `exp` claim.
consumer_hintYesSuggested consumer: `curl -N -H 'Authorization: Bearer <jwt>' <endpoint>` or an EventSource with a custom header.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses key behavioral traits beyond the annotations: the JWT is one-shot and valid ~1h, the endpoint hostname is fixed, the stream uses SSE, and the tool is 'Manager-private.' Since annotations already mark readOnly and non-destructive, the added context about credential lifecycle and streaming behavior is valuable. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured: it leads with the primary purpose, then details the return value, transport mechanism, usage example, and a practical tip. Each sentence adds meaningful information without redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the tool's main purpose, output, and consumption method, which is sufficient for a credential-fetching tool. An output schema exists to formalize return values, and annotations cover safety. The only gap is lack of parameter detail, but that is a separate dimension. Overall, the context is complete for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the description does not explain the meaning or role of hosting_id or vhost_route_id. It only mentions 'of a Node.js application' generically, which fails to map the parameters to those identifiers. With no schema descriptions and no param explanations, the agent must infer their purpose from context, which is insufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Get credentials to consume the LIVE stdout/stderr stream of a Node.js application.' This specifies a unique verb-resource combination (get credentials for logs) and distinguishes it from sibling tools like status, aliases, and jobs. The mention of the returned JWT and endpoint URL further clarifies the purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context by explaining how to consume the stream (curl with Authorization header) and how to fetch a snapshot (kill curl after a few lines). It implies when to use this tool (for live logs) without explicitly contrasting with alternatives or stating exclusions, which is acceptable given the tool's distinct name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
hosting_idYes
vhost_route_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYesLive status: "Running" | "Stopped" | other

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint, idempotentHint, destructiveHint=false), the description adds valuable context: it is cheap and safe to poll, returns specific states, and requires SASESSION + CSRF cookies. These are behavioral traits not covered by annotations, making it highly transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, front-loads the purpose, and adds only essential extra information. No redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple status tool with an output schema and strong annotations, the description covers purpose, usage, and authentication context. However, the lack of parameter guidance leaves a small but notable gap in completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has zero parameter descriptions, and the description does not explain `hosting_id` or `vhost_route_id` at all. With 0% schema coverage, the description was responsible for providing parameter semantics but completely omitted them.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool gets the live status of a Node.js application and explicitly lists the return values (`Running` or `Stopped`). It uses a specific verb ('Get') and resource ('status of a Node.js application'), distinguishing it from sibling tools like `get_nodejs_app` or `nodejs_app_action`.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use it: 'Cheap call, safe to poll' suggests repeated status checking, and 'Manager-private' indicates access constraints. It does not explicitly name alternatives, but the guidance implies it is the dedicated status polling tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
hosting_idYes
vhost_route_idYes
refreshNoAsk the manager to re-screenshot the page (slower). Default false (cached).

Output Schema

ParametersJSON Schema
NameRequiredDescription
blobYesData URL (data:image/jpeg;base64,...) ready to embed in markdown.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds meaningful behavioral detail beyond the annotations: it discloses the return format (base64 JPEG data URL), the caching behavior with `refresh=true`, and the access restriction ('Manager-private'). Annotations already mark it read-only and idempotent, so this additional context is valuable and does not contradict them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences long, front-loaded with the primary action, and includes only essential information: purpose, use case, and refresh parameter behavior. Every sentence adds value with no redundant phrasing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the tool's purpose, output format, caching behavior, and access restriction. With an output schema present and simple parameters (no nested objects), this is sufficiently complete for an agent to invoke the tool correctly. The low parameter description coverage is mitigated by the tool's straightforward nature.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers only `refresh` with a description; `hosting_id` and `vhost_route_id` lack descriptions. The tool description mentions the app but does not clarify these required identifiers. However, their names are fairly self-explanatory in the Infomaniak context, and `refresh` behavior is well-described in both the schema and description, providing some compensation for the low coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Get a screenshot of the running Node.js app as a base64 JPEG data URL.' This is a specific verb+resource combination that uniquely distinguishes it from sibling tools like infomaniak_nodejs_app_logs or infomaniak_nodejs_app_status. No ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use it: 'Useful to visually confirm the app is alive without HTTP-probing.' It also explains the `refresh` parameter use case. However, it does not explicitly list alternatives or exclusions, though the context implies it is distinct from other Node.js tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

infomaniak_overviewA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault
account_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
total_accountsYes
total_productsYes
accountsYes
summary_markdownYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, so the description's 'Returns a summary' is consistent and adds little. It does add context about scope ('all organizations and products you have access to'), but it does not disclose potential latency, pagination, or other behavioral nuances. With strong annotations, a score of 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler: it states the core function and a usage recommendation. It is front-loaded and every part earns its place, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is an overview with a simple interface, good annotations (read-only, idempotent), and an output schema, so the description need not detail return values. However, the lack of any explanation for the optional 'account_id' parameter is a noticeable gap, preventing a perfect score. Overall, it is reasonably complete for its purpose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has one optional parameter 'account_id' with no description in the schema (0% coverage). The description entirely omits this parameter, leaving the agent to guess whether passing an account_id filters the summary or is otherwise relevant. Since schema coverage is low, the description should compensate, but it does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool 'Returns a summary of all Infomaniak organizations and products you have access to,' specifying both the verb ('Returns') and the resource ('summary of all organizations and products'). This distinguishes it from sibling tools like 'infomaniak_list_organizations' which likely only list organizations, and the added 'Best called first in a session' reinforces its role as a high-level overview.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'Best called first in a session' provides clear contextual guidance on when to use this tool as a starting point. It does not explicitly list alternatives or exclusions, but the 'first in a session' recommendation implies it should precede more specific tools, which is useful direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
hosting_idYesWeb hosting ID where the new site lives. Discover via infomaniak_list_hostings.
fqdnYesFull FQDN of the new site (e.g. 'shop.example.com'). Lowercase, must contain at least one dot and end with a TLD of ≥ 2 chars. NOT just a subdomain label.
database_nameYesMariaDB database to create alongside the site. Alphanumeric + underscores only (no dots / dashes), 1-64 chars. Hosting prefix prepended automatically.
zoneNoParent DNS zone to host the A record. If omitted, derived from fqdn (everything after the first dot). Provide explicitly when the subdomain is multi-level, e.g. fqdn='app.subzone.example.com' but zone='example.com'.
target_ipv4NoIPv4 the A record will point at. Default is Infomaniak's shared apache_php front-end (185.177.62.161). Override if your hosting has a dedicated IP.185.177.62.161
ttlNoTTL of the A record in seconds. 60 to 86400 (24h). Default 3600 (1h).
skip_dnsNoIf true, the DNS step is skipped. Use when DNS is managed elsewhere (Cloudflare, OVH, etc.) and you only want the site + database provisioned.
confirmation_tokenNoToken from the prior plan response. Required on the apply phase only.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (destructiveHint, readOnlyHint, etc.), the description adds crucial workflow behavior: two-phase commit, plan listing every step, sequential ordered execution on apply, and visibility into partial completion on failure. This adds real context without contradicting the structured hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tightly-scoped sentences: purpose first, workflow next, execution semantics last. No filler or repetition of schema content; every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's multi-resource complexity and 8 parameters, the description covers the high-level workflow and failure visibility, while the rich schema and output schema carry the remaining burden. It could mention that the first call produces the plan and the confirmation_token comes from that plan response, though the schema already states this.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and each parameter already carries detailed semantic documentation (FQDN pattern, zone derivation, TTL bounds, confirmation_token phase). The tool description itself adds no parameter-level detail, matching the baseline for fully-covered schemas.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Provision a complete website end-to-end' and explicitly enumerates the three components (web site, MariaDB database, DNS A record). This clearly distinguishes it from sibling tools like infomaniak_create_site or infomaniak_dns_create_record, which handle only one piece.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description communicates clear context: this is the composite provisioning tool for a full website, and the two-phase plan/apply workflow explains how the agent should drive it. It does not explicitly name alternatives or state when-not-to-use cases, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
hosting_idYesWeb hosting ID. Discover via infomaniak_find_site(domain) → hosting_id.
site_idYesSite ID on that hosting. Same source as hosting_id.
typeYesCertificate kind: `free` (Let's Encrypt, no extra fields), `paid` (pre-purchased Sectigo, requires `certificate_id`), `custom` (bring-your-own PEM, requires `certificate` + `private_key`). Default workflow: `free`.
certificate_idNoPre-purchased certificate ID. REQUIRED when type=`paid`, ignored otherwise.
certificateNoPEM-encoded leaf certificate. REQUIRED when type=`custom`, ignored otherwise. Multi-line string starting with `-----BEGIN CERTIFICATE-----`.
private_keyNoPEM-encoded private key matching `certificate`. REQUIRED when type=`custom`. Multi-line string starting with `-----BEGIN PRIVATE KEY-----` (or `RSA PRIVATE KEY`).
intermediate_certificateNoPEM-encoded intermediate CA chain. OPTIONAL for type=`custom` but recommended; without it some clients may fail trust validation.
confirmation_tokenNoToken from the prior plan response. Required on the apply phase only.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral context beyond annotations by disclosing the two-phase commit pattern and the return of an operation_uuid for async tracking. Annotations already indicate destructiveHint=true and readOnlyHint=false, and the description is consistent with these. It does not cover rate limits or auth requirements, but the two-phase commit disclosure is valuable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, front-loaded with the primary purpose, and efficiently packs in the two-phase commit, supported types, required parameters, and return value. Every sentence earns its place with no redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (8 parameters, two-phase commit, three types) and the presence of a rich input schema and output schema, the description adequately covers the workflow and key decision points. It mentions the return value and polling mechanism, which is essential. It does not enumerate every parameter, but that is appropriately delegated to the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description does summarize the three certificate types and their required fields, but this information is already fully present in the schema's parameter descriptions (e.g., type enum, certificate_id, certificate, private_key). The description adds no extra semantic value beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Request a new SSL certificate (or re-issue / renew an existing one) for a site on a web hosting.' It uses a specific verb ('request') with a clear resource (SSL certificate) and scope (site on hosting). It also distinguishes itself from sibling tools like infomaniak_get_certificate by mentioning the workflow of polling that tool for progress, and from deletion tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use the tool (new, re-issue, renew) and explicitly names infomaniak_get_certificate for tracking progress, which serves as an alternative. However, it does not explicitly state when NOT to use it (e.g., for certificate deletion or listing), though sibling tools are available. The guidance is strong but could be more comprehensive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

infomaniak_short_urls_quotaA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
quotaYes
limitYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so the description is not required to restate safety. It adds the specific output content (consumption and limit), but does not disclose additional behavioral traits such as account-level scope implications or units. This is adequate for a simple read operation with annotations present.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that uses no unnecessary words. It conveys the exact purpose in under 15 words, earning full marks for conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters, an existing output schema, and clear annotations, the description provides sufficient context for an agent to select and invoke it. Minor gap: it does not mention that this is a prerequisite check before creating short URLs, but this is implicit and not essential for a read-only quota endpoint.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the schema is empty with 100% coverage. Per the rubric, a baseline of 4 is appropriate because there are no parameter semantics to explain; the description correctly focuses on the return value instead.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Return') paired with a precise resource ('current consumption and limit of your account's short-URL quota'), clearly distinguishing it from siblings like infomaniak_list_short_urls (lists URLs) and infomaniak_create_short_url (creates URLs).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for checking quota status before creating short URLs, but it does not explicitly state when to use it versus alternatives or mention any exclusions. Context signals from sibling tools provide some differentiation, but the description itself offers no direct guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
history_idYes
confirmation_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the two-phase commit behavior: 'returns a plan first, then applies the undo on the second call'. This goes beyond the annotations, which only indicate destructive and non-idempotent behavior. It also notes the 'when reversible' limitation. However, it does not explain the content of the plan or the need for a confirmation token, leaving some ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, with the primary purpose stated immediately. Every word earns its place: it names the action, scope, and key behavioral caveat. There is no fluff or redundant restatement of the tool name or annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description explains the core two-phase mechanism but omits important operational details, such as how to obtain a history_id (e.g., via infomaniak_history) and what the plan contains. Given the tool's destructive nature and the presence of an output schema, a bit more guidance would make it fully self-sufficient. Still, it provides adequate high-level context for a capable agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, and the description does not compensate. While 'history_id' and 'confirmation_token' are inherently suggestive, the description fails to explain their roles, especially that history_id identifies the action to undo and confirmation_token is presumably obtained from the first-phase plan. The two-phase mention hints at the token but does not explicitly define it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Reverse a destructive action recorded in the session history'. The verb 'Reverse' is specific, the resource is a destructive action, and the scope is limited to session history and reversibility. This distinguishes it from sibling tools like infomaniak_history or direct delete tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool: after a destructive action, when it's recorded in session history and reversible. However, it does not explicitly mention alternatives (like restoring from trash) or exclusions (e.g., non-reversible actions). The 'when reversible' qualifier provides some guidance but not a full usage policy.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

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

  1. 23 tool updatesv0.14.5
    • Addedinfomaniak_add_site_aliases
    • Addedinfomaniak_delete_site_alias
    • Addedinfomaniak_get_account_full
    • Addedinfomaniak_get_domain_full
    • Addedinfomaniak_get_drive_full
    • Addedinfomaniak_get_mail_hosting_full
    • Addedinfomaniak_get_mailbox_full
    • Addedinfomaniak_get_my_profile
    • Addedinfomaniak_get_my_security
    • Addedinfomaniak_get_nodejs_app
    • Addedinfomaniak_get_vps_full
    • Addedinfomaniak_list_drive_trash
    • Addedinfomaniak_list_drive_users
    • Addedinfomaniak_list_nodejs_apps
    • Addedinfomaniak_list_site_aliases
    • Addedinfomaniak_list_teams_and_tags
    • Addedinfomaniak_list_vps
    • Addedinfomaniak_nodejs_app_action
    • Addedinfomaniak_nodejs_app_aliases
    • Addedinfomaniak_nodejs_app_jobs
    • Addedinfomaniak_nodejs_app_logs
    • Addedinfomaniak_nodejs_app_status
    • Addedinfomaniak_nodejs_app_thumbnail
  2. 7 tool updatesv0.1.3
    • Changedinfomaniak_delete_certificate3 fields changed
      • addedInput schema / properties / confirmation_token / description
        Added value: +"Token from the first (plan) phase. Re-pass to execute. Omit to receive the plan + token. Undo afterwards by calling infomaniak_request_certificate with type='free'."
      • addedInput schema / properties / hosting_id / description
        Added value: +"Web hosting ID. Discover via infomaniak_find_site(domain) → hosting_id."
      • addedInput schema / properties / site_id / description
        Added value: +"Site ID on that hosting. Same source as hosting_id."
    • Changedinfomaniak_delete_database3 fields changed
      • addedInput schema / properties / confirmation_token / description
        Added value: +"Token from the first (plan) phase. The plan response includes disk usage and any linked application so you can review before confirming. Re-pass to execute."
      • addedInput schema / properties / database_name / description
        Added value: +"Full database name as returned by infomaniak_list_databases (includes the hosting prefix, e.g. 'v33dqc_WP1250842'). NOT the unprefixed name you'd pass to create_database."
      • addedInput schema / properties / hosting_id / description
        Added value: +"Web hosting ID. Discover via infomaniak_find_site(domain) or infomaniak_list_hostings."
    • Changedinfomaniak_delete_hosting_user3 fields changed
      • addedInput schema / properties / confirmation_token / description
        Added value: +"Token from the first (plan) phase. Re-pass on the second call to actually revoke access. Omit on first call to receive the plan + token."
      • addedInput schema / properties / hosting_id / description
        Added value: +"Web hosting ID. Discover via infomaniak_list_hostings."
      • changedInput schema / properties / login / description
        Previous value: -"Full login as shown by infomaniak_list_hosting_users"New value: +"Full user login as shown by infomaniak_list_hosting_users (includes the hosting prefix, e.g. 'q387gx_audit'). User's files are preserved on disk; only access is revoked."
    • Changedinfomaniak_delete_mailbox3 fields changed
      • addedInput schema / properties / confirmation_token / description
        Added value: +"Token from the first (plan) phase. The plan response shows the mailbox + a warning that stored mail will be wiped. Re-pass to execute."
      • addedInput schema / properties / mail_hosting_id / description
        Added value: +"Mail hosting ID. Discover via infomaniak_list_mail_hostings."
      • addedInput schema / properties / mailbox_name / description
        Added value: +"Local part of the mailbox WITHOUT the @domain (e.g. 'anthony' for anthony@coden.lu). NOT the full email address. Verify with infomaniak_list_mailboxes before deleting — this wipes stored mail."
    • Changedinfomaniak_delete_redirection3 fields changed
      • addedInput schema / properties / confirmation_token / description
        Added value: +"Token returned by the first (plan) phase of the two-phase commit. Re-pass it on the second call to actually delete. Omit on first call to receive the plan + token."
      • addedInput schema / properties / mail_hosting_id / description
        Added value: +"Mail hosting ID. Discover via infomaniak_list_mail_hostings."
      • addedInput schema / properties / name / description
        Added value: +"Local part of the redirection source to remove (e.g. 'support' to delete 'support@coden.lu'). NOT the full email. List existing rules with infomaniak_list_redirections."
    • Changedinfomaniak_delete_site3 fields changed
      • addedInput schema / properties / confirmation_token / description
        Added value: +"Token returned by the first (plan) phase. Re-pass on the second call to execute the delete. Omit on first call to receive the plan + token (full preview of what will be removed)."
      • addedInput schema / properties / hosting_id / description
        Added value: +"Web hosting ID. Discover via infomaniak_find_site(domain) or infomaniak_list_hostings."
      • addedInput schema / properties / site_id / description
        Added value: +"Site ID on that hosting. Same source as hosting_id (infomaniak_find_site or infomaniak_list_sites)."
    • Changedinfomaniak_dns_delete_record3 fields changed
      • addedInput schema / properties / confirmation_token / description
        Added value: +"Token from the first (plan) phase. The plan response includes a full preview of the record so you can verify before confirming. Re-pass to execute."
      • addedInput schema / properties / record_id / description
        Added value: +"Numeric id of the record to delete. Get it from infomaniak_dns_list_records → records[].id. NOT the record name or source."
      • addedInput schema / properties / zone / description
        Added value: +"DNS zone (root domain) the record belongs to, e.g. 'broz.be'. Must be a domain whose DNS is managed by Infomaniak."
  3. 17 tool updatesv0.1.2
    • Changedinfomaniak_audit_account2 fields changed
      • addedInput schema / properties / days_ahead / description
        Added value: +"Flag products expiring within this many days as warnings. Default 60."
      • addedInput schema / properties / max_domain_checks
        Added value: +{
        +  "default": 50,
        +  "description": "Cap on the number of `/1/domain/{name}` lookups used to disambiguate stale `expired_at` flags on domain products. Each lookup is one API call. With the 60 req/min rate limit, leave this ≤ 50 unless you have time. Set to 0 to skip domain re-checks entirely (faster but may miss real expirations).",
        +  "maximum": 500,
        +  "minimum": 0,
        +  "type": "integer"
        +}
    • Changedinfomaniak_create_database4 fields changed
      • addedInput schema / properties / confirmation_token / description
        Added value: +"Token from the prior plan response. Required on the apply phase only."
      • addedInput schema / properties / database_name / description
        Added value: +"Database name. Alphanumeric and underscores only (no dots, dashes or hyphens), 1-64 chars. Infomaniak automatically prepends the hosting prefix (e.g. 'v33dqc_') — do NOT include it yourself."
      • addedInput schema / properties / description / description
        Added value: +"Optional description shown in the manager UI (≤ 255 chars)."
      • addedInput schema / properties / hosting_id / description
        Added value: +"Web hosting ID where the database will live. Discover via infomaniak_find_site(domain) or infomaniak_list_hostings."
    • Changedinfomaniak_create_hosting_user6 fields changed
      • addedInput schema / properties / confirmation_token / description
        Added value: +"Token from the prior plan response. Required on the apply phase only."
      • addedInput schema / properties / connection_type / description
        Added value: +"Access level. `ssh` = full shell + FTP/SFTP, `ftp` = SFTP-only (no interactive shell). Default `ftp` (safer)."
      • addedInput schema / properties / home_directory / description
        Added value: +"Sub-path inside the hosting the user is jailed into. Default '/' (root of the hosting). Use to scope an FTP-only user to a single site, e.g. '/sites/example.com'."
      • addedInput schema / properties / hosting_id / description
        Added value: +"Web hosting ID where the user will be created. Discover via infomaniak_list_hostings."
      • addedInput schema / properties / login / description
        Added value: +"User login WITHOUT the hosting prefix (e.g. 'audit', not 'q387gx_audit'). Alphanumeric + underscore/dash only, 1-32 chars. Infomaniak prepends the hosting prefix automatically."
      • addedInput schema / properties / password / description
        Added value: +"User password. Minimum 8 chars with at least one lowercase, one uppercase, one digit. Special character recommended but not required."
    • Changedinfomaniak_create_mailbox5 fields changed
      • addedInput schema / properties / confirmation_token / description
        Added value: +"Token from the prior plan response. Required on the apply phase only."
      • addedInput schema / properties / description / description
        Added value: +"Optional free-text description (≤ 255 chars), shown in the manager UI."
      • addedInput schema / properties / mail_hosting_id / description
        Added value: +"Mail hosting ID. Discover via infomaniak_list_mail_hostings."
      • addedInput schema / properties / mailbox_name / description
        Added value: +"Local part of the mailbox WITHOUT the @domain (e.g. 'info', NOT 'info@example.com'). Lowercase alphanumeric with dots, underscores or dashes; 1-64 chars."
      • addedInput schema / properties / password / description
        Added value: +"Initial mailbox password. Infomaniak policy: ≥ 8 chars, at least one lowercase, one uppercase, one digit and one special character. NEVER appears in the plan response — only in the apply call."
    • Changedinfomaniak_create_redirection4 fields changed
      • addedInput schema / properties / confirmation_token / description
        Added value: +"Token from the prior plan response. Required on the apply phase only."
      • addedInput schema / properties / mail_hosting_id / description
        Added value: +"Mail hosting ID. Discover via infomaniak_list_mail_hostings."
      • addedInput schema / properties / name / description
        Added value: +"Local part of the source address (e.g. 'support' to forward 'support@coden.lu'). Lowercase alphanumeric with dots, underscores or dashes; 1-64 chars. NOT the full email."
      • addedInput schema / properties / targets / description
        Added value: +"Destination addresses, full emails. Every address must be valid. Multiple targets fan-out (each receives a copy)."
    • Changedinfomaniak_create_short_url2 fields changed
      • addedInput schema / properties / confirmation_token / description
        Added value: +"Token from the prior plan response. Required on the apply phase only."
      • addedInput schema / properties / target / description
        Added value: +"Long URL to shorten. Must be a complete http:// or https:// URL (e.g. 'https://example.com/page'). A bare domain like 'example.com' is rejected."
    • Changedinfomaniak_dns_create_record4 fields changed
      • addedInput schema / properties / confirmation_token / description
        Added value: +"Token from the prior plan response. Required on the apply phase only."
      • addedInput schema / properties / ttl / description
        Added value: +"Time-to-live in seconds. Min 60, max 86400 (24h). Default 3600 (1h)."
      • addedInput schema / properties / type / description
        Added value: +"Record type as enum: A, AAAA, CNAME, MX, TXT, NS, SRV, CAA, PTR. Must be UPPERCASE."
      • addedInput schema / properties / zone / description
        Added value: +"DNS zone (root domain) to add the record to, e.g. 'broz.be'. Must be a domain whose DNS is managed by Infomaniak (check via infomaniak_get_domain)."
    • Removedinfomaniak_dnssec_check
    • Removedinfomaniak_dnssec_disable
    • Removedinfomaniak_dnssec_enable
    • Removedinfomaniak_get_mailbox_aliases
    • Removedinfomaniak_get_mailbox_backups
    • Addedinfomaniak_get_mailbox_info
    • Removedinfomaniak_get_mailbox_signatures
    • Addedinfomaniak_manage_dnssec
    • Changedinfomaniak_provision_site_full8 fields changed
      • addedInput schema / properties / confirmation_token / description
        Added value: +"Token from the prior plan response. Required on the apply phase only."
      • addedInput schema / properties / database_name / description
        Added value: +"MariaDB database to create alongside the site. Alphanumeric + underscores only (no dots / dashes), 1-64 chars. Hosting prefix prepended automatically."
      • addedInput schema / properties / fqdn / description
        Added value: +"Full FQDN of the new site (e.g. 'shop.example.com'). Lowercase, must contain at least one dot and end with a TLD of ≥ 2 chars. NOT just a subdomain label."
      • addedInput schema / properties / hosting_id / description
        Added value: +"Web hosting ID where the new site lives. Discover via infomaniak_list_hostings."
      • addedInput schema / properties / skip_dns / description
        Added value: +"If true, the DNS step is skipped. Use when DNS is managed elsewhere (Cloudflare, OVH, etc.) and you only want the site + database provisioned."
      • addedInput schema / properties / target_ipv4 / description
        Added value: +"IPv4 the A record will point at. Default is Infomaniak's shared apache_php front-end (185.177.62.161). Override if your hosting has a dedicated IP."
      • addedInput schema / properties / ttl / description
        Added value: +"TTL of the A record in seconds. 60 to 86400 (24h). Default 3600 (1h)."
      • addedInput schema / properties / zone / description
        Added value: +"Parent DNS zone to host the A record. If omitted, derived from fqdn (everything after the first dot). Provide explicitly when the subdomain is multi-level, e.g. fqdn='app.subzone.example.com' but zone='example.com'."
    • Changedinfomaniak_request_certificate8 fields changed
      • addedInput schema / properties / certificate / description
        Added value: +"PEM-encoded leaf certificate. REQUIRED when type=`custom`, ignored otherwise. Multi-line string starting with `-----BEGIN CERTIFICATE-----`."
      • addedInput schema / properties / certificate_id / description
        Added value: +"Pre-purchased certificate ID. REQUIRED when type=`paid`, ignored otherwise."
      • addedInput schema / properties / confirmation_token / description
        Added value: +"Token from the prior plan response. Required on the apply phase only."
      • addedInput schema / properties / hosting_id / description
        Added value: +"Web hosting ID. Discover via infomaniak_find_site(domain) → hosting_id."
      • addedInput schema / properties / intermediate_certificate / description
        Added value: +"PEM-encoded intermediate CA chain. OPTIONAL for type=`custom` but recommended; without it some clients may fail trust validation."
      • addedInput schema / properties / private_key / description
        Added value: +"PEM-encoded private key matching `certificate`. REQUIRED when type=`custom`. Multi-line string starting with `-----BEGIN PRIVATE KEY-----` (or `RSA PRIVATE KEY`)."
      • addedInput schema / properties / site_id / description
        Added value: +"Site ID on that hosting. Same source as hosting_id."
      • addedInput schema / properties / type / description
        Added value: +"Certificate kind: `free` (Let's Encrypt, no extra fields), `paid` (pre-purchased Sectigo, requires `certificate_id`), `custom` (bring-your-own PEM, requires `certificate` + `private_key`). Default workflow: `free`."
  4. 13 tool updatesv0.1.1
    • Changedinfomaniak_audit_account2 fields changed
      • addedInput schema / properties / account_id / description
        Added value: +"Organization/account ID. Optional: defaults to the first account the token has access to. Discover via infomaniak_overview."
      • removedInput schema / required
        Removed value: -[
        -  "account_id"
        -]
    • Changedinfomaniak_audit_dns_zones5 fields changed
      • addedInput schema / properties / account_id / description
        Added value: +"Organization/account ID. Optional: defaults to the first account the token has access to."
      • addedInput schema / properties / filter_contains
        Added value: +{
        +  "description": "Filter domains by substring (case-insensitive). Use this for targeted audits (e.g. 'broz.be') to avoid scanning the entire fleet.",
        +  "type": "string"
        +}
      • changedInput schema / properties / max_domains / default
        Previous value: -50New value: +20
      • addedInput schema / properties / max_domains / description
        Added value: +"Cap the number of domains scanned. Each domain requires 2 sequential API calls (records + dnssec). Default 20 keeps execution under ~30s."
      • removedInput schema / required
        Removed value: -[
        -  "account_id"
        -]
    • Changedinfomaniak_delete_database1 field changed
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "confirmation_token": {
        -        "type": "string"
        -      },
        -      "next_step_markdown": {
        -        "type": "string"
        -      },
        -      "plan": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "database_name": {
        -            "type": "string"
        -          },
        -          "database_preview": {
        -            "additionalProperties": false,
        -            "properties": {
        -              "application": {
        -                "type": [
        -                  "string",
        -                  "null"
        -                ]
        -              },
        -              "backups": {},
        -              "description": {
        -                "type": [
        -                  "string",
        -                  "null"
        -                ]
        -              },
        -              "disk_used": {
        -                "type": [
        -                  "number",
        -                  "null"
        -                ]
        -              },
        -              "name": {
        -                "type": "string"
        -              },
        -              "operation_in_progress": {
        -                "type": "boolean"
        -              },
        -              "permissions": {}
        -            },
        -            "required": [
        -              "name"
        -            ],
        -            "type": "object"
        -          },
        -          "hosting_id": {
        -            "type": "number"
        -          }
        -        },
        -        "required": [
        -          "hosting_id",
        -          "database_name",
        -          "database_preview"
        -        ],
        -        "type": "object"
        -      },
        -      "status": {
        -        "const": "plan",
        -        "type": "string"
        -      },
        -      "token_expires_at": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "status",
        -      "plan",
        -      "confirmation_token",
        -      "token_expires_at",
        -      "next_step_markdown"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "database_name": {
        -        "type": "string"
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "status": {
        -        "const": "applied",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "status",
        -      "database_name",
        -      "message"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "confirmation_token": {
        +        "type": "string"
        +      },
        +      "next_step_markdown": {
        +        "type": "string"
        +      },
        +      "plan": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "database_name": {
        +            "type": "string"
        +          },
        +          "database_preview": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "application": {
        +                "anyOf": [
        +                  {
        +                    "anyOf": [
        +                      {
        +                        "type": "string"
        +                      },
        +                      {
        +                        "anyOf": [
        +                          {
        +                            "not": {}
        +                          },
        +                          {
        +                            "anyOf": [
        +                              {
        +                                "additionalProperties": false,
        +                                "properties": {
        +                                  "id": {
        +                                    "type": [
        +                                      "string",
        +                                      "number"
        +                                    ]
        +                                  },
        +                                  "location": {
        +                                    "type": "string"
        +                                  },
        +                                  "name": {
        +                                    "type": "string"
        +                                  },
        +                                  "type": {
        +                                    "type": "string"
        +                                  }
        +                                },
        +                                "type": "object"
        +                              },
        +                              {
        +                                "type": "null"
        +                              }
        +                            ]
        +                          }
        +                        ]
        +                      }
        +                    ]
        +                  },
        +                  {
        +                    "type": "null"
        +                  }
        +                ]
        +              },
        +              "backups": {
        +                "items": {
        +                  "type": "number"
        +                },
        +                "type": "array"
        +              },
        +              "description": {
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              },
        +              "disk_used": {
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "name": {
        +                "type": "string"
        +              },
        +              "operation_in_progress": {
        +                "type": "boolean"
        +              },
        +              "permissions": {
        +                "items": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "rights": {
        +                      "additionalProperties": false,
        +                      "properties": {
        +                        "admin": {
        +                          "type": "boolean"
        +                        },
        +                        "read": {
        +                          "type": "boolean"
        +                        },
        +                        "write": {
        +                          "type": "boolean"
        +                        }
        +                      },
        +                      "type": "object"
        +                    },
        +                    "user": {
        +                      "type": "string"
        +                    }
        +                  },
        +                  "required": [
        +                    "user"
        +                  ],
        +                  "type": "object"
        +                },
        +                "type": "array"
        +              }
        +            },
        +            "required": [
        +              "name"
        +            ],
        +            "type": "object"
        +          },
        +          "hosting_id": {
        +            "type": "number"
        +          }
        +        },
        +        "required": [
        +          "hosting_id",
        +          "database_name",
        +          "database_preview"
        +        ],
        +        "type": "object"
        +      },
        +      "status": {
        +        "const": "plan",
        +        "type": "string"
        +      },
        +      "token_expires_at": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "status",
        +      "plan",
        +      "confirmation_token",
        +      "token_expires_at",
        +      "next_step_markdown"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "database_name": {
        +        "type": "string"
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "status": {
        +        "const": "applied",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "status",
        +      "database_name",
        +      "message"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Addedinfomaniak_find_site
    • Changedinfomaniak_get_certificate1 field changed
      • changedOutput schema / properties / last_attempt_at / type
        Previous value: -"number"New value: +[
        +  "number",
        +  "null"
        +]
    • Changedinfomaniak_get_database6 fields changed
      • addedOutput schema / properties / application / anyOf
        Added value: +[
        +  {
        +    "anyOf": [
        +      {
        +        "type": "string"
        +      },
        +      {
        +        "anyOf": [
        +          {
        +            "not": {}
        +          },
        +          {
        +            "anyOf": [
        +              {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "id": {
        +                    "type": [
        +                      "string",
        +                      "number"
        +                    ]
        +                  },
        +                  "location": {
        +                    "type": "string"
        +                  },
        +                  "name": {
        +                    "type": "string"
        +                  },
        +                  "type": {
        +                    "type": "string"
        +                  }
        +                },
        +                "type": "object"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          }
        +        ]
        +      }
        +    ]
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / application / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
      • addedOutput schema / properties / backups / items
        Added value: +{
        +  "type": "number"
        +}
      • addedOutput schema / properties / backups / type
        Added value: +"array"
      • addedOutput schema / properties / permissions / items
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "rights": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "admin": {
        +          "type": "boolean"
        +        },
        +        "read": {
        +          "type": "boolean"
        +        },
        +        "write": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "user": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "user"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / permissions / type
        Added value: +"array"
    • Changedinfomaniak_list_databases6 fields changed
      • addedOutput schema / properties / databases / items / properties / application / anyOf
        Added value: +[
        +  {
        +    "anyOf": [
        +      {
        +        "type": "string"
        +      },
        +      {
        +        "anyOf": [
        +          {
        +            "not": {}
        +          },
        +          {
        +            "anyOf": [
        +              {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "id": {
        +                    "type": [
        +                      "string",
        +                      "number"
        +                    ]
        +                  },
        +                  "location": {
        +                    "type": "string"
        +                  },
        +                  "name": {
        +                    "type": "string"
        +                  },
        +                  "type": {
        +                    "type": "string"
        +                  }
        +                },
        +                "type": "object"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          }
        +        ]
        +      }
        +    ]
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / databases / items / properties / application / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
      • addedOutput schema / properties / databases / items / properties / backups / items
        Added value: +{
        +  "type": "number"
        +}
      • addedOutput schema / properties / databases / items / properties / backups / type
        Added value: +"array"
      • addedOutput schema / properties / databases / items / properties / permissions / items
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "rights": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "admin": {
        +          "type": "boolean"
        +        },
        +        "read": {
        +          "type": "boolean"
        +        },
        +        "write": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "user": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "user"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / databases / items / properties / permissions / type
        Added value: +"array"
    • Changedinfomaniak_list_domains2 fields changed
      • addedInput schema / properties / account_id / description
        Added value: +"Organization/account ID. Optional: defaults to the first account the token has access to. Discover via infomaniak_overview."
      • removedInput schema / required
        Removed value: -[
        -  "account_id"
        -]
    • Changedinfomaniak_list_drives2 fields changed
      • addedInput schema / properties / account_id / description
        Added value: +"Organization/account ID. Optional: defaults to the first account the token has access to. Discover via infomaniak_overview."
      • removedInput schema / required
        Removed value: -[
        -  "account_id"
        -]
    • Changedinfomaniak_list_hostings2 fields changed
      • addedInput schema / properties / account_id / description
        Added value: +"Organization/account ID. Optional: if omitted, falls back to the first account the token has access to. Use infomaniak_overview to enumerate."
      • removedInput schema / required
        Removed value: -[
        -  "account_id"
        -]
    • Changedinfomaniak_list_mail_hostings2 fields changed
      • addedInput schema / properties / account_id / description
        Added value: +"Organization/account ID. Optional: defaults to the first account the token has access to. Discover via infomaniak_overview."
      • removedInput schema / required
        Removed value: -[
        -  "account_id"
        -]
    • Changedinfomaniak_list_mailboxes2 fields changed
      • addedOutput schema / properties / mailboxes / items / properties / type / anyOf
        Added value: +[
        +  {
        +    "type": [
        +      "string",
        +      "number"
        +    ]
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / mailboxes / items / properties / type / type
        Removed value: -"string"
    • Changedinfomaniak_list_swiss_backups2 fields changed
      • addedInput schema / properties / account_id / description
        Added value: +"Organization/account ID. Optional: defaults to the first account the token has access to. Discover via infomaniak_overview."
      • removedInput schema / required
        Removed value: -[
        -  "account_id"
        -]
  5. 54 tool updatesv0.1.0
    • First observedinfomaniak_api_call
    • First observedinfomaniak_audit_account
    • First observedinfomaniak_audit_dns_zones
    • First observedinfomaniak_create_database
    • First observedinfomaniak_create_hosting_user
    • First observedinfomaniak_create_mailbox
    • First observedinfomaniak_create_mailbox_alias
    • First observedinfomaniak_create_redirection
    • First observedinfomaniak_create_short_url
    • First observedinfomaniak_create_site
    • First observedinfomaniak_delete_certificate
    • First observedinfomaniak_delete_database
    • First observedinfomaniak_delete_hosting_user
    • First observedinfomaniak_delete_mailbox
    • First observedinfomaniak_delete_redirection
    • First observedinfomaniak_delete_site
    • First observedinfomaniak_dns_create_record
    • First observedinfomaniak_dns_delete_record
    • First observedinfomaniak_dns_list_records
    • First observedinfomaniak_dns_update_record
    • First observedinfomaniak_dnssec_check
    • First observedinfomaniak_dnssec_disable
    • First observedinfomaniak_dnssec_enable
    • First observedinfomaniak_explain
    • First observedinfomaniak_get_certificate
    • First observedinfomaniak_get_database
    • First observedinfomaniak_get_database_user
    • First observedinfomaniak_get_domain
    • First observedinfomaniak_get_mailbox_aliases
    • First observedinfomaniak_get_mailbox_backups
    • First observedinfomaniak_get_mailbox_signatures
    • First observedinfomaniak_help
    • First observedinfomaniak_history
    • First observedinfomaniak_list_ai_models
    • First observedinfomaniak_list_ai_products
    • First observedinfomaniak_list_database_users
    • First observedinfomaniak_list_databases
    • First observedinfomaniak_list_domains
    • First observedinfomaniak_list_drive_files
    • First observedinfomaniak_list_drives
    • First observedinfomaniak_list_hosting_users
    • First observedinfomaniak_list_hostings
    • First observedinfomaniak_list_mail_hostings
    • First observedinfomaniak_list_mailboxes
    • First observedinfomaniak_list_organizations
    • First observedinfomaniak_list_redirections
    • First observedinfomaniak_list_short_urls
    • First observedinfomaniak_list_sites
    • First observedinfomaniak_list_swiss_backups
    • First observedinfomaniak_overview
    • First observedinfomaniak_provision_site_full
    • First observedinfomaniak_request_certificate
    • First observedinfomaniak_short_urls_quota
    • First observedinfomaniak_undo

TDQS

B3.4/5.0

Scored across 74 tools

Disambiguation4/5

Most tools target a clearly distinct Infomaniak resource and action, and the consistent prefix makes them easy to scan. A few close pairs exist — get_my_profile vs get_my_security, get_domain vs get_domain_full, get_mailbox_info vs get_mailbox_full — so agents may need to read descriptions carefully before selecting.

Naming Consistency3/5

A majority of tools follow infomaniak_<verb>_<noun>, and all names are readable snake_case. However, DNS tools invert this pattern (dns_create_record vs create_mailbox), Node.js tools use mixed noun-first forms (nodejs_app_status vs get_nodejs_app), and a few names like overview, help, short_urls_quota, and api_call do not follow the verb_noun convention.

Tool Count1/5

74 tools is far beyond the moderate range and exceeds even the 50+ extreme threshold. The broad Infomaniak product suite partly explains the count, but this should be split into product-scoped servers or significantly consolidated, because the current surface imposes a very large selection burden on an agent.

Completeness3/5

There is good lifecycle coverage for DNS, certificates, databases, mailboxes, and several create/list/delete workflows, and infomaniak_api_call provides an escape hatch for missing public API operations. Still, obvious gaps exist: no update/reset for mailbox or hosting users, no delete for short URLs, no alias deletion for mailboxes, and kDrive/VPS areas are entirely read-only. These gaps will require workarounds for common management tasks.

Maintenance

ActivityStale
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    556-tool MCP server giving AI agents full access to the FutureSense business platform. Covers 10 app domains: invoicing, payroll, accounting, CRM, booking, content creation, website builder, quotations, email, and more. Works with Claude, ChatGPT, Gemini, Cursor, and any MCP-compatible client.
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Agency-grade MCP server for WordPress Elementor — multi-site management for 120+ WordPress sites with safe edits (backup + auto-rollback + post-write verification), template export/import, global widget detection, CSS flush, WP-CLI escape hatch, and headless Chrome screenshots. 34 tools across pages, widgets, templates, bulk find/replace, and fleet operations.
    34
    67 npm
    3
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Enables agentic administration of Infomaniak accounts via Claude, offering 169 tools for web hosting, mail, domains, DNS, and more, with a strict two-phase commit for safe mutations.
    100
    3 npm
    MIT