infomaniak-mcp-agent
infomaniak-mcp-agent is an MCP server exposing 51 tools to manage your entire Infomaniak cloud account via an LLM, with two-phase commit safety on all destructive operations.
Account & Organization Management
Overview of all organizations and products, account auditing (expiring products, locked items, ongoing operations)
Session history of destructive actions and undo for reversible ones
Natural language tool search (
infomaniak_help) and tool introspection (infomaniak_explain)
Web Hosting & Sites
List, find, create, and delete sites (classic + Node.js)
Provision a full site end-to-end: site + MariaDB database + DNS A record in one workflow (
infomaniak_provision_site_full)
SSL Certificates
Get certificate status, request/renew (Let's Encrypt, Sectigo, or custom BYO PEM), delete
Databases (MariaDB)
List, get details, create, and delete databases; list and inspect MariaDB user accounts and permissions
FTP / SSH Users
List, create (FTP-only or SSH+FTP), and delete hosting users
DNS & DNSSEC
Full CRUD on DNS records (A, AAAA, CNAME, MX, TXT, SRV, NS, CAA, PTR, SPF)
Manage DNSSEC (check, enable, disable) and bulk-audit DNS zones across all domains
Domains
List all domains with expiration dates; get detailed domain info (DNS status, DNSSEC, IDN, errors)
Mail (kSuite)
List mail hostings and mailboxes; get mailbox metadata (aliases, signatures, backups)
Create/delete mailboxes, add aliases, manage server-side redirection rules
kDrive
List kDrives with quota info; browse files and folders (paginated)
Swiss Backup
List Swiss Backup (Acronis-based) subscriptions
AI Tools
List AI product subscriptions; browse the public catalogue of Infomaniak-hosted LLM/STT/embedding models (Llama, Mixtral, Whisper, etc.)
URL Shortener
List, create, and delete short URLs; check quota
Escape Hatch
infomaniak_api_call: directly call any publicapi.infomaniak.comendpoint when no dedicated tool exists, with two-phase commit for mutating methods
Provides tools for managing Infomaniak cloud services including web hosting, mail (kSuite), kDrive, domains, DNS, DNSSEC, FTP/SSH users, AI products, and account audits through an agentic interface with two-phase commit for destructive operations.
infomaniak-mcp-agent
Drive your entire Infomaniak account from Claude — agentic, two-phase commit, open-source.
infomaniak-mcp-agent is an unofficial Model Context Protocol server that exposes the full surface of Infomaniak — Switzerland's sovereign cloud — as 78 tools an LLM can call directly: web hosting, mail (kSuite), kDrive, domains, DNS, DNSSEC, FTP/SSH users, AI products, account audits and more. Every destructive operation goes through a strict two-phase commit, so an agent can never silently delete or mutate something on your account.
You → Claude: "audit the example.com hosting and tell me which mailboxes are over quota"
Claude → MCP: infomaniak_audit_account → infomaniak_list_mail_hostings → infomaniak_list_mailboxes
Claude → You: 3 mailboxes >85% — paul@ (94%), notify@ (88%), team@ (87%). Want me to add an alert?Table of contents
Tools (78 across 22 areas) · Limitations · Roadmap · FAQ
Related MCP server: FutureSense MCP
Why this exists
Infomaniak is one of the very few independent, Swiss-owned, open-source-friendly cloud providers in Europe — running its own datacentres in Switzerland, on hydro and wind power, with no parent in the US or China. Its product range is huge (web hosting, mail, kDrive, kChat, DNS, AI cloud, Swiss Backup, …) but its API is split between a documented public surface and a private manager-only one — which means automating real workflows usually requires a browser session, custom scripts, or both.
This project closes that gap by exposing everything through a single MCP server, so Claude or any other MCP client can run real account operations through natural language: provision a hosting, rotate a DNS record, create a mailbox, audit your domains for upcoming expirations, browse your kDrive — without ever forcing you to leave the chat or write a script.
🎒 Built in the open, in real time, by vibe-coding
This project was built rapidly by an LLM driving a terminal session ("vibe-coding"), with live tests against a real Infomaniak account at every step. It works perfectly on the maintainer's local setup and the full pipeline is green (TypeScript strict, ESLint, Prettier, 78 tests, build, CodeQL, gitleaks).
That said — given how it was built and given that several endpoints used here are reverse-engineered (see REVERSE-ENGINEERING.md) — it is entirely possible that you'll hit (potentially big) bugs depending on your account topology, plan tier, scopes, or Infomaniak's own changes. We are here to fix them as they show up. Please:
Open an issue with the exact tool call, the input, the response, and your environment (Node version, OS, MCP client). Sanitize tokens / cookies / customer names before pasting.
Or, even better, send a PR with a failing test and we will work from there together.
We move fast and ship often. Don't be shy.
⚠️ Status: unofficial
This project is not affiliated with, endorsed by, or sponsored by Infomaniak Network SA. It is a community-driven tool that combines:
The public Infomaniak API (api.infomaniak.com), used with a Bearer token you generate yourself.
Reverse-engineered manager endpoints (manager.infomaniak.com/proxy/...), required for write operations on web hosting that the public API silently ignores.
For full transparency, read REVERSE-ENGINEERING.md. Infomaniak may change these endpoints without notice; we do our best to keep up but cannot guarantee long-term compatibility.
What you can do with it
Once installed, you can ask Claude things like:
"List every domain on my account that expires in less than 60 days, sorted by date."
"Create a new site
staging.example.comon hostingWP1234567, PHP 8.3, root in/sites/staging.""Add a TXT record on
example.comfor the new Postmark DKIM, then verify it resolves.""How much disk does the database
myprefix_wp123456use, and which application is wired to it?""Create a mailbox
hello@example.comwith a 16-character random password and forward it to my Gmail.""Show me which kDrives I'm an admin on and how full they are."
"Audit my whole account: any locked product, expiring SSL, broken DNSSEC, ongoing operations?"
"Undo the last DNS change I made through this session."
It will not silently mutate anything destructive: every change goes through a plan + confirmation token round-trip. You stay in control even if the model gets creative.
Why "agentic" and not "wrapper"
Most MCP servers expose one tool per HTTP endpoint and call it a day. This one is built differently:
Guided dialogues — creating a site walks you through "which organization? which hosting? root domain or subdomain? what type? recap?" instead of asking you to know the right tool to call upfront.
Two-phase commit — every destructive operation returns a plan with a single-use confirmation token (60 s TTL). Nothing is mutated until you call back with the token.
Pre-flight checks — the server checks for conflicts (existing FQDN, busy hosting, expired domain) before hitting the API.
Actionable errors — every error tells you what happened, why, and the next step you can take.
Introspection —
infomaniak_overview,infomaniak_helpandinfomaniak_explaingive the agent context-on-demand instead of forcing it to memorize a tool catalog.Session memory —
infomaniak_historylists every destructive action of the current session, andinfomaniak_undoreverses the ones that are reversible.
See ARCHITECTURE.md for the full design rationale.
Install
Available on npm — the recommended path is to let npx fetch the latest release on demand:
npx infomaniak-mcp-agent(no install step needed; npx resolves the latest version on first invocation and caches it).
Or install globally if you prefer a stable binary in your $PATH:
npm install -g infomaniak-mcp-agentIf you'd rather pin to a specific commit (or hack on the source), install from this repo:
git clone https://github.com/Mogacode-ma/infomaniak-mcp-agent.git
cd infomaniak-mcp-agent
npm ci
npm run build
# resulting binary: ./dist/server.jsConfigure Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %AppData%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"infomaniak": {
"command": "npx",
"args": ["-y", "infomaniak-mcp-agent"],
"env": {
"INFOMANIAK_API_TOKEN": "paste-your-token-here",
"INFOMANIAK_AUTH_MODE": "auto"
}
}
}
}Restart Claude Desktop to pick up the change.
Configure Claude Code
claude mcp add infomaniak \
-e INFOMANIAK_API_TOKEN=paste-your-token-here \
-e INFOMANIAK_AUTH_MODE=auto \
-- npx -y infomaniak-mcp-agentAuthentication
Two distinct credentials are needed because Infomaniak runs two APIs side-by-side:
API | Auth | Purpose |
| Bearer token | Read-mostly: profile, products, mail, drive, dns, domains, billing |
| SASESSION cookie + CSRF token | Writes on web hosting (sites, databases, applications) |
1. Bearer token (required)
Sign in to your Infomaniak account.
Click "Create a token", give it a long lifetime, copy the value.
Set it in
INFOMANIAK_API_TOKEN.
2. Manager session (auto, recommended)
The manager-private API does not accept Bearer tokens or OAuth (Infomaniak only exposes openid profile email phone scopes to third-party apps; web, mail, etc. are reserved). Instead, we read the SASESSION and MANAGER-XSRF-TOKEN cookies that your local Chrome already has when you are logged into manager.infomaniak.com.
With INFOMANIAK_AUTH_MODE=auto (the default), the MCP reads these cookies on demand using chrome-cookies-secure. Nothing is ever written to disk; cookies live in memory for the duration of one operation.
When the session expires, simply reload manager.infomaniak.com in Chrome — the MCP will pick up the fresh cookies on the next call.
3. Manager session (manual fallback)
For headless environments or troubleshooting:
INFOMANIAK_AUTH_MODE=manual
INFOMANIAK_SASESSION=...
INFOMANIAK_XSRF_TOKEN=...To copy them: open Chrome DevTools on manager.infomaniak.com, Application → Cookies, copy SASESSION and MANAGER-XSRF-TOKEN (URL-encoded — paste as-is, the MCP decodes).
Quick example
A typical first conversation, end-to-end:
You: What's on my account?
Claude: [calls infomaniak_overview]
You have 16 organizations, 311 products: 47 web hostings, 73 domains,
12 mail hostings, 3 kDrives, 2 AI Tools subscriptions.
You: Any domain expiring soon?
Claude: [calls infomaniak_audit_account on each org]
2 domains expire in <30 days: example.com (April 22), demo.org (May 04).
4 SSL certificates were auto-renewed in the last 7 days. No locked products.
You: Create a TXT record on example.com saying "v=spf1 include:spf.example.net ~all".
Claude: [calls infomaniak_dns_create_record → returns plan + token]
Plan: CREATE TXT record on example.com → "v=spf1 include:spf.example.net ~all", TTL 3600.
Confirm with token abc-123 within 60 s.
You: Confirm.
Claude: [calls infomaniak_dns_create_record again with the token]
Done. Record id 84219113. Logged in session history (undoable).Tools
78 tools across 22 areas. Use infomaniak_help to fuzzy-search by intent, or infomaniak_explain to dump a tool's full JSON schema.
Introspection (start here)
Tool | Annotation | Purpose |
| read-only | Summary of organizations + products. Best first call. |
| read-only | Suggest tools matching a free-form intent ("create site", "list mailboxes"…). |
| read-only | Returns the full definition (description + schemas) of a specific tool. |
| read-only | Scan an organization for expirations / locked products / ongoing ops. |
| read-only | List destructive actions taken in this session. |
| destructive | Reverse a session action when reversible (two-phase commit). |
Organizations & products
Tool | Annotation | Purpose |
| read-only | Accounts you have technical access to. |
| read-only | Web hostings (classic + Node.js) for one organization. |
| read-only | Domains for one organization, with creation + expiration dates. |
| read-only | Detail of one domain (DNS managed?, DNSSEC, errors). |
Web hosting sites
Tool | Annotation | Purpose |
| read-only | Domain-first lookup. Resolves a public domain (e.g. |
| read-only | Sites on a given web hosting (with applications). |
| destructive | Two-phase: returns a plan + token, second call with token actually creates. |
| destructive | Two-phase delete (full preview of the site to be removed). |
Site aliases
Additional FQDNs bound to an existing site's Apache vhost / DocumentRoot — how you serve several domains from a single install without provisioning a new site.
Tool | Annotation | Purpose |
| read-only | FQDNs (main + aliases) bound to a site. |
| destructive | Bind one or more FQDNs (wildcards like |
| destructive | Unbind one alias FQDN (the main FQDN cannot be removed). Two-phase. |
SSL certificates
Tool | Annotation | Purpose |
| read-only | Current cert status ( |
| destructive | Two-phase. Issue or renew a cert. Three |
| destructive | Two-phase. Remove the cert from a site. Undo via |
Databases
Tool | Annotation | Purpose |
| read-only | MariaDB databases attached to a hosting (with disk usage). |
| read-only | Detail of one database. |
| destructive | Two-phase create. |
| destructive | Two-phase delete (plan shows disk usage + linked app). |
| read-only | MariaDB-level user accounts attached to a hosting ( |
| read-only | Detail of a single MariaDB user. |
| destructive | Rotate a MariaDB user's password and re-declare its grants atomically. Two-phase. |
| destructive | Change which databases a user can reach (read/write/admin per DB), password untouched. Two-phase. |
⚠️ Both tools take a
grantsarray that declares every database the user may access — anything omitted is set to no-access. Callinfomaniak_get_database_userfirst and copy the currentpermissions, or you will silently revoke access. This is deliberate: it is also the canonical way to revoke a grant.They use the manager-private endpoint rather than the public API on purpose. The public
PATCH /1/web_hostings/{id}/database_users/{user}accepts a password, changes it, and silently wipespermissionsandapplications— seeREVERSE-ENGINEERING.md§Database users.Prefer these tools over a direct MariaDB
ALTER USER/SET PASSWORDover SSH. The manager is the source of truth for hosting database credentials: a password set only in MariaDB diverges from it silently, and gets reverted to the manager's value at the next Infomaniak maintenance — which can be months later, with no apparent link to the change.
FTP / SSH users
Tool | Annotation | Purpose |
| read-only | FTP / SSH users on a web hosting. |
| destructive | Two-phase create with |
| destructive | Rotate an FTP/SSH user's password. Two-phase. Pass the user's current |
| destructive | Promote / demote a user between |
| destructive | Two-phase revoke (files preserved). |
DNS & DNSSEC
Tool | Annotation | Purpose |
| read-only | Every DNS record on an Infomaniak-managed zone. |
| destructive | Two-phase create record (A, AAAA, CNAME, MX, TXT, SRV, NS, CAA, PTR, SPF). |
| destructive | Two-phase update (current vs proposed diff in the plan). |
| destructive | Two-phase delete record (with full preview before commit). |
| mixed | Unified DNSSEC: |
Tool | Annotation | Purpose |
| read-only | Mail hostings for one organization. |
| read-only | Mailboxes on a given mail hosting. |
| read-only | Unified mailbox read: pass |
| destructive | Two-phase create with password policy enforcement. |
| destructive | Two-phase delete (also wipes stored mail). |
| destructive | Two-phase add alias to a mailbox. |
| read-only | Server-side mail redirection rules. |
| destructive | Two-phase create rule (forward |
| destructive | Two-phase delete rule. |
Identity ("who am I?")
Tool | Annotation | Purpose |
| read-only | Name, email, language, country, timezone, current account, security posture (2FA, devices, last login). |
| read-only | Focused security report — 2FA method + status, recovery email, validated phone, Yubikey, rescue codes, password age, trusted devices with IP/time. |
Account / Org (deep)
Tool | Annotation | Purpose |
| read-only | Full org detail: legal entity, billing addresses, VAT, locale, support tier, 2FA-required policy, your role, tags. |
| read-only | Teams (owners + counts) + tags (with products carrying each tag) in a single call. |
Mail (deep)
Tool | Annotation | Purpose |
| read-only | DNS health diagnostic (MX/SPF/DKIM/DMARC), quotas, admin, parent kSuite link, FQDNs, team access. |
| read-only | Auto-responder, aliases, IMAP/POP3 last login, password age, mailbox size, devices, DKIM, SMTP ban, mail filtering (commercials/social), authorized/blocked senders. |
Domain (deep)
Tool | Annotation | Purpose |
| read-only |
|
kDrive (deep, manager-private)
Tool | Annotation | Purpose |
| read-only | Drive name, total size, used size, maintenance. |
| read-only | Users with access to a kDrive (access audits). |
| read-only | Items in the trash bin with deletion timestamps. |
VPS / Cloud Server
Tool | Annotation | Purpose |
| read-only | List Cloud Server (Jelastic) products of an org. |
| read-only | Datacenter, IPs, CPU/RAM, bandwidth + traffic, disk usage, MySQL/PHP versions, firewall, premium support contacts, migration history. |
Node.js apps (Cloud Server hosting_3)
Tool | Annotation | Purpose |
| read-only | Discover the apps on a Node.js hosting. Returns each app's |
| read-only | Full app config: Node version, listen port, |
| read-only | Live status — |
| read-only | All FQDNs serving the app (primary + auto |
| read-only | Recent jobs (build / restart / …) with per-job log_stream JWT. |
| read-only | Returns a short-lived JWT + SSE endpoint URL to consume the live stdout/stderr stream of the running app. |
| read-only | Screenshot of the live page as a base64 JPEG — visual smoke test without HTTP-probing. |
| destructive | Two-phase. Start / stop / restart / build. |
All Node.js tools are manager-private (the public Bearer API exposes only a state-check for Node.js hostings). They require
INFOMANIAK_AUTH_MODE=auto(Chrome cookies) ormanual(SASESSION + MANAGER-XSRF-TOKEN env vars). SeeREVERSE-ENGINEERING.md§Node.js DevOps.
kDrive
Tool | Annotation | Purpose |
| read-only | All kDrives the account has access to (with quota). |
| read-only | Files / subfolders of a drive root or any folder, paginated. |
URL shortener
Tool | Annotation | Purpose |
| read-only | Short URLs configured on a domain. |
| read-only | Short URL quota used / available on a domain. |
| destructive | Two-phase create. |
Swiss Backup
Tool | Annotation | Purpose |
| read-only | Swiss Backup slots on the account. |
AI Tools
Tool | Annotation | Purpose |
| read-only | AI subscriptions the account owns. |
| read-only | Public catalogue of Swiss-sovereign LLM/STT models. |
Workflows (multi-step)
Tool | Annotation | Purpose |
| destructive | Site + DB + DNS in one orchestrated, plan-then-apply flow. |
| read-only | Cross-zone audit: missing SPF/DMARC, dangling records, …. |
Escape hatch (everything else)
Tool | Annotation | Purpose |
| destructive | Reach any endpoint on |
Limitations
Hard rate limit of 60 req/min on
api.infomaniak.com. The MCP throttles automatically with a token-bucket. You will see brief queueing delays on heavy bursts; this is intentional and protects your token from blacklisting.No
directoryoutside/sites/when creating a site. Required by the manager backend (silently no-ops otherwise — seeREVERSE-ENGINEERING.md).Manager session cookies expire (typically every few hours / when you sign out of Chrome). Re-open manager.infomaniak.com to refresh.
One concurrent operation per hosting — Infomaniak rejects concurrent POSTs on the same hosting with
400 operation_in_progress. The MCP serializes write calls per hosting.WordPress installation is intentionally out of scope. Create the empty site with this MCP, then install WP from the manager's wizard (the
applications/addflow uses an undocumented per-step wizard that is too brittle to automate cleanly today).
Roadmap
Shipped in v0.7 (current)
✅ Web hosting: list + create + delete sites, databases, FTP/SSH users
✅ DNS: full CRUD on records, DNSSEC enable/disable/check
✅ Mail: mailboxes, aliases, signatures, backups, redirections — all CRUD
✅ kDrive: list drives + browse files
✅ Swiss Backup: list slots
✅ AI Tools: list products + public model catalogue
✅ URL shortener: full CRUD
✅ Account audit: domains expiring soon, locked products, ongoing operations
✅ Workflow tools:
provision_site_full,audit_dns_zones✅
undo/historysession tools✅ Generic API escape hatch for any documented endpoint
Next (v0.8+)
⬜ kDrive write: upload, download, move, share, archive
⬜ Newsletter: campaigns, contacts (untouched today)
⬜ kChat: channels, threads, posts (no public API yet — needs reverse-engineering)
⬜ Workflow:
provision_wordpress_site(needs a WP install path that does not depend on the brittle manager wizard)⬜ Swiss Backup write: slot creation, schedules, restores
⬜ Per-tool happy-path tests to push coverage from 35% to 70%
⬜ MCPB packaging for one-click install in Claude Desktop
FAQ
Is this an official Infomaniak product?
No. It is community-driven, MIT-licensed, and not affiliated with, endorsed by, or sponsored by Infomaniak Network SA. See the disclaimers in NOTICE and REVERSE-ENGINEERING.md.
Does it work with clients other than Claude?
Yes. It speaks the standard Model Context Protocol over stdio, so it works with any MCP-capable client — Claude Desktop, Claude Code, Cursor, Cline, Continue, Zed AI, and the MCP Inspector for debugging.
Will my Infomaniak token / session ever leave my machine?
No. The server runs locally over stdio. Your Bearer token is read from INFOMANIAK_API_TOKEN (env or .env) and used only to call api.infomaniak.com. The Chrome cookies (SASESSION, MANAGER-XSRF-TOKEN) live in memory for the duration of a single tool call and are never persisted. Logs redact every sensitive value (tokens, cookies, passwords).
Does it support self-hosting / running outside macOS?
Yes — INFOMANIAK_AUTH_MODE=manual lets you paste cookies straight into env vars, which is the path to use on Linux servers, Docker containers, or CI. Auto-extraction from Chrome works on macOS, Windows, and Linux when Chrome is installed locally.
Why does site creation use a manager-private endpoint and not the public API?
Because the public POST /1/products/{id}/web_hostings/{hid}/sites endpoint silently returns a success response without actually creating anything. After reverse-engineering the manager bundle we found that the manager-private endpoint requires force_fqdn: true, directory: /sites/..., and environment: apache_php — none of which are documented. Full write-up in REVERSE-ENGINEERING.md.
Can it install WordPress automatically?
Not today. The manager's applications/add flow is a multi-step wizard with per-step tokens that is brittle to script. The recommended pattern is: create the empty site with this MCP, then install WordPress (or any other CMS) from the manager wizard or by uploading via FTP/SSH.
Is there a hosted / SaaS version?
No. By design — this server runs against your own credentials on your own machine. There is no hosted SaaS, no hosted proxy, no telemetry.
How do I report a bug or request a tool?
Open a GitHub issue. Include the exact tool call, the input, the response (sanitized — strip tokens, cookies, customer names), and your environment (Node version, OS, MCP client, plan tier). PRs with a failing test are doubly welcome.
What about Infomaniak's own AI Tools?
Infomaniak runs a Swiss-sovereign AI cloud hosting Llama, Mixtral, Whisper and other open-weights models. This MCP exposes infomaniak_list_ai_products and infomaniak_list_ai_models so an agent can discover what's available and what models are public on your account; we deliberately do not wrap their inference endpoints (use the OpenAI-compatible API directly for that).
Contributing
Contributions are welcome. Please read CONTRIBUTING.md and follow the CODE_OF_CONDUCT.md. Security issues should be reported privately per SECURITY.md.
If this saved you time
The fastest way to support the project is a ⭐ star on GitHub — it helps other Infomaniak users find this and tells me what to keep building.
You can also:
Open an issue for bugs, edge cases, or missing tools
Start a discussion for design or API questions
Share what you built with it — I'd love to hear
License
MIT — see NOTICE for the trademark disclaimer.
This project is not affiliated with Infomaniak Network SA. "Infomaniak", "kDrive", "kChat", "kMeet", "kSuite", "Swiss Backup" are trademarks of Infomaniak Network SA.
Available Tools
74 toolsinfomaniak_add_site_aliasesADestructive
Bind one or more additional FQDNs (including wildcards like *.example.com) to a web hosting site. Lets the site's Apache vhost / DocumentRoot serve those new domains too — no new site provisioning required. Two-phase commit. Asynchronous: returns a progress_id; the alias appears in infomaniak_list_site_aliases after a few seconds of provisioning. Manager-private.
| Name | Required | Description | Default |
|---|---|---|---|
| hosting_id | Yes | ||
| site_id | Yes | ||
| aliases | Yes | One 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_token | No | Token from the prior plan response. Required on the apply phase only. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_callADestructive
Escape hatch: call ANY Infomaniak public API endpoint (api.infomaniak.com) when no dedicated tool exists. GET runs immediately. POST/PUT/PATCH/DELETE follow the two-phase commit pattern. Manager-private (/proxy/...) endpoints are NOT reachable through this tool — use a typed tool instead.
| Name | Required | Description | Default |
|---|---|---|---|
| method | Yes | ||
| path | Yes | ||
| query | No | ||
| body | No | ||
| confirmation_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_accountARead-onlyIdempotent
Scan an Infomaniak organization for actionable issues: products expiring soon, products in maintenance, locked products, ongoing operations.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | No | Organization/account ID. Optional: defaults to the first account the token has access to. Discover via infomaniak_overview. | |
| days_ahead | No | Flag products expiring within this many days as warnings. Default 60. | |
| max_domain_checks | No | 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). |
Output Schema
| Name | Required | Description |
|---|---|---|
| account_id | Yes | |
| scanned_products | Yes | |
| findings | Yes | |
| summary_markdown | Yes |
TDQS
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.
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.
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.
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.
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.
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_zonesARead-onlyIdempotent
Bulk-read every domain owned by an account: number of DNS records and DNSSEC status per zone. Useful for spot-checking large fleets.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | No | Organization/account ID. Optional: defaults to the first account the token has access to. | |
| max_domains | No | Cap the number of domains scanned. Each domain requires 2 sequential API calls (records + dnssec). Default 20 keeps execution under ~30s. | |
| filter_contains | No | Filter domains by substring (case-insensitive). Use this for targeted audits (e.g. 'broz.be') to avoid scanning the entire fleet. |
Output Schema
| Name | Required | Description |
|---|---|---|
| account_id | Yes | |
| scanned | Yes | |
| zones | Yes | |
| summary_markdown | Yes |
TDQS
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.
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.
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.
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.
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.
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_databaseADestructive
Create a new MariaDB database on a web hosting. Two-phase commit. Goes through the manager-private API because the public one silently no-ops on database POSTs.
| Name | Required | Description | Default |
|---|---|---|---|
| hosting_id | Yes | Web hosting ID where the database will live. Discover via infomaniak_find_site(domain) or infomaniak_list_hostings. | |
| database_name | Yes | 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. | |
| description | No | Optional description shown in the manager UI (≤ 255 chars). | |
| confirmation_token | No | Token from the prior plan response. Required on the apply phase only. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_userADestructive
Create a new FTP / SSH user on a web hosting. Two-phase commit. Connection types: ftp (SFTP-only, no shell) or ssh (full shell + FTP). The password follows Infomaniak's default policy.
| Name | Required | Description | Default |
|---|---|---|---|
| hosting_id | Yes | Web hosting ID where the user will be created. Discover via infomaniak_list_hostings. | |
| login | Yes | 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. | |
| password | Yes | User password. Minimum 8 chars with at least one lowercase, one uppercase, one digit. Special character recommended but not required. | |
| connection_type | No | Access level. `ssh` = full shell + FTP/SFTP, `ftp` = SFTP-only (no interactive shell). Default `ftp` (safer). | ftp |
| home_directory | No | 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'. | / |
| confirmation_token | No | Token from the prior plan response. Required on the apply phase only. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_mailboxADestructive
Create a new mailbox on a mail hosting. Two-phase commit: plan + token first, then apply with token. The password never appears in the plan output.
| Name | Required | Description | Default |
|---|---|---|---|
| mail_hosting_id | Yes | Mail hosting ID. Discover via infomaniak_list_mail_hostings. | |
| mailbox_name | Yes | 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. | |
| password | Yes | 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. | |
| description | No | Optional free-text description (≤ 255 chars), shown in the manager UI. | |
| confirmation_token | No | Token from the prior plan response. Required on the apply phase only. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_aliasADestructive
Add a new alias to an existing mailbox. Two-phase commit. The alias will receive emails delivered to the underlying mailbox.
| Name | Required | Description | Default |
|---|---|---|---|
| mail_hosting_id | Yes | ||
| mailbox_name | Yes | ||
| alias | Yes | ||
| confirmation_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_redirectionBDestructive
Create a server-side mail redirection. Two-phase commit. Emails received at name@ will be forwarded to every address in targets.
| Name | Required | Description | Default |
|---|---|---|---|
| mail_hosting_id | Yes | Mail hosting ID. Discover via infomaniak_list_mail_hostings. | |
| name | Yes | 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. | |
| targets | Yes | Destination addresses, full emails. Every address must be valid. Multiple targets fan-out (each receives a copy). | |
| confirmation_token | No | Token from the prior plan response. Required on the apply phase only. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_urlADestructive
Create a new short URL pointing to a long target. Two-phase commit. Use infomaniak_short_urls_quota first if you're not sure you have headroom.
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | 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. | |
| confirmation_token | No | Token from the prior plan response. Required on the apply phase only. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_siteADestructive
Creates a new site on an Infomaniak web hosting. Two-phase commit: first call returns a plan with a confirmation_token, second call (same params + token) actually creates the site.
| Name | Required | Description | Default |
|---|---|---|---|
| hosting_id | Yes | ||
| fqdn | Yes | ||
| directory | No | ||
| environment | No | apache_php | |
| confirmation_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_certificateADestructive
Delete the SSL certificate of a site (the site will fall back to no HTTPS or Infomaniak's default cert until a new one is requested). Two-phase commit. The plan pulls the current certificate status so the caller can see what is about to be removed.
| Name | Required | Description | Default |
|---|---|---|---|
| hosting_id | Yes | Web hosting ID. Discover via infomaniak_find_site(domain) → hosting_id. | |
| site_id | Yes | Site ID on that hosting. Same source as hosting_id. | |
| confirmation_token | No | 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'. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_databaseADestructiveIdempotent
Delete a MariaDB database. Two-phase commit, manager-private API. WARNING: the database content (tables, rows) is wiped and cannot be recovered without an Infomaniak backup.
| Name | Required | Description | Default |
|---|---|---|---|
| hosting_id | Yes | Web hosting ID. Discover via infomaniak_find_site(domain) or infomaniak_list_hostings. | |
| database_name | Yes | 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. | |
| confirmation_token | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_userADestructiveIdempotent
Revoke a hosting user (FTP / SSH access). Two-phase commit. Existing files are not deleted.
| Name | Required | Description | Default |
|---|---|---|---|
| hosting_id | Yes | Web hosting ID. Discover via infomaniak_list_hostings. | |
| login | Yes | 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. | |
| confirmation_token | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_mailboxADestructiveIdempotent
Delete a mailbox. Two-phase commit. WARNING: this also deletes all stored emails for that mailbox.
| Name | Required | Description | Default |
|---|---|---|---|
| mail_hosting_id | Yes | Mail hosting ID. Discover via infomaniak_list_mail_hostings. | |
| mailbox_name | Yes | 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. | |
| confirmation_token | No | Token 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
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_redirectionADestructiveIdempotent
Delete a mail redirection. Two-phase commit.
| Name | Required | Description | Default |
|---|---|---|---|
| mail_hosting_id | Yes | Mail hosting ID. Discover via infomaniak_list_mail_hostings. | |
| name | Yes | 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. | |
| confirmation_token | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_siteADestructiveIdempotent
Delete a site from an Infomaniak web hosting. Two-phase commit: first call returns a plan with the site preview + token, second call (same params + token) actually deletes. WARNING: this also wipes the site directory on the FTP backend after a short grace period.
| Name | Required | Description | Default |
|---|---|---|---|
| hosting_id | Yes | Web hosting ID. Discover via infomaniak_find_site(domain) or infomaniak_list_hostings. | |
| site_id | Yes | Site ID on that hosting. Same source as hosting_id (infomaniak_find_site or infomaniak_list_sites). | |
| confirmation_token | No | 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). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_aliasADestructive
Remove one alias FQDN from a web hosting site (the main FQDN cannot be removed). Two-phase commit. After this, the site's Apache vhost will no longer respond to the alias. Manager-private.
| Name | Required | Description | Default |
|---|---|---|---|
| hosting_id | Yes | ||
| site_id | Yes | ||
| alias | Yes | The 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_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_recordADestructive
Create a DNS record on an Infomaniak-managed zone. Two-phase commit: first call returns a plan + token, second call (same params + token) actually creates the record.
| Name | Required | Description | Default |
|---|---|---|---|
| zone | Yes | 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). | |
| source | Yes | Subdomain part (e.g. 'www', 'mail') or '.' for the zone apex. Do NOT include the zone itself. | |
| type | Yes | Record type as enum: A, AAAA, CNAME, MX, TXT, NS, SRV, CAA, PTR. Must be UPPERCASE. | |
| target | Yes | Record value. For MX and SRV, embed the priority inline as Infomaniak does, e.g. '5 mta-gw.infomaniak.ch'. | |
| ttl | No | Time-to-live in seconds. Min 60, max 86400 (24h). Default 3600 (1h). | |
| confirmation_token | No | Token from the prior plan response. Required on the apply phase only. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_recordADestructiveIdempotent
Delete a DNS record from an Infomaniak-managed zone. Two-phase commit: first call returns a plan with a preview of the record to delete + token, second call (same params + token) actually deletes.
| Name | Required | Description | Default |
|---|---|---|---|
| zone | Yes | DNS zone (root domain) the record belongs to, e.g. 'broz.be'. Must be a domain whose DNS is managed by Infomaniak. | |
| record_id | Yes | Numeric id of the record to delete. Get it from infomaniak_dns_list_records → records[].id. NOT the record name or source. | |
| confirmation_token | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_recordsARead-onlyIdempotent
List every DNS record on a zone managed by Infomaniak. Use the root domain (e.g. 'example.com'), not a subdomain.
| Name | Required | Description | Default |
|---|---|---|---|
| zone | Yes | Zone (root domain), e.g. 'example.com' |
Output Schema
| Name | Required | Description |
|---|---|---|
| zone | Yes | |
| count | Yes | |
| records | Yes |
TDQS
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.
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.
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.
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.
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.
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_recordADestructiveIdempotent
Update one or more fields of a DNS record. Two-phase commit: first call shows current vs proposed values + token; second call (same params + token) applies the update.
| Name | Required | Description | Default |
|---|---|---|---|
| zone | Yes | ||
| record_id | Yes | ||
| source | No | ||
| type | No | ||
| target | No | ||
| ttl | No | ||
| confirmation_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_explainARead-onlyIdempotent
Returns the full definition of a specific tool — description, annotations, input parameters and output shape.
| Name | Required | Description | Default |
|---|---|---|---|
| tool | Yes | Name of the tool to explain (e.g. 'infomaniak_overview'). |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | Yes | |
| description | Yes | |
| annotations | No | |
| input_schema | Yes | |
| output_schema | No |
TDQS
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.
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.
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.
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.
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.
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_siteARead-onlyIdempotent
Locate a domain (e.g. broz.be) in the Infomaniak account tree. Returns {account_id, hosting_id, site_id, hosting_label, full site object}. Use this BEFORE any tool that requires hosting_id + site_id (get_certificate, request_certificate, list_databases, etc.) when you only know the domain name. Significantly cheaper than calling list_hostings + list_sites manually because it short-circuits on the first match.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Public domain to locate. Accepts root domains (broz.be) or sub-domains (crm.coden.lu). Punycode (xn--...) is fine. | |
| account_id | No | Optional account_id to restrict the lookup. Omit to scan every account the token has access to. |
Output Schema
| Name | Required | Description |
|---|---|---|
| found | Yes | |
| domain | Yes | |
| account_id | No | |
| hosting_id | No | |
| hosting_label | No | |
| site_id | No | |
| site | No | |
| scanned_hostings | Yes | |
| hint | No |
TDQS
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.
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.
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.
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.
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.
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_fullARead-onlyIdempotent
Full organization detail: legal entity, billing address(es), VAT, locale, timezone, logo URLs, support tier (premium=2), 2FA-required policy, your role (owner/admin/billing/user), user/owner counts, tags. Manager-private.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | Account/organization id. Discover via infomaniak_list_organizations. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| name | Yes | |
| legal_entity_type | No | |
| website | No | |
| phone | No | |
| vat_number | No | |
| locale | No | |
| timezone | No | |
| logo | No | |
| logo_square | No | |
| support_level | No | |
| has_2fa_required | No | |
| beta | No | |
| type | No | "owner" | "admin" | "billing" | "user" — your role. |
| billing | No | |
| mailing | No | |
| workspace_only | No | |
| no_access | No | |
| is_blocked | No | |
| is_customer | No | |
| is_sso | No | |
| nb_users | No | |
| count_owners | No | |
| has_customer_paiement_method | No | |
| addresses | No | |
| tags | No | |
| created_at | No |
TDQS
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.
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.
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.
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.
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.
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_certificateARead-onlyIdempotent
Return the full SSL certificate detail for one site on a web hosting: provisioning state (installed, updating, error, …), type (free/paid/custom) and sub-type (lets_encrypt, …), issuer + organization, validity flags (is_valid, is_expired, is_selfsigned), issue and expiry timestamps, SHA-256 fingerprint, main FQDN in IDN form, ACME identifier errors and the timestamp of the last issuance attempt.
| Name | Required | Description | Default |
|---|---|---|---|
| hosting_id | Yes | ||
| site_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| site_id | Yes | |
| status | Yes | |
| type | No | |
| sub_type | No | |
| issuer | No | |
| organization | No | |
| main_fqdn | No | |
| main_fqdn_idn | No | |
| emitted_at | No | |
| expired_at | No | |
| fingerprint_sha256 | No | |
| is_valid | No | |
| is_expired | No | |
| is_selfsigned | No | |
| ignored_identifiers | No | |
| error_identifiers | No | |
| error_on_certificate | No | |
| last_attempt_at | No |
TDQS
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.
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.
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.
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.
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.
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_databaseARead-onlyIdempotent
Get the full detail of a specific database (disk usage, application, permissions, backups).
| Name | Required | Description | Default |
|---|---|---|---|
| hosting_id | Yes | ||
| database_name | Yes | Database name as listed by infomaniak_list_databases (e.g. 'myprefix_WP123456') |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | Yes | |
| description | No | |
| application | No | |
| disk_used | No | |
| permissions | No | |
| backups | No | |
| operation_in_progress | No |
TDQS
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.
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.
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.
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.
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.
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_userARead-onlyIdempotent
Fetch the detail of a single MariaDB-level user (applications, permissions, link to phpMyAdmin).
| Name | Required | Description | Default |
|---|---|---|---|
| hosting_id | Yes | ||
| user_name | Yes | Full user name including the hosting prefix |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | Yes | |
| applications | No | |
| permissions | No | |
| is_temporary | No | |
| operation_in_progress | No | |
| is_unlocked | No | |
| protected | No | |
| protected_information | No | |
| link | No |
TDQS
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.
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.
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.
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.
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.
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_domainARead-onlyIdempotent
Get detailed information about a domain (DNS management status, DNSSEC, IDN, errors).
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The domain name, e.g. 'example.com' |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| customer_name | Yes | |
| is_dns_managed_by_infomaniak | No | |
| is_external | No | |
| has_dnssec | No | |
| is_dnssec_pending | No | |
| has_error | No | |
| has_trustee_contact | No | |
| has_whois_antispam | No | |
| is_part_of_ksuite | No | |
| is_premium | No | |
| is_idn | No | |
| puny_code | No |
TDQS
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.
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.
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.
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.
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.
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_fullARead-onlyIdempotent
Full domain detail including auth_code (EPP transfer code), transfer_status, trade_status, termination state, glue records, TLD/registry info, attached service (web hosting), DNS detail, DNS health diagnostic, owner (registrant), associated products on the domain AND its subdomains, and the DNS logs API URL. Accepts either domain_id or FQDN. Manager-private.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Either the numeric domain id (e.g. '1938345') OR the FQDN (e.g. 'agensea.net'). Both work. Discover via infomaniak_list_domains. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| customer_name | Yes | |
| puny_code | No | |
| has_dnssec | No | |
| has_error | No | |
| has_trustee_contact | No | |
| has_whois_antispam | No | |
| info | No | |
| is_city_domain | No | |
| is_dns_managed_by_infomaniak | No | |
| is_dnssec_pending | No | |
| is_external | No | |
| is_idn | No | |
| is_part_of_ksuite | No | |
| is_premium | No | |
| is_service_mail_domain_alias | No | |
| is_service_mail_on_other_account | No | |
| is_synonym | No | |
| auth_code | No | |
| restorable | No | |
| transfer_status | No | |
| trade_status | No | |
| termination | No | |
| domain_status | No | |
| glue_records | No | |
| tld | No | |
| registry | No | |
| owner | No | |
| service | No | |
| dns | No | |
| associated_products | No | |
| subdomain_associated_products | No | |
| has_mail | No | |
| has_infomaniak_dns | No | |
| use_custom_url | No | |
| diagnostic_dns | No | |
| dns_logs_api_url | No | |
| authcode_quota | No | |
| extra_fields | No | |
| options | No | |
| rights | No | |
| error | No | |
| synonym | No | |
| synonyms | No | |
| users | No | |
| status | No | |
| product | No |
TDQS
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.
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.
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.
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.
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.
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_fullARead-onlyIdempotent
Full kDrive detail: name, total size (bytes), used size, creation/update timestamps, maintenance flag. Useful for storage usage monitoring. Manager-private — distinct from the existing infomaniak_list_drives which hits the public Bearer API.
| Name | Required | Description | Default |
|---|---|---|---|
| drive_id | Yes | kDrive id. Discover via infomaniak_list_drives. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| name | Yes | |
| size | Yes | |
| used_size | Yes | |
| created_at | Yes | |
| updated_at | No | |
| in_maintenance | No | |
| maintenance_at | No |
TDQS
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.
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.
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.
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.
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.
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_fullARead-onlyIdempotent
Full mailbox detail: auto-responder (vacation reply) state + content, aliases, redirections, IMAP/POP3 last login, password age, size on disk, trusted devices count, DKIM signature flag, SMTP ban status, Gmail-style filtering (commercials/social_networks), authorized/blocked senders, attached users + teams. Useful for mailbox audits and onboarding flows. Manager-private.
| Name | Required | Description | Default |
|---|---|---|---|
| mail_hosting_id | Yes | ||
| mailbox_name | Yes | Local part of the mailbox (e.g. 'anthony' for anthony@coden.lu). |
Output Schema
| Name | Required | Description |
|---|---|---|
| mailbox_name | Yes | |
| mailbox | Yes | |
| mailbox_idn | No | |
| note | No | |
| type | No | |
| is_limited | No | |
| is_free_mail | No | |
| is_used_for_account | No | |
| count_signatures | No | |
| count_invitations | No | |
| count_devices | No | |
| has_auto_responder | No | |
| auto_responder | No | |
| has_redirection | No | |
| redirection | No | |
| aliases | No | |
| full_aliases | No | |
| created_at | No | |
| password_last_changed_at | No | |
| size | No | Mailbox size on disk in bytes. |
| size_checked_at | No | |
| imap_last_login_at | No | |
| pop3_last_login_at | No | |
| users | No | |
| teams | No | |
| has_move_spam | No | |
| authorized_senders | No | |
| blocked_senders | No | |
| has_dkim_signature | No | |
| smtpban_bounce | No | |
| smtpban_auth | No | |
| smtpban_url | No | |
| has_mail_filtering | No | |
| mail_filtering_folder_commercials | No | |
| mail_filtering_folder_social_networks | No | |
| has_legacy_device | No | |
| has_multi_password | No | |
| external_mail_flag_enabled | No | |
| count_users | No |
TDQS
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.
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.
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.
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.
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.
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_infoARead-onlyIdempotent
Read mailbox metadata in one call. Pick any subset of {aliases, signatures, backups} via the fields argument; the tool hits only the corresponding endpoints in parallel. Replaces the v0.9 trio get_mailbox_aliases / get_mailbox_signatures / get_mailbox_backups with no loss of capability.
| Name | Required | Description | Default |
|---|---|---|---|
| mail_hosting_id | Yes | Mail hosting ID. Discover via infomaniak_list_mail_hostings. | |
| mailbox_name | Yes | Local part of the mailbox (the part before @, e.g. 'anthony' for anthony@coden.lu). NOT the full email address. | |
| fields | No | Sections to fetch. Each adds one API call. Omit to fetch all three. |
Output Schema
| Name | Required | Description |
|---|---|---|
| mail_hosting_id | Yes | |
| mailbox_name | Yes | |
| fields | Yes | |
| aliases | No | |
| signatures | No | |
| backups | No | |
| errors | No |
TDQS
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.
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.
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.
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.
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.
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_fullARead-onlyIdempotent
Full mail hosting detail with diagnostic_dns (MX/SPF/DKIM/DMARC health check), quotas (mailboxes + redirections + per-mailbox disk), admin user, parent kSuite link, FQDN list, and team access flag. Use this for mail-config sanity checks. Manager-private.
| Name | Required | Description | Default |
|---|---|---|---|
| mail_hosting_id | Yes | Mail hosting id. Discover via infomaniak_list_mail_hostings. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| account_id | Yes | |
| service_id | Yes | |
| service_name | Yes | |
| customer_name | Yes | |
| internal_name | No | |
| created_at | Yes | |
| expired_at | No | |
| has_maintenance | No | |
| is_locked | No | |
| has_operation_in_progress | No | |
| tags | No | |
| unique_id | No | |
| description | No | |
| is_free | No | |
| is_zero_price | No | |
| is_trial | No | |
| rights | No | |
| parent_id | No | |
| parent_service_id | No | |
| parent_service_name | No | |
| total | No | |
| quota | No | |
| used | No | |
| redirections_quota | No | |
| redirections_target_quota | No | |
| redirections_used | No | |
| admin | No | |
| fqdn | No | |
| main_fqdn | No | |
| main_fqdn_idn | No | |
| main_fqdn_source | No | |
| diagnostic_dns | No | |
| dns_error | No | |
| has_multi_password | No | |
| has_new_creation_flow | No | |
| has_team_access | No | |
| signature_template_forced_state | No | |
| mailing_lists_configuration | No | |
| batch_action | No | |
| status | No | |
| bill_reference | No | |
| bill_periodicity | No |
TDQS
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.
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.
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.
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.
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.
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_profileARead-onlyIdempotent
Get the identity of the currently-authenticated Infomaniak user: name, email, language, country, timezone, current_account_id (= the organization being managed by default), and the full security posture (2FA status, recovery email, validated phone, trusted devices, last login). Use this first to confirm which user + account the MCP is acting on behalf of. Manager-private — requires SASESSION cookie.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| display_name | Yes | |
| first_name | No | |
| last_name | No | |
| Yes | ||
| is_sso | No | |
| avatar | No | |
| login | No | Internal Infomaniak login (e.g. PR00793). |
| preferences | No | |
| phones | No | |
| emails | No |
TDQS
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.
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.
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.
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.
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.
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_securityARead-onlyIdempotent
Security posture report for the current user: 2FA status & method, recovery email, validated phone, Yubikey, remaining rescue codes, last login timestamp, password age, and the list of trusted (auth-paired) devices with their last connection IP and time. Useful as a periodic security review or pre-action sanity check. Manager-private.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| score | Yes | |
| score_max | Yes | |
| twofa_enabled | Yes | |
| twofa_method | No | |
| has_recovery_email | Yes | |
| has_valid_phone | Yes | |
| yubikey | Yes | |
| authenticator | Yes | |
| remaining_rescue_codes | No | |
| last_login_at_iso | No | |
| password_last_changed_iso | No | |
| trusted_devices_count | Yes | |
| trusted_devices | Yes |
TDQS
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.
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.
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.
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.
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.
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_appARead-onlyIdempotent
Get full configuration of a Node.js application: Node version, listen port, start_command, build_command, public IPs (v4 + v6), SSL status, primary FQDN, preview URL, directory on disk, and disk usage. Manager-private — requires SASESSION + CSRF cookies.
| Name | Required | Description | Default |
|---|---|---|---|
| hosting_id | Yes | Node.js hosting id. | |
| vhost_route_id | Yes | The vhost_route_id of the app — get it from `infomaniak_list_nodejs_apps`. Also called `feature_id` in some responses. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| unique_id | No | |
| service_id | No | |
| customer_name | No | |
| tags | No | |
| feature_id | Yes | |
| has_maintenance | No | |
| main_fqdn | Yes | |
| is_main_preview | No | |
| preview_url | No | |
| directory | Yes | |
| is_protected | No | |
| ssl_status | No | |
| ips | No | |
| storage | No | |
| environment | No | |
| state | Yes | |
| created_at | No |
TDQS
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.
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.
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.
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.
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.
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_fullARead-onlyIdempotent
Full VPS / Cloud Server detail: location (datacenter), managed/lite flags, IPv4 + IPv6, CPU/RAM/perf, bandwidth + traffic, disk usage (total/assigned/used/database), website/hosting counts, MySQL version + database type, PHP versions, firewall config, premium support contacts (email/url/emergency), migration history. Use after infomaniak_list_vps to drill into one server. Manager-private.
| Name | Required | Description | Default |
|---|---|---|---|
| vps_id | Yes | VPS id. Discover via infomaniak_list_vps. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| account_id | Yes | |
| service_id | No | |
| service_name | No | |
| customer_name | Yes | |
| internal_name | No | |
| location | No | |
| managed | No | |
| lite | No | |
| cloud | No | |
| cloud_version | No | |
| cpu | No | |
| ram | No | |
| perf | No | |
| ip_v4 | No | |
| ip_v6 | No | |
| bandwidth | No | |
| trafic | No | |
| has_default_blocked_rdp | No | |
| pack | No | |
| is_renewable | No | |
| mysql | No | |
| mysql_version | No | |
| database_type | No | |
| database_upgrade | No | |
| php_versions | No | |
| can_migrate | No | |
| os_version | No | |
| can_migrate_db | No | |
| total_website | No | |
| used_website | No | |
| total_dedicated_ip | No | |
| used_dedicated_ip | No | |
| total_hosting_web | No | |
| used_hosting_web | No | |
| total_disk_space | No | |
| total_disk_space_assigned | No | |
| total_disk_space_used | No | |
| total_disk_database_used | No | |
| firewall | No | |
| premium_support | No | |
| premium_support_mail | No | |
| premium_support_emergency | No | |
| premium_support_url | No | |
| expired_at | No | |
| bill_periodicity | No | |
| bill_reference | No | |
| migration_start | No | |
| migration_origin_id | No | |
| migration_end | No |
TDQS
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.
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.
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.
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.
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.
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_helpARead-onlyIdempotent
Suggest which Infomaniak tools to use for a given intent expressed in natural language. Lightweight keyword matching against tool names and descriptions.
| Name | Required | Description | Default |
|---|---|---|---|
| intent | Yes | Free-form description of what you want to do, in any language. | |
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| intent | Yes | |
| suggestions | Yes | |
| next_step_markdown | Yes |
TDQS
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.
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.
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.
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.
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.
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_historyARead-onlyIdempotent
List the destructive actions taken in the current session, most recent first. Each entry includes whether it can be reversed via infomaniak_undo.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| entries | Yes |
TDQS
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.
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.
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.
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.
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.
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_modelsARead-onlyIdempotent
List the public catalogue of LLM/STT/embedding models hosted by Infomaniak (Mixtral, Llama variants, Whisper, …). Useful to know what to target with the OpenAI-compatible chat endpoint.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| models | Yes |
TDQS
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.
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.
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.
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.
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.
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_productsARead-onlyIdempotent
List the Infomaniak AI products the account owns. If empty, the user has not subscribed to any AI plan; subscribe at https://www.infomaniak.com/en/hosting/ai-tools.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| products | Yes |
TDQS
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.
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.
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.
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.
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.
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_databasesARead-onlyIdempotent
List every MariaDB database attached to a web hosting (with disk usage and any running operations).
| Name | Required | Description | Default |
|---|---|---|---|
| hosting_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| hosting_id | Yes | |
| count | Yes | |
| databases | Yes |
TDQS
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.
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.
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.
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.
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.
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_usersARead-onlyIdempotent
List the MariaDB-level user accounts attached to a web hosting (each has its own password and a permissions array listing the databases they can read/write/administer). For WordPress sites the user account has the same name as its database and is marked protected: true.
| Name | Required | Description | Default |
|---|---|---|---|
| hosting_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| hosting_id | Yes | |
| count | Yes | |
| users | Yes |
TDQS
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.
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.
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.
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.
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.
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_domainsARead-onlyIdempotent
List every domain owned by an Infomaniak organization, with creation and expiration dates.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | No | Organization/account ID. Optional: defaults to the first account the token has access to. Discover via infomaniak_overview. |
Output Schema
| Name | Required | Description |
|---|---|---|
| account_id | Yes | |
| count | Yes | |
| domains | Yes |
TDQS
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.
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.
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.
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.
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.
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_filesARead-onlyIdempotent
List files and subfolders of a kDrive root or a specific folder. Supports pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| drive_id | Yes | ||
| parent_id | No | Folder id to list inside. Omit to list the drive's root. | |
| per_page | No | ||
| page | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| drive_id | Yes | |
| page | Yes | |
| per_page | Yes | |
| count | Yes | |
| files | Yes |
TDQS
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.
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.
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.
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.
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.
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_drivesARead-onlyIdempotent
List every kDrive the account has access to.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | No | Organization/account ID. Optional: defaults to the first account the token has access to. Discover via infomaniak_overview. |
Output Schema
| Name | Required | Description |
|---|---|---|
| account_id | Yes | |
| count | Yes | |
| drives | Yes |
TDQS
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.
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.
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.
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.
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.
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_trashARead-onlyIdempotent
List the items currently in the kDrive trash bin (files and folders). Each item shows when it was deleted and when added to the drive. Use this to audit what's pending hard-deletion. Manager-private.
| Name | Required | Description | Default |
|---|---|---|---|
| drive_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| drive_id | Yes | |
| count | Yes | |
| items | Yes |
TDQS
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.
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.
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.
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.
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.
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_usersARead-onlyIdempotent
List the users with access to a kDrive. Useful for access audits — who can touch what's in this drive. Manager-private.
| Name | Required | Description | Default |
|---|---|---|---|
| drive_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| drive_id | Yes | |
| count | Yes | |
| users | Yes |
TDQS
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.
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.
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.
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.
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.
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_hostingsARead-onlyIdempotent
Lists web hostings (classic + Node.js) for a given Infomaniak organization. Use infomaniak_list_organizations first to discover account IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | No | Organization/account ID. Optional: if omitted, falls back to the first account the token has access to. Use infomaniak_overview to enumerate. | |
| include_nodejs | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| account_id | Yes | |
| hostings | Yes |
TDQS
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.
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.
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.
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.
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.
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_usersARead-onlyIdempotent
List the FTP / SSH users that have access to a web hosting (with environment and SSH flag).
| Name | Required | Description | Default |
|---|---|---|---|
| hosting_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| hosting_id | Yes | |
| count | Yes | |
| users | Yes |
TDQS
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.
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.
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.
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.
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.
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_mailboxesARead-onlyIdempotent
List every mailbox on a given mail hosting.
| Name | Required | Description | Default |
|---|---|---|---|
| mail_hosting_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| mail_hosting_id | Yes | |
| count | Yes | |
| mailboxes | Yes |
TDQS
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.
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.
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.
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.
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.
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_hostingsARead-onlyIdempotent
List every mail hosting (a.k.a. email_hosting) attached to an Infomaniak organization.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | No | Organization/account ID. Optional: defaults to the first account the token has access to. Discover via infomaniak_overview. |
Output Schema
| Name | Required | Description |
|---|---|---|
| account_id | Yes | |
| count | Yes | |
| mail_hostings | Yes |
TDQS
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.
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.
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.
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.
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.
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_appsARead-onlyIdempotent
List Node.js applications running on a hosting_3 (Cloud Server Node.js) container. Each Infomaniak Node.js hosting runs a single app, so this typically returns one entry. Returns the vhost_route_id needed for every other Node.js tool, and the FQDNs serving the app. Manager-private endpoint — requires SASESSION + CSRF cookies (set INFOMANIAK_AUTH_MODE=auto).
| Name | Required | Description | Default |
|---|---|---|---|
| hosting_id | Yes | Node.js hosting id (service_id 57). |
Output Schema
| Name | Required | Description |
|---|---|---|
| hosting_id | Yes | |
| hosting_name | Yes | |
| hosting_state | Yes | |
| apps | Yes |
TDQS
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.
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.
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.
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.
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.
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_organizationsARead-onlyIdempotent
Lists all Infomaniak organizations (accounts) the current token has technical access to.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| organizations | Yes |
TDQS
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.
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.
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.
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.
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.
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_redirectionsARead-onlyIdempotent
List every server-side redirection rule on a mail hosting.
| Name | Required | Description | Default |
|---|---|---|---|
| mail_hosting_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| mail_hosting_id | Yes | |
| count | Yes | |
| redirections | Yes |
TDQS
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.
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.
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.
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.
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.
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_urlsARead-onlyIdempotent
List the short URLs created by your account on Infomaniak's url-shortener service.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| per_page | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| page | Yes | |
| per_page | Yes | |
| count | Yes | |
| short_urls | Yes |
TDQS
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.
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.
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.
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.
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.
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_aliasesARead-onlyIdempotent
List the FQDNs (main + aliases) bound to a web hosting site. The site responds to all of them via the same Apache vhost / DocumentRoot — adding an alias is how you serve more domains from a single WordPress install without provisioning a new site. Manager-private.
| Name | Required | Description | Default |
|---|---|---|---|
| hosting_id | Yes | Web hosting id. Discover via infomaniak_list_hostings / infomaniak_find_site. | |
| site_id | Yes | Site id on the hosting. Discover via infomaniak_find_site. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hosting_id | Yes | |
| site_id | Yes | |
| count | Yes | |
| main_fqdn | No | |
| aliases | Yes |
TDQS
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.
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.
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.
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.
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.
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_sitesARead-onlyIdempotent
Lists all sites on a given web hosting (with applications attached).
| Name | Required | Description | Default |
|---|---|---|---|
| hosting_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| hosting_id | Yes | |
| sites | Yes |
TDQS
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.
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.
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.
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.
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.
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_backupsARead-onlyIdempotent
List Swiss Backup subscriptions on an Infomaniak organization (Acronis-based managed backup).
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | No | Organization/account ID. Optional: defaults to the first account the token has access to. Discover via infomaniak_overview. |
Output Schema
| Name | Required | Description |
|---|---|---|
| account_id | Yes | |
| count | Yes | |
| swiss_backups | Yes |
TDQS
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.
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.
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.
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.
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.
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_tagsARead-onlyIdempotent
List the teams (with owners + user/product counts) AND the tags (with products carrying each tag) of an organization, in a single call. Both are useful to understand how an org partitions access and labels its products. Manager-private.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| teams | Yes | |
| teams_count | Yes | |
| tags | Yes | |
| tags_count | Yes |
TDQS
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.
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.
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.
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.
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.
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_vpsARead-onlyIdempotent
List the VPS (Cloud Server, Jelastic-managed) products of an organization. Returns id, customer_name, internal_name (the server hostname), location, cloud_version, managed/lite flags, billing. Use this before infomaniak_get_vps_full to find the id of a specific server. Manager-private.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | Account id. Discover via infomaniak_list_organizations. |
Output Schema
| Name | Required | Description |
|---|---|---|
| account_id | Yes | |
| count | Yes | |
| vps | Yes |
TDQS
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.
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.
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.
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.
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.
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_dnssecAIdempotent
Unified DNSSEC management for a domain: check (read state + KSK/DS records), enable (publish DS record at registry), or disable (remove DS record). enable and disable use a two-phase commit: the first call returns a plan + confirmation_token (TTL ~60s), the second call applies the change. Replaces the v0.9 trio dnssec_check / dnssec_enable / dnssec_disable with no loss of capability.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Public domain to operate on (e.g. 'broz.be'). Must be a domain registered through or managed by this Infomaniak account. | |
| action | No | Operation to perform. `check` is read-only (default). `enable`/`disable` are destructive and require the two-phase commit (confirmation_token). | check |
| confirmation_token | No | Required for `enable`/`disable` after receiving a plan. Pass the token from the previous (plan) response within 60 seconds. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_actionADestructive
Start, stop, restart, or build a Node.js application. Two-phase commit: first call returns a plan + token, second call (with the token + same args) applies. stop causes downtime until next start. build triggers a build job and returns its log_stream so you can tail the output. Manager-private.
| Name | Required | Description | Default |
|---|---|---|---|
| hosting_id | Yes | ||
| vhost_route_id | Yes | ||
| action | Yes | `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_token | No | Token from the prior plan response. Required on the apply phase. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_aliasesARead-onlyIdempotent
List the FQDNs (domain names) serving a Node.js application. Returns the primary FQDN plus the automatic preview URL (xxx.preview.hosting-ik.com). Manager-private.
| Name | Required | Description | Default |
|---|---|---|---|
| hosting_id | Yes | ||
| vhost_route_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| aliases | Yes |
TDQS
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.
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.
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.
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.
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.
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_jobsARead-onlyIdempotent
List the recent jobs that ran for a Node.js app (builds, restarts, etc.) with their status and a JWT-protected log_stream endpoint per job. Manager-private.
| Name | Required | Description | Default |
|---|---|---|---|
| hosting_id | Yes | ||
| vhost_route_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| jobs | Yes | |
| total | Yes |
TDQS
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.
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.
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.
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.
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.
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_logsARead-only
Get credentials to consume the LIVE stdout/stderr stream of a Node.js application. Returns a one-shot JWT (valid ~1h) and the endpoint URL on manager-logs-01.hosting-ik.com. The stream itself is Server-Sent Events: consume with curl -N -H 'Authorization: Bearer <jwt>' <endpoint>. To fetch a single snapshot, kill the curl after a few lines. Manager-private.
| Name | Required | Description | Default |
|---|---|---|---|
| hosting_id | Yes | ||
| vhost_route_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| endpoint | Yes | URL of the live log stream — Server-Sent Events on manager-logs-01.hosting-ik.com. |
| jwt_token | Yes | Short-lived bearer JWT (~1h) — pass as `Authorization: Bearer <token>` when connecting to the endpoint. |
| expires_at_iso | Yes | ISO timestamp of JWT expiry, decoded from the token's `exp` claim. |
| consumer_hint | Yes | Suggested consumer: `curl -N -H 'Authorization: Bearer <jwt>' <endpoint>` or an EventSource with a custom header. |
TDQS
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.
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.
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.
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.
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.
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_statusARead-onlyIdempotent
Get the live status of a Node.js application — Running or Stopped. Cheap call, safe to poll. Manager-private — requires SASESSION + CSRF cookies.
| Name | Required | Description | Default |
|---|---|---|---|
| hosting_id | Yes | ||
| vhost_route_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | Live status: "Running" | "Stopped" | other |
TDQS
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.
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.
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.
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.
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.
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_thumbnailARead-onlyIdempotent
Get a screenshot of the running Node.js app as a base64 JPEG data URL. Useful to visually confirm the app is alive without HTTP-probing. Set refresh=true to force a fresh screenshot. Manager-private.
| Name | Required | Description | Default |
|---|---|---|---|
| hosting_id | Yes | ||
| vhost_route_id | Yes | ||
| refresh | No | Ask the manager to re-screenshot the page (slower). Default false (cached). |
Output Schema
| Name | Required | Description |
|---|---|---|
| blob | Yes | Data URL (data:image/jpeg;base64,...) ready to embed in markdown. |
TDQS
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.
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.
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.
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.
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.
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_overviewARead-onlyIdempotent
Returns a summary of all Infomaniak organizations and products you have access to. Best called first in a session.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| total_accounts | Yes | |
| total_products | Yes | |
| accounts | Yes | |
| summary_markdown | Yes |
TDQS
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.
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.
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.
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.
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.
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_fullADestructive
Provision a complete website end-to-end: web site + MariaDB database + DNS A record. Two-phase commit at the workflow level. The plan lists every step that will run; on apply, each step is executed and reported in order so you can see partial completion if anything fails mid-way.
| Name | Required | Description | Default |
|---|---|---|---|
| hosting_id | Yes | Web hosting ID where the new site lives. Discover via infomaniak_list_hostings. | |
| fqdn | Yes | 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. | |
| database_name | Yes | MariaDB database to create alongside the site. Alphanumeric + underscores only (no dots / dashes), 1-64 chars. Hosting prefix prepended automatically. | |
| zone | No | 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'. | |
| target_ipv4 | No | 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. | 185.177.62.161 |
| ttl | No | TTL of the A record in seconds. 60 to 86400 (24h). Default 3600 (1h). | |
| skip_dns | No | If true, the DNS step is skipped. Use when DNS is managed elsewhere (Cloudflare, OVH, etc.) and you only want the site + database provisioned. | |
| confirmation_token | No | Token from the prior plan response. Required on the apply phase only. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_certificateADestructive
Request a new SSL certificate (or re-issue / renew an existing one) for a site on a web hosting. Two-phase commit. Three types supported: free (Let's Encrypt, no extra fields), paid (Sectigo, requires certificate_id), custom (BYO PEM, requires certificate + private_key). Returns an operation_uuid; poll infomaniak_get_certificate to track progress.
| Name | Required | Description | Default |
|---|---|---|---|
| hosting_id | Yes | Web hosting ID. Discover via infomaniak_find_site(domain) → hosting_id. | |
| site_id | Yes | Site ID on that hosting. Same source as hosting_id. | |
| type | Yes | 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`. | |
| certificate_id | No | Pre-purchased certificate ID. REQUIRED when type=`paid`, ignored otherwise. | |
| certificate | No | PEM-encoded leaf certificate. REQUIRED when type=`custom`, ignored otherwise. Multi-line string starting with `-----BEGIN CERTIFICATE-----`. | |
| private_key | No | PEM-encoded private key matching `certificate`. REQUIRED when type=`custom`. Multi-line string starting with `-----BEGIN PRIVATE KEY-----` (or `RSA PRIVATE KEY`). | |
| intermediate_certificate | No | PEM-encoded intermediate CA chain. OPTIONAL for type=`custom` but recommended; without it some clients may fail trust validation. | |
| confirmation_token | No | Token from the prior plan response. Required on the apply phase only. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_quotaARead-onlyIdempotent
Return the current consumption and limit of your account's short-URL quota.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| quota | Yes | |
| limit | Yes |
TDQS
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.
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.
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.
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.
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.
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_undoADestructive
Reverse a destructive action recorded in the session history (when reversible). Two-phase commit: returns a plan first, then applies the undo on the second call.
| Name | Required | Description | Default |
|---|---|---|---|
| history_id | Yes | ||
| confirmation_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
23 tool updates
v0.14.5- Added
infomaniak_add_site_aliases - Added
infomaniak_delete_site_alias - Added
infomaniak_get_account_full - Added
infomaniak_get_domain_full - Added
infomaniak_get_drive_full - Added
infomaniak_get_mail_hosting_full - Added
infomaniak_get_mailbox_full - Added
infomaniak_get_my_profile - Added
infomaniak_get_my_security - Added
infomaniak_get_nodejs_app - Added
infomaniak_get_vps_full - Added
infomaniak_list_drive_trash - Added
infomaniak_list_drive_users - Added
infomaniak_list_nodejs_apps - Added
infomaniak_list_site_aliases - Added
infomaniak_list_teams_and_tags - Added
infomaniak_list_vps - Added
infomaniak_nodejs_app_action - Added
infomaniak_nodejs_app_aliases - Added
infomaniak_nodejs_app_jobs - Added
infomaniak_nodejs_app_logs - Added
infomaniak_nodejs_app_status - Added
infomaniak_nodejs_app_thumbnail
7 tool updates
v0.1.3- Changed
infomaniak_delete_certificate3 fields changed- added
Input schema / properties / confirmation_token / descriptionAdded 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'." - added
Input schema / properties / hosting_id / descriptionAdded value: +"Web hosting ID. Discover via infomaniak_find_site(domain) → hosting_id." - added
Input schema / properties / site_id / descriptionAdded value: +"Site ID on that hosting. Same source as hosting_id."
- Changed
infomaniak_delete_database3 fields changed- added
Input schema / properties / confirmation_token / descriptionAdded 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." - added
Input schema / properties / database_name / descriptionAdded 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." - added
Input schema / properties / hosting_id / descriptionAdded value: +"Web hosting ID. Discover via infomaniak_find_site(domain) or infomaniak_list_hostings."
- Changed
infomaniak_delete_hosting_user3 fields changed- added
Input schema / properties / confirmation_token / descriptionAdded 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." - added
Input schema / properties / hosting_id / descriptionAdded value: +"Web hosting ID. Discover via infomaniak_list_hostings." - changed
Input schema / properties / login / descriptionPrevious 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."
- Changed
infomaniak_delete_mailbox3 fields changed- added
Input schema / properties / confirmation_token / descriptionAdded 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." - added
Input schema / properties / mail_hosting_id / descriptionAdded value: +"Mail hosting ID. Discover via infomaniak_list_mail_hostings." - added
Input schema / properties / mailbox_name / descriptionAdded 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."
- Changed
infomaniak_delete_redirection3 fields changed- added
Input schema / properties / confirmation_token / descriptionAdded 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." - added
Input schema / properties / mail_hosting_id / descriptionAdded value: +"Mail hosting ID. Discover via infomaniak_list_mail_hostings." - added
Input schema / properties / name / descriptionAdded 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."
- Changed
infomaniak_delete_site3 fields changed- added
Input schema / properties / confirmation_token / descriptionAdded 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)." - added
Input schema / properties / hosting_id / descriptionAdded value: +"Web hosting ID. Discover via infomaniak_find_site(domain) or infomaniak_list_hostings." - added
Input schema / properties / site_id / descriptionAdded value: +"Site ID on that hosting. Same source as hosting_id (infomaniak_find_site or infomaniak_list_sites)."
- Changed
infomaniak_dns_delete_record3 fields changed- added
Input schema / properties / confirmation_token / descriptionAdded 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." - added
Input schema / properties / record_id / descriptionAdded value: +"Numeric id of the record to delete. Get it from infomaniak_dns_list_records → records[].id. NOT the record name or source." - added
Input schema / properties / zone / descriptionAdded value: +"DNS zone (root domain) the record belongs to, e.g. 'broz.be'. Must be a domain whose DNS is managed by Infomaniak."
17 tool updates
v0.1.2- Changed
infomaniak_audit_account2 fields changed- added
Input schema / properties / days_ahead / descriptionAdded value: +"Flag products expiring within this many days as warnings. Default 60." - added
Input schema / properties / max_domain_checksAdded 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" +}
- Changed
infomaniak_create_database4 fields changed- added
Input schema / properties / confirmation_token / descriptionAdded value: +"Token from the prior plan response. Required on the apply phase only." - added
Input schema / properties / database_name / descriptionAdded 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." - added
Input schema / properties / description / descriptionAdded value: +"Optional description shown in the manager UI (≤ 255 chars)." - added
Input schema / properties / hosting_id / descriptionAdded value: +"Web hosting ID where the database will live. Discover via infomaniak_find_site(domain) or infomaniak_list_hostings."
- Changed
infomaniak_create_hosting_user6 fields changed- added
Input schema / properties / confirmation_token / descriptionAdded value: +"Token from the prior plan response. Required on the apply phase only." - added
Input schema / properties / connection_type / descriptionAdded value: +"Access level. `ssh` = full shell + FTP/SFTP, `ftp` = SFTP-only (no interactive shell). Default `ftp` (safer)." - added
Input schema / properties / home_directory / descriptionAdded 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'." - added
Input schema / properties / hosting_id / descriptionAdded value: +"Web hosting ID where the user will be created. Discover via infomaniak_list_hostings." - added
Input schema / properties / login / descriptionAdded 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." - added
Input schema / properties / password / descriptionAdded value: +"User password. Minimum 8 chars with at least one lowercase, one uppercase, one digit. Special character recommended but not required."
- Changed
infomaniak_create_mailbox5 fields changed- added
Input schema / properties / confirmation_token / descriptionAdded value: +"Token from the prior plan response. Required on the apply phase only." - added
Input schema / properties / description / descriptionAdded value: +"Optional free-text description (≤ 255 chars), shown in the manager UI." - added
Input schema / properties / mail_hosting_id / descriptionAdded value: +"Mail hosting ID. Discover via infomaniak_list_mail_hostings." - added
Input schema / properties / mailbox_name / descriptionAdded 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." - added
Input schema / properties / password / descriptionAdded 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."
- Changed
infomaniak_create_redirection4 fields changed- added
Input schema / properties / confirmation_token / descriptionAdded value: +"Token from the prior plan response. Required on the apply phase only." - added
Input schema / properties / mail_hosting_id / descriptionAdded value: +"Mail hosting ID. Discover via infomaniak_list_mail_hostings." - added
Input schema / properties / name / descriptionAdded 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." - added
Input schema / properties / targets / descriptionAdded value: +"Destination addresses, full emails. Every address must be valid. Multiple targets fan-out (each receives a copy)."
- Changed
infomaniak_create_short_url2 fields changed- added
Input schema / properties / confirmation_token / descriptionAdded value: +"Token from the prior plan response. Required on the apply phase only." - added
Input schema / properties / target / descriptionAdded 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."
- Changed
infomaniak_dns_create_record4 fields changed- added
Input schema / properties / confirmation_token / descriptionAdded value: +"Token from the prior plan response. Required on the apply phase only." - added
Input schema / properties / ttl / descriptionAdded value: +"Time-to-live in seconds. Min 60, max 86400 (24h). Default 3600 (1h)." - added
Input schema / properties / type / descriptionAdded value: +"Record type as enum: A, AAAA, CNAME, MX, TXT, NS, SRV, CAA, PTR. Must be UPPERCASE." - added
Input schema / properties / zone / descriptionAdded 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)."
- Removed
infomaniak_dnssec_check - Removed
infomaniak_dnssec_disable - Removed
infomaniak_dnssec_enable - Removed
infomaniak_get_mailbox_aliases - Removed
infomaniak_get_mailbox_backups - Added
infomaniak_get_mailbox_info - Removed
infomaniak_get_mailbox_signatures - Added
infomaniak_manage_dnssec - Changed
infomaniak_provision_site_full8 fields changed- added
Input schema / properties / confirmation_token / descriptionAdded value: +"Token from the prior plan response. Required on the apply phase only." - added
Input schema / properties / database_name / descriptionAdded value: +"MariaDB database to create alongside the site. Alphanumeric + underscores only (no dots / dashes), 1-64 chars. Hosting prefix prepended automatically." - added
Input schema / properties / fqdn / descriptionAdded 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." - added
Input schema / properties / hosting_id / descriptionAdded value: +"Web hosting ID where the new site lives. Discover via infomaniak_list_hostings." - added
Input schema / properties / skip_dns / descriptionAdded 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." - added
Input schema / properties / target_ipv4 / descriptionAdded 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." - added
Input schema / properties / ttl / descriptionAdded value: +"TTL of the A record in seconds. 60 to 86400 (24h). Default 3600 (1h)." - added
Input schema / properties / zone / descriptionAdded 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'."
- Changed
infomaniak_request_certificate8 fields changed- added
Input schema / properties / certificate / descriptionAdded value: +"PEM-encoded leaf certificate. REQUIRED when type=`custom`, ignored otherwise. Multi-line string starting with `-----BEGIN CERTIFICATE-----`." - added
Input schema / properties / certificate_id / descriptionAdded value: +"Pre-purchased certificate ID. REQUIRED when type=`paid`, ignored otherwise." - added
Input schema / properties / confirmation_token / descriptionAdded value: +"Token from the prior plan response. Required on the apply phase only." - added
Input schema / properties / hosting_id / descriptionAdded value: +"Web hosting ID. Discover via infomaniak_find_site(domain) → hosting_id." - added
Input schema / properties / intermediate_certificate / descriptionAdded value: +"PEM-encoded intermediate CA chain. OPTIONAL for type=`custom` but recommended; without it some clients may fail trust validation." - added
Input schema / properties / private_key / descriptionAdded value: +"PEM-encoded private key matching `certificate`. REQUIRED when type=`custom`. Multi-line string starting with `-----BEGIN PRIVATE KEY-----` (or `RSA PRIVATE KEY`)." - added
Input schema / properties / site_id / descriptionAdded value: +"Site ID on that hosting. Same source as hosting_id." - added
Input schema / properties / type / descriptionAdded 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`."
13 tool updates
v0.1.1- Changed
infomaniak_audit_account2 fields changed- added
Input schema / properties / account_id / descriptionAdded value: +"Organization/account ID. Optional: defaults to the first account the token has access to. Discover via infomaniak_overview." - removed
Input schema / requiredRemoved value: -[ - "account_id" -]
- Changed
infomaniak_audit_dns_zones5 fields changed- added
Input schema / properties / account_id / descriptionAdded value: +"Organization/account ID. Optional: defaults to the first account the token has access to." - added
Input schema / properties / filter_containsAdded 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" +} - changed
Input schema / properties / max_domains / defaultPrevious value: -50New value: +20 - added
Input schema / properties / max_domains / descriptionAdded value: +"Cap the number of domains scanned. Each domain requires 2 sequential API calls (records + dnssec). Default 20 keeps execution under ~30s." - removed
Input schema / requiredRemoved value: -[ - "account_id" -]
- Changed
infomaniak_delete_database1 field changed- changed
Output schema / anyOfPrevious 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" + } +]
- Added
infomaniak_find_site - Changed
infomaniak_get_certificate1 field changed- changed
Output schema / properties / last_attempt_at / typePrevious value: -"number"New value: +[ + "number", + "null" +]
- Changed
infomaniak_get_database6 fields changed- added
Output schema / properties / application / anyOfAdded 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" + } +] - removed
Output schema / properties / application / typeRemoved value: -[ - "string", - "null" -] - added
Output schema / properties / backups / itemsAdded value: +{ + "type": "number" +} - added
Output schema / properties / backups / typeAdded value: +"array" - added
Output schema / properties / permissions / itemsAdded 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" +} - added
Output schema / properties / permissions / typeAdded value: +"array"
- Changed
infomaniak_list_databases6 fields changed- added
Output schema / properties / databases / items / properties / application / anyOfAdded 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" + } +] - removed
Output schema / properties / databases / items / properties / application / typeRemoved value: -[ - "string", - "null" -] - added
Output schema / properties / databases / items / properties / backups / itemsAdded value: +{ + "type": "number" +} - added
Output schema / properties / databases / items / properties / backups / typeAdded value: +"array" - added
Output schema / properties / databases / items / properties / permissions / itemsAdded 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" +} - added
Output schema / properties / databases / items / properties / permissions / typeAdded value: +"array"
- Changed
infomaniak_list_domains2 fields changed- added
Input schema / properties / account_id / descriptionAdded value: +"Organization/account ID. Optional: defaults to the first account the token has access to. Discover via infomaniak_overview." - removed
Input schema / requiredRemoved value: -[ - "account_id" -]
- Changed
infomaniak_list_drives2 fields changed- added
Input schema / properties / account_id / descriptionAdded value: +"Organization/account ID. Optional: defaults to the first account the token has access to. Discover via infomaniak_overview." - removed
Input schema / requiredRemoved value: -[ - "account_id" -]
- Changed
infomaniak_list_hostings2 fields changed- added
Input schema / properties / account_id / descriptionAdded value: +"Organization/account ID. Optional: if omitted, falls back to the first account the token has access to. Use infomaniak_overview to enumerate." - removed
Input schema / requiredRemoved value: -[ - "account_id" -]
- Changed
infomaniak_list_mail_hostings2 fields changed- added
Input schema / properties / account_id / descriptionAdded value: +"Organization/account ID. Optional: defaults to the first account the token has access to. Discover via infomaniak_overview." - removed
Input schema / requiredRemoved value: -[ - "account_id" -]
- Changed
infomaniak_list_mailboxes2 fields changed- added
Output schema / properties / mailboxes / items / properties / type / anyOfAdded value: +[ + { + "type": [ + "string", + "number" + ] + }, + { + "type": "null" + } +] - removed
Output schema / properties / mailboxes / items / properties / type / typeRemoved value: -"string"
- Changed
infomaniak_list_swiss_backups2 fields changed- added
Input schema / properties / account_id / descriptionAdded value: +"Organization/account ID. Optional: defaults to the first account the token has access to. Discover via infomaniak_overview." - removed
Input schema / requiredRemoved value: -[ - "account_id" -]
54 tool updates
v0.1.0- First observed
infomaniak_api_call - First observed
infomaniak_audit_account - First observed
infomaniak_audit_dns_zones - First observed
infomaniak_create_database - First observed
infomaniak_create_hosting_user - First observed
infomaniak_create_mailbox - First observed
infomaniak_create_mailbox_alias - First observed
infomaniak_create_redirection - First observed
infomaniak_create_short_url - First observed
infomaniak_create_site - First observed
infomaniak_delete_certificate - First observed
infomaniak_delete_database - First observed
infomaniak_delete_hosting_user - First observed
infomaniak_delete_mailbox - First observed
infomaniak_delete_redirection - First observed
infomaniak_delete_site - First observed
infomaniak_dns_create_record - First observed
infomaniak_dns_delete_record - First observed
infomaniak_dns_list_records - First observed
infomaniak_dns_update_record - First observed
infomaniak_dnssec_check - First observed
infomaniak_dnssec_disable - First observed
infomaniak_dnssec_enable - First observed
infomaniak_explain - First observed
infomaniak_get_certificate - First observed
infomaniak_get_database - First observed
infomaniak_get_database_user - First observed
infomaniak_get_domain - First observed
infomaniak_get_mailbox_aliases - First observed
infomaniak_get_mailbox_backups - First observed
infomaniak_get_mailbox_signatures - First observed
infomaniak_help - First observed
infomaniak_history - First observed
infomaniak_list_ai_models - First observed
infomaniak_list_ai_products - First observed
infomaniak_list_database_users - First observed
infomaniak_list_databases - First observed
infomaniak_list_domains - First observed
infomaniak_list_drive_files - First observed
infomaniak_list_drives - First observed
infomaniak_list_hosting_users - First observed
infomaniak_list_hostings - First observed
infomaniak_list_mail_hostings - First observed
infomaniak_list_mailboxes - First observed
infomaniak_list_organizations - First observed
infomaniak_list_redirections - First observed
infomaniak_list_short_urls - First observed
infomaniak_list_sites - First observed
infomaniak_list_swiss_backups - First observed
infomaniak_overview - First observed
infomaniak_provision_site_full - First observed
infomaniak_request_certificate - First observed
infomaniak_short_urls_quota - First observed
infomaniak_undo
TDQS
Scored across 74 tools
Most tools target a clearly distinct Infomaniak resource and action, and the consistent prefix makes them easy to scan. A few close pairs exist — get_my_profile vs get_my_security, get_domain vs get_domain_full, get_mailbox_info vs get_mailbox_full — so agents may need to read descriptions carefully before selecting.
A majority of tools follow infomaniak_<verb>_<noun>, and all names are readable snake_case. However, DNS tools invert this pattern (dns_create_record vs create_mailbox), Node.js tools use mixed noun-first forms (nodejs_app_status vs get_nodejs_app), and a few names like overview, help, short_urls_quota, and api_call do not follow the verb_noun convention.
74 tools is far beyond the moderate range and exceeds even the 50+ extreme threshold. The broad Infomaniak product suite partly explains the count, but this should be split into product-scoped servers or significantly consolidated, because the current surface imposes a very large selection burden on an agent.
There is good lifecycle coverage for DNS, certificates, databases, mailboxes, and several create/list/delete workflows, and infomaniak_api_call provides an escape hatch for missing public API operations. Still, obvious gaps exist: no update/reset for mailbox or hosting users, no delete for short URLs, no alias deletion for mailboxes, and kDrive/VPS areas are entirely read-only. These gaps will require workarounds for common management tasks.
Maintenance
Related MCP Connectors
One MCP endpoint for Claude, GPT & Gemini: 100+ tools + no-code connectors + agent workers.
An agent-first office suite Claude & ChatGPT read and write over one MCP URL.
Deploy full-stack apps (Postgres, Redis, S3, workers, backups) from Claude or curl. 59 MCP tools.
Package intelligence MCP for AI agents — 22 tools, 19 ecosystems, AGPL SDK, free.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server for the Proton privacy suite — Mail, Pass, Drive, Calendar, and VPN. 36 tools for Claude and other MCP-compatible AI agents.20MIT
- AlicenseNot gradedqualityDmaintenance556-tool MCP server giving AI agents full access to the FutureSense business platform. Covers 10 app domains: invoicing, payroll, accounting, CRM, booking, content creation, website builder, quotations, email, and more. Works with Claude, ChatGPT, Gemini, Cursor, and any MCP-compatible client.MIT
- AlicenseAqualityBmaintenanceAgency-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.3467 npm3MIT
- AlicenseBqualityCmaintenanceEnables 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.1003 npmMIT