Infomaniak AI
This server provides read-only Infomaniak API discovery and scoped reads.
Check catalogue coverage, connection policy, and reviewed capabilities with
infomaniak_status.Search public API operations and load reviewed schemas on demand with
infomaniak_search.Browse public API metadata by product/method with
infomaniak_catalogue; discovery does not grant execution.Call reviewed reads within configured account/resource grants using
infomaniak_read.It cannot plan or execute writes, run arbitrary HTTP/shell commands, or bypass configured grants.
Allows interaction with Infomaniak's API to discover services, inspect resources, review and approve exact changes, and execute controlled operations such as DNS and mailbox writes, along with read-only diagnostics for domains, DNS audits, and DNS propagation.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Infomaniak AIlist the DNS records for example.com"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Infomaniak MCP
Use your AI coding tools with the Infomaniak services you already run. Independent, unofficial and open source. Built by Léon Houlier.
Try the hosted pilot · Plugin downloads · Contribute · API reference · Privacy · Cookie policy
https://infomaniak-mcp.com/mcpFor Claude Code:
claude mcp add --transport http infomaniak https://infomaniak-mcp.com/mcpThen run /mcp in Claude Code and complete browser sign-in. For other clients,
use the setup guides. Each customer enters
their own Infomaniak token on a private page and approves one account. Never
paste a token into chat or a GitHub issue. Native client onboarding is still
being qualified.
Ask: “Show my Infomaniak services.”
Capability | Hosted service today |
Discovery | Approved account/product inventory and resource-name resolution |
DNS | Records, audit, propagation and expiry; record create/update/delete in consented domains |
Consented mailbox metadata, aliases and forwarding; supported settings changes | |
VPS apps | Customer-owned runner, pinned stateless Dockerfile deployment, health, requested logs and retained-image rollback |
Official documentation | Live help search in seven languages, live developer index, current guides and API references |
Changes | Read/write offered during setup; read-only available; each exact write needs client confirmation when supported, with browser fallback |
The service does not expose mailbox content, generic HTTP execution, arbitrary shell commands, purchasing or general VPS lifecycle writes. Catalogue metadata is documentation, not executable coverage. Provider tokens are encrypted at rest; the operator holds the encryption key and can use them for API requests.
Not affiliated with or endorsed by Infomaniak.
Hosted connection
Use https://infomaniak-mcp.com/mcp with the client's OAuth flow. Every customer
connects their own Infomaniak token privately, chooses an account and selects
resources. Customers do not need a local runtime or their own server. An optional
VPS deployment needs a paired customer-owned runner. Existing grants never
expand automatically; explicit read-only remains authoritative.
See the API and current capabilities, client qualification evidence and privacy policy. Native client qualification varies; an endpoint or local test pass is not proof of every client workflow.
The hosted service, plugin packages and runner are released from this source. See versioned releases for the source, plugin ZIPs and checksums. The runner is also available at Downloads.
Related MCP server: agent-mcp-workflow-platform
Hosted plugin package
A thin hosted plugin lives under plugins/infomaniak. It bundles private connection guidance and reusable Infomaniak workflows with the existing remote MCP. Portable Agent Plugins manifests target compatible hosts, with a Claude compatibility package alongside them. No provider token is stored in the plugin package.
Download the public plugin packages, or
build them with node scripts/package-plugin.mjs. Claude Code can install from
this repository:
claude plugin marketplace add leonhoulier/infomaniak-ai
claude plugin install infomaniak@infomaniak-mcpVersion 0.3.5 is published in the MCP Registry. The entry points to the hosted OAuth endpoint; customers do not need an npm package. Claude is submitted for review, Cursor has received the publisher application, and OpenAI has an uploaded draft. These are not approved directory listings. Repository installation and public downloads are available separately. See the distribution plan for current submission routes, native qualification, review materials and discovery priorities.
To try the browser experience privately, run npm run preview and open
http://127.0.0.1:8790. It uses demo data by default. See
testing the hosted experience.
Local installation alternative
Every customer uses their own credentials. With only INFOMANIAK_API_TOKEN (or
its private _FILE source), the server starts a read-only discovery edition:
accounts, products and the full public catalogue. No author account, backend,
private policy or server hosting is needed for that starting point. It exposes
six tools and cannot plan or execute writes.
A scoped policy enables resource-level reads and the controlled write lifecycle. The original backend configuration remains supported separately.
Connect your AI client
Requires Node.js 22.13+. No server hosting is required. From this checkout:
npm ci --ignore-scripts
npm run build
node dist/server.js setupChoose your client. Claude Code and Claude Desktop use their private plugin settings; VS Code uses a native password prompt. Codex and Cursor use hidden terminal entry with a private local credential file, outside your project. Setup explains where your token goes before asking for it. Never paste it into chat.
For Claude Desktop, build the extension with npm run package:desktop, then open
artifacts/infomaniak-ai-0.2.0.mcpb. Dependencies are included; the bundle is
unsigned and native installation still needs client validation.
Your first question:
Show my Infomaniak services. If I have several accounts, let me choose one.
Preview any connection with node dist/server.js setup --client vscode --dry-run.
See the onboarding guide for each client, token permissions,
rotation and removal. No npm or marketplace release is available yet.
JSON write API
The JSON API exposes scoped reads and plan, execute, cancel and reconciliation routes. The hosted beta limits writes to a disposable TXT name and uses encrypted plans with native client confirmation when form elicitation is negotiated, or browser approval otherwise. The separate policy edition retains its configured resource grants and human key. There is no API approval endpoint. See the write API reference.
Advanced: scoped reads and independently approved writes
The simple connection above provides account and product discovery. To inspect individual resources or enable reviewed changes, configure a separate scoped policy. The controlled edition uses Node's SQLite API.
Initialize a new private directory using your actual account ID. Replace the capitalized placeholders; omit product options you do not need:
node dist/admin.js init \
--directory "$HOME/.config/infomaniak-ai" \
--account ACCOUNT_ID \
--zone example.com \
--dns-source _infomaniak-ai-test \
--mail-hosting MAIL_HOSTING_ID \
--mailbox MAILBOX_NAMEThis writes a private policy, a client connection token and a separate human approval key. Their values are never printed. All writes and writable resource grants start disabled. Existing installations are never overwritten.
Configure the provider token in the client's secret store or in
INFOMANIAK_API_TOKEN. Alternatively set INFOMANIAK_API_TOKEN_FILE to an
absolute regular secret-file path with mode 0600. Do not configure both sources,
or paste credentials into a conversation.
For a generic MCP client, use command node with arguments:
/absolute/path/to/infomaniak-ai/dist/server.js
--config
/absolute/path/to/private/access.local.jsonThe default local policy also starts the approval interface at localhost:8787/approvals. Its human key belongs in the browser/interactive human terminal, outside the AI client's configuration.
node dist/server.js --config /absolute/path/to/access.local.json --doctorDoctor checks configuration and optional backend integrity, without provider calls.
Tools
The policy-driven edition exposes ten tools:
Tool | Purpose |
| Coverage, configured adapters and connection policy |
| Relevant operations and reviewed schemas on demand |
| Paginated public metadata by product/method |
| A reviewed read within account/resource grants |
| Persist a preview; no provider mutation or approval |
| Execute an independently approved exact plan once |
| Status or read-only reconciliation |
| Cancel before execution starts |
| Current official help guides or live API index |
| Fetch a current official guide or API reference |
There is no MCP approval tool or generic HTTP/shell executor. Search can return disabled catalogue entries with the reason they cannot execute.
Reviewed operations carry Infomaniak-specific notes in search results: which
ID is which, the . zone apex, MX priority inside the target, UTC expiry dates,
what the forwarding flags mean. The skill has the
full table.
Current documentation and browser tasks
Every edition includes live official documentation search and reading. Use
infomaniak_docs_search with public topic terms (for example, VPS Lite SSH),
then infomaniak_docs_read with a returned URL. Set source: "api" to search
the live developer index rather than the bundled operation catalogue.
Results include source URLs, retrieval times and explicit pagination.
When an API capability is missing, agents can follow the official Manager guide using their own authorized browser or computer tools. Documentation access does not control a browser or grant permission to change resources. See documentation access.
Read-only diagnostics
Operation | What it checks |
| Registration expiry in UTC, days left, expired/expiring/ok |
| SPF (missing, duplicate, |
| Google, Cloudflare and Quad9 answers for one name, compared with the zone; a failed lookup is disagreement |
They read the stored zone and public resolvers. They are not mail delivery or signing tests.
Controlled writes
Start with explicitly disposable resources. An operator must grant all of:
The exact reviewed operation in the principal's
operationslist.writes: "disposable-only"and an exact resource binding withdisposable: trueandwritable: true.A fresh independent human approval of the complete plan.
Named DNS grants use resources.dns_names["example.com:_infomaniak-ai-test"].
Update/delete calls include expected_source when using such a narrow grant.
A writable whole-zone grant permits broader changes; a zone inventory grant
does not. Mailbox grants use resources.mailboxes["HOSTING_ID:MAILBOX_NAME"],
separate from mail-hosting inventory grants.
A human reviews account, resource, before/after values, impact and recovery limits
at /approvals, then types APPROVE. The model receives a plan ID/hash; neither
can grant approval. Local administrators can also use admin.js plans, show
and interactive approve with the separate human key.
Stale or expired plans cannot execute. Conflicting writes serialize through resource locks. Uncertain requests remain locked and reconcile through reads; mutations are never automatically retried. A verified provider state does not prove DNS propagation, delivery, SSH reachability or application health.
To qualify writes on your own account, pick a zone and a throwaway mailbox.
Supply INFOMANIAK_API_TOKEN through a private terminal environment first; never
include its value in the command or shell history. Then run:
node scripts/qualify-writes.mjs \
--account ACCOUNT_ID --zone example.com --mail-hosting MAIL_HOSTING_ID --mailbox throwawayIt only touches the DNS name _infomaniak-ai-test and the alias ik-ai-test,
plans each change, waits for you to approve it with node dist/admin.js approve
in a second terminal, then executes, reads back and finally checks that the zone
and aliases match their starting state. It never approves anything itself.
Use writes: "enabled" only after disposable live qualification and a deliberate
policy review. It still requires writable resource grants, operation grants and
per-plan independent approval. Credentials, purchases, arbitrary API execution,
VPS reinstall and other unreviewed operations remain unavailable.
Existing MCP reuse and compatibility
The original three-tool read-only edition remains available without a policy file.
It requires INFOMANIAK_API_TOKEN, INFOMANIAK_MCP_SERVER_PATH (absolute reviewed
dist/server.js) and INFOMANIAK_MCP_SHA256. It runs the backend with browser
auth disabled and a GET-only fetch guard.
The controlled edition can reuse that adapter for token-only VPS reads via:
{
"backend": {
"path": "/absolute/path/to/infomaniak-mcp-agent/dist/server.js",
"sha256": "SHA256_OF_REVIEWED_ENTRY_FILE"
}
}This is a policy fragment, not a complete configuration. The checksum covers the entry file, not its dependency graph. Use an audited build; a guard is not an OS sandbox for an untrusted executable. The reviewed VPS companion capability is required. Upstream npm 0.15.2 returned 404 during the earlier validation, so no working upstream package-install command is assumed.
For Claude Code:
claude plugin validate .
claude --plugin-dir .Select the optional private policy file for the controlled edition, or supply the reviewed backend path/checksum for the original edition. Manifest validation is separate from native-client onboarding, which has not been proven end to end.
Related projects
This plugin grew out of contributions to two existing open-source projects, and reuses what was learned there:
peaktwilight/infomaniak-cli, a Python CLI for the Infomaniak API. Open pull requests add DNS propagation and sync fixes, a DNS audit fix, hosting discovery, read-only mode,
--dry-runpreviews and mailbox commands.Mogacode-ma/infomaniak-mcp-agent, a TypeScript MCP server with two-phase confirmation. Open pull requests add DNS export/diff/propagation tools, token-only VPS inventory and firewall reads, tests, read-only mode, alias deletion and mailbox forwarding.
Use the CLI for scripting, the MCP server for a broad tool surface driven by an agent, and this plugin when you want scoped grants and approval by a separate human for every write.
Optional hosting on Infomaniak
The authenticated Streamable HTTP edition uses separate application-specific
client and human-approval credentials, plus an isolated provider token per user.
Run node dist/server.js --config /private/access.local.json --http.
See the Infomaniak VPS deployment guide for the pinned Docker image recipe, Caddy HTTPS proxy, private state, backup and restart procedure. Nothing is deployed by building this repository. OAuth-only client onboarding and a public managed service remain future work.
Build a distributable bundle
npm run packageThis creates artifacts/infomaniak-ai-0.2.0.tgz with compiled code, catalogue,
skill and plugin manifest. A whitelist excludes tests, local policies, credentials
and operation databases. The package remains marked private during development
to prevent accidental registry publication; the local bundle is installable.
A public registry/marketplace release has not occurred.
To test the bundle in a separate local installation:
npm install --prefix "$HOME/.local/share/infomaniak-ai" \
--ignore-scripts ./artifacts/infomaniak-ai-0.2.0.tgzConfigure the MCP client's command as node, with the installed absolute
node_modules/infomaniak-ai/dist/server.js path as its argument and your provider
token in its secret environment. With no policy or backend configuration, this
starts the four-tool discovery edition. Run python3 scripts/bundle-smoke.py to
check the bundle in a disposable clean Node container using fake credentials.
Development
Contributions are welcome: Infomaniak operations, client compatibility, docs and regression tests. Read CONTRIBUTING.md, open an issue for a larger change, or send a small pull request. Report vulnerabilities privately using SECURITY.md.
npm run typecheck
npm test
python3 -m unittest discover -s tests -p 'test_*.py'
npm run format:checkFixture tests use fake credentials and APIs. The container smoke test disables networking and uses a disposable state directory. Live evidence stays outside this repository. This package is private to prevent accidental publication.
MIT licensed. Provider adapter fixes remain separate upstream contributions.
Available Tools
6 toolsinfomaniak_catalogueBRead-onlyIdempotentInspect
Browse all public API metadata by product/method. Discovery does not grant execution.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| method | No | ||
| offset | No | ||
| product | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false, openWorldHint=true), lowering the burden on the description. The line 'Discovery does not grant execution' adds genuinely useful behavioral context about side effects, but pagination behavior and the shape of returned metadata are left unstated.
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 short, front-loaded sentences with no filler; the purpose leads and the caveat follows. Every clause carries 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 no output schema, the description should ideally sketch what the catalog returns and how pagination works, which it does not. It does establish the discovery-only nature of the operation, which is the most important thing an agent needs, but the 0% parameter coverage leaves 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 0% across four parameters, so the description carries the full burden and mostly fails it. The phrase 'by product/method' loosely maps to the product and method filters, but limit and offset receive no explanation of ordering, defaults, or page-size behavior.
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 gives a specific verb and resource ('Browse all public API metadata by product/method'), which is clearly a discovery/catalog operation distinct from the search, read, and status siblings. It stops short of naming those siblings or explicitly contrasting the tool with them, so it is clear but not fully differentiated.
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 only guidance is the caveat 'Discovery does not grant execution', which clarifies an outcome but not when to pick this tool over infomaniak_search or infomaniak_read. There are no conditions, prerequisites, or exclusions stated, leaving the agent to infer the use case from the word 'browse'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
infomaniak_docs_readARead-onlyIdempotentInspect
Fetch a current official help article or developer API reference. Returns source, retrieval time, steps/links and explicit pagination; no provider token or browser cookies. Use the guide with your own authorized browser/computer tools when an API capability is missing. Never bypass denied scopes, pending approvals or resource locks.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Full HTTPS www.infomaniak.com help article or developer.infomaniak.com/docs/api operation URL from search. | |
| offset | No | ||
| max_chars | No | ||
| expected_sha256 | No | Pass content_sha256 with a next_offset to detect a changed document between pages. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent/openWorld annotations, the description discloses the return shape (source, retrieval time, steps/links), the presence of explicit pagination, that no provider token or browser cookies are required, and a guardrail against bypassing denied scopes, pending approvals or locks. With no output schema, this carries useful weight, though it does not explain how pagination terminates or how next_offset relates to expected_sha256.
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?
Front-loaded with the action and resource in the first sentence, followed by return-shape and then policy constraints, with essentially no filler. The final sentence reads as a guardrail more than a behavioral fact about this tool, but it is short and relevant.
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 read-only fetcher with no output schema, the description supplies the essentials: what is fetched, what is returned, that paging exists, and that no credentials/cookies are involved. The remaining gap is operational detail on pagination continuation, which an agent would otherwise have to infer from the parameter names.
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 only 50%: url and expected_sha256 are documented, while offset and max_chars have no descriptions anywhere except name, default and bounds. The description's mention of "explicit pagination" signals that paging exists but does not define offset/max_chars semantics or the next_offset round-trip, so it only partially compensates for the coverage 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?
States a concrete verb ("Fetch") and a precise resource ("current official help article or developer API reference"), which an agent can distinguish from the sibling search tool by the verb alone. It stops short of naming infomaniak_docs_search as the discovery counterpart, so differentiation is implied rather than 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?
Usage context is implied rather than spelled out: the schema's url field says the URL comes "from search", and the description adds a fallback path ("Use the guide with your own authorized browser/computer tools when an API capability is missing") plus prohibitions on bypassing scopes/approvals/locks. There is no direct when-to-use-this-vs-siblings statement such as 'call docs_search first to obtain the URL'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
infomaniak_docs_searchARead-onlyIdempotentInspect
Search current official Infomaniak help guides for Manager/browser tasks, or the live developer API index. Use public feature terms only: never include customer identifiers, addresses, credentials or private context. Results are documentation, not permission or execution coverage.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | ||
| source | No | help | |
| language | No | Help-guide language. The API index is English. | en |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, open-world, non-destructive behavior, so the bar is lower. The description still adds genuine value: a hard privacy constraint against customer identifiers, addresses and credentials in queries, plus the caveat that returned docs do not imply permission or execution coverage.
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 short sentences with the capability front-loaded and the safety constraint immediately after; no filler. The second sentence packs two distinct ideas, but neither is expendable.
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 read-only search tool with no output schema, the definition covers corpus scope, query hygiene and the nature of results. Minor omissions remain around result format and the limit/language parameters, but nothing critical to correct invocation 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?
Schema coverage is only 25%, but the description partially compensates by mapping the two corpora (help guides vs. live API index) onto the 'source' choice and by constraining what belongs in 'query'. It says nothing about 'limit' or language selection, leaving part of the gap unaddressed.
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 gives a specific verb and clear resource scope: searching official Infomaniak help guides (Manager/browser tasks) or the live developer API index. This tells an agent what corpus it hits, though it never names the nearest siblings (infomaniak_search, infomaniak_docs_read) to differentiate itself explicitly.
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 is implied through 'public feature terms only' and the closing note that results are documentation rather than permission or execution coverage, which steers away from using it for account actions. However, there is no explicit statement of when to prefer it over infomaniak_search or infomaniak_docs_read.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
infomaniak_readCRead-onlyIdempotentInspect
Call a reviewed read within this connection's account/resource grants.
| Name | Required | Description | Default |
|---|---|---|---|
| arguments | No | ||
| operation | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds that operations must be 'reviewed' and are bounded by the connection's account/resource grants, which is genuine extra context about authorization scope, but it omits what happens on an ungranted or non-reviewed 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?
A single sentence with no filler, which is structurally clean. However, it is abstract and jargon-heavy ('reviewed read', 'grants') rather than genuinely front-loading the essential information an agent needs.
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 generic dispatcher with a free-form required 'operation' string and a nested, free-form 'arguments' object at 0% schema coverage and no output schema, the description is far too thin. It should explain how operations are identified and what argument shapes are expected, especially alongside an infomaniak_catalogue sibling.
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 both parameters, so the description carries the full burden and largely fails: it never explains what values 'operation' takes, how they are discovered, or how 'arguments' should be shaped for each operation. Only the grant-scoping hint gives any signal about valid operation values.
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 restates the tool's own name ('read') and adds only a vague scope phrase, 'within this connection's account/resource grants.' It never says what resource is being read or how it differs from siblings like infomaniak_search or infomaniak_catalogue. An agent cannot tell what this tool actually retrieves.
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?
There is no when-to-use guidance, no prerequisites, and no mention of the sibling tools that likely cover overlapping ground (search, catalogue, status). The word 'read' faintly implies a read path, but nothing tells the agent when this is preferable to infomaniak_search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
infomaniak_searchBRead-onlyIdempotentInspect
Discover public API operations. Catalogue entries may be unavailable; reviewed schemas load on demand.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | ||
| include_unavailable | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the safe read-only, idempotent, open-world profile, so the bar is lower. The description adds genuine behavioral context beyond them: catalogue entries may be missing and reviewed schemas are fetched lazily, which tells the agent results can be partial and a follow-up read may be needed.
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 short sentences with no filler, and the core purpose is front-loaded ahead of the caveats. The second sentence is slightly telegraphic ('load on demand') but earns its place by conveying the lazy-loading behavior.
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?
No output schema exists, so the description should ideally clarify what a search result contains (operation identifiers usable with infomaniak_read), which it does not. With annotations covering safety and only three simple params, it is minimally adequate but leaves the result shape and workflow linkage underspecified.
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% across three parameters. The phrase 'catalogue entries may be unavailable' loosely gestures at include_unavailable, but limit and query are entirely unexplained and no formats, defaults, or range guidance are given in the description.
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 a clear verb+resource: 'Discover public API operations' — an agent knows this is a discovery/search tool. It implicitly distinguishes itself from infomaniak_read (which fetches a reviewed schema) but never names siblings explicitly.
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?
'Reviewed schemas load on demand' hints at a search-then-read workflow, suggesting this is the entry point before infomaniak_read. However, it never states when to use this over infomaniak_catalogue or infomaniak_read, leaving the routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
infomaniak_statusCRead-onlyIdempotentInspect
Check catalogue coverage, connection policy and reviewed capabilities.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds only vague nouns ('connection policy', 'reviewed capabilities') without saying what state is inspected, whether it performs a live connection check, or what the response contains.
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 with no padding, so nothing needs trimming. Its brevity, however, comes at the cost of substance rather than being earned by density.
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 no-parameter, read-only diagnostic with no output schema, the description should state what the status payload covers. It hints at three areas but leaves the actual returned information and the meaning of 'coverage' unexplained.
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 takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 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 verb 'check' and the objects 'catalogue coverage, connection policy and reviewed capabilities' gesture at a diagnostic/status resource, but the phrasing is jargon-heavy and never says plainly what the tool reports or returns. It also does not distinguish itself from siblings infomaniak_catalogue and infomaniak_search, which plausibly overlap with 'catalogue coverage'.
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 indication of when this tool should be chosen over infomaniak_search, infomaniak_catalogue or infomaniak_read, and no preconditions or exclusions are given. The agent must guess at the intended trigger.
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.
2 tool updates
v0.3.6- Added
infomaniak_docs_read - Added
infomaniak_docs_search
4 tool updates
v0.2.0- First observed
infomaniak_catalogue - First observed
infomaniak_read - First observed
infomaniak_search - First observed
infomaniak_status
TDQS
Scored across 6 tools
The docs_search/docs_read pair is clearly distinguished by action, but infomaniak_catalogue and infomaniak_search largely overlap — both describe discovering/browsing public API metadata and operations, and their descriptions even cross-reference the same catalogue. An agent could plausibly pick either for API discovery, though the docs-vs-live capability split is somewhat explained in the text.
All names use the same infomaniak_ prefix and snake_case, with a recognizable docs_search/docs_read and search/read pairing. Minor deviation: some suffixes are verbs (search, read) while others are nouns (catalogue, status), which slightly breaks the verb_noun expectation.
Six tools is well-scoped for a documentation-discovery plus read-execution server, and each maps to a plausible step (search, browse, read docs, execute read, check status). Slightly thin — one redundant discovery tool means the effective distinct surface is closer to five.
The surface covers discovery, documentation retrieval, capability introspection, and read execution, but has no write/create/update/delete operations at all, so any mutation workflow dead-ends. The read-only scope appears intentional and is documented as a policy boundary, which mitigates but does not eliminate the gap for an API-access server.
Maintenance
Related MCP Connectors
Read-only ArcadeOps discovery for developer docs, OAuth, OpenAPI and synthetic sandbox.
Check domain availability and prices, and look up any domain's public records. Read-only.
Manage API keys, identities, permissions, rate-limit overrides and verification analytics.
Read-only discovery of Framekeep capabilities, security boundaries, and public resources.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceAn MCP server exposing scoped, read-only enterprise operations tools with fail-closed credential handling. It returns opaque approval IDs for mutations and requires a separate operator approval command to release one-time capabilities.MIT
- FlicenseNot gradedqualityCmaintenanceEnables approval-gated incident response workflows that gather evidence through read-only MCP tools, perform idempotent writes, and preserve a durable audit trail.-

DotMoose MCPofficial
AlicenseNot gradedqualityCmaintenanceEnables product and domain discovery, quotes, publication planning, and secure signup handoff, plus OAuth-protected account, support, diagnostics, and managed application deployment operations.1MIT- AlicenseBqualityCmaintenanceEnables an MCP client to inspect sites, warm runs and their results, cache status reports and schedules through the API, and — only when writes are explicitly enabled and confirmed — to trigger or cancel warm runs and create, update or delete schedules. Read-only operation is the safe default, with API-key scopes, redaction, idempotency and no retries or redirects.9Apache 2.0