Selective Tool Loading
Cloud DNS, Billing, Certificate Manager, and Activity Log tools are always available at startup. By default, Compute Engine and Object Storage tools are now also registered at startup, so most users can skip this page; just start asking your AI assistant questions about your resources.
The MCP server supports three tool-loading modes, selected via the IONOS_MCP_LOAD_MODE environment variable:
eager (default)
All 110 product tools register at startup. Loader sentinels are not registered; they exist only to bootstrap lazy mode.
The right choice for nearly every client, including Claude Code, Claude Desktop, Cursor, VS Code, JetBrains, Gemini CLI, and Claude in Chrome.
lazy
Only the 37 always-on product tools (Cloud DNS, Billing, Certificate Manager, Activity Log) plus the 2 loader sentinels (ionos_load_compute_tools, ionos_load_objectstorage_tools) register at startup — 39 tools total. Compute Engine and Object Storage tools register only after the matching loader sentinel is called.
Clients with a hard tool-count cap (Windsurf's 100-tool limit) or operators who want the smallest possible tool surface for compliance-audited environments. Requires that the client honours notifications/tools/list_changed; Windsurf, Claude Desktop, Cursor, and VS Code all do.
router
Reserved for a future release; not yet implemented. If set today, the server logs a warning to stderr and falls back to eager.
Not available today.
Why eager is the default: Claude Code (the dominant client) defers tool schemas client-side using ToolSearch, so only tool names (1–3k tokens) are sent up front. Eager startup is cheap there. Clients that ignore notifications/tools/list_changed would never discover lazy tools at all, so eager-by-default is universally safer.
For environments where tool exposure matters (compliance audits, sensitive accounts), the right lever is token scope, not load mode. Scope IONOS_TOKEN to only the products you actually need — see Authentication. All tools remain read-only and bounded by the token's permissions regardless of load mode.
Enabling lazy mode
Set IONOS_MCP_LOAD_MODE=lazy in the env block of your AI client configuration:
{
"mcpServers": {
"ionoscloud": {
"command": "/path/to/ionoscloud-mcp",
"env": {
"IONOS_TOKEN": "your-api-token",
"IONOS_MCP_LOAD_MODE": "lazy"
}
}
}
}Accepted values: eager (default), lazy, router (reserved).
Windsurf users must set IONOS_MCP_LOAD_MODE=lazy. Windsurf applies a 100-tool limit across all MCP servers. The default eager mode exposes 110 tools and exceeds this limit; lazy mode keeps the startup catalog at 39 tools (37 always-on product tools + 2 loader sentinels). For more information, see Windsurf.
Do not use lazy mode for unattended agentic workflows on clients with no tool cap. An agent that does not know to call a loader sentinel first will silently skip Compute and Object Storage operations; the agent says "I don't have a tool to list your servers" instead of returning an error. For more information, see Use IONOS CLOUD Resources in Agentic Workflows. On Windsurf, the 100-tool cap takes precedence and lazy mode is the only option; expect to prompt the agent explicitly with "Load the Compute tools" before any Compute step.
Loader tools
The two loader sentinels are present only when IONOS_MCP_LOAD_MODE=lazy is set. In eager mode (the default), they do not appear in the catalog because the full tool set is already registered.
ionos_load_compute_tools
Registers all 50 Compute Engine tools and sends a notifications/tools/list_changed notification so the client refreshes its catalog.
lazy mode only
ionos_load_objectstorage_tools
Registers all 23 Object Storage tools and sends a notifications/tools/list_changed notification.
lazy mode only
Call them by asking your AI assistant. For example, send this prompt:
Load the IONOS CLOUD Compute tools.
Last updated
Was this helpful?