IONOS CLOUD MCP Server
OfficialThe IONOS CLOUD MCP Server is a read-only Model Context Protocol server that connects your IONOS CLOUD account to AI assistants, enabling natural-language infrastructure inspection, auditing, and cost analysis. It cannot create, modify, or delete any resources.
Compute Engine (50 tools)
List and inspect virtual data centers, servers, volumes, snapshots, NICs, LANs, firewall rules, and security groups
View IP blocks, load balancers (basic, network, application), NAT gateways, private cross-connects, images, templates, and locations
Retrieve API request statuses, contract/resource limits, remote console URLs, and GPU details
Kubernetes (8 tools)
List and inspect clusters, node pools, and nodes; check available Kubernetes versions
Object Storage (23 tools)
List and inspect buckets, objects, and access keys
Check bucket configurations: CORS, encryption, lifecycle, policy, public access block, replication, tagging, versioning, and Object Lock
Check object-level legal hold, retention, and tagging; verify bucket/object existence via HEAD operations
DNS (14 tools)
List and inspect zones, zone files (BIND format), records, reverse DNS records, secondary zones, and DNSSEC keys
Check DNS quota and secondary zone AXFR transfer status
Billing (15 tools)
Retrieve billing profiles, invoices, provisioning intervals (EVN), traffic, resource usage, and utilization
Search the product/pricing catalog; generate FOCUS v1.3-compliant cost output
Certificate Manager (6 tools)
List and inspect SSL/TLS certificates, auto-certificates, and providers
Activity Log (2 tools)
Query the full audit trail of API requests (who did what, when, on which resource)
List accessible contracts for activity log queries
Key Highlights
112–120 tools across all products with
eager(all tools at startup) orlazy(on-demand) loading modes to stay within client tool-count limits (e.g., Windsurf's 100-tool cap)Direct API calls to IONOS Cloud over HTTPS — no third-party AI provider in the data path
Compatible with Claude Desktop, Cursor, VS Code, Windsurf, Cline, Continue, and other MCP clients
Pair with IONOS CLOUD AI Model Hub for a fully EU-sovereign AI workflow
Open source under the Apache 2.0 license; deployable as a local binary, Docker container, or via Homebrew/
go install
Provides read-only tools for inspecting IONOS Cloud resources including Compute Engine (servers, volumes, networks), Object Storage (buckets, objects), DNS (zones, records), Billing (invoices, usage), Certificate Manager, and Activity Log.
IONOS CLOUD MCP Server
A read-only-by-default Model Context Protocol (MCP) server that connects your IONOS CLOUD account to any MCP-compatible AI assistant or autonomous AI agent: Claude Desktop, Cursor, VS Code (GitHub Copilot), Windsurf, Cline, Continue, OpenCode, and 5+ others. 118 read-only tools across 7 IONOS CLOUD products — list, inspect, and audit your infrastructure through natural-language prompts or programmatic agentic loops. Write operations across Compute (servers, volumes, networking, load balancing) are strictly opt-in and create real, billable resources — see Write operations.
Built and maintained by the IONOS Cloud team. The server runs as a local binary on your workstation, a CI runner, or inside a container. IONOS CLOUD API calls go directly to IONOS over HTTPS; no third-party AI provider sits in the data path.
Compatibility: MCP spec 2024-11-05 · Go 1.25+ for builds · OCI images for linux/amd64 and linux/arm64.
📚 Full product documentation, per-client setup guides, FAQ, and tutorials: docs.ionos.com/cloud/ai/mcp-server
Get started in 60 seconds (macOS or Linux, via Homebrew):
brew install ionos-cloud/ionos-cloud/ionoscloud-mcpFor other install paths (Docker, pre-built binary, go install, source), see Installation.
Why
Read-only by default, writes strictly opt-in — out of the box every tool is an inspection operation (
list_*,get_*,head_*), so it's safe to connect to production accounts and to deploy inside unattended agent loops on CI runners. Write tools (create_*,update_*,delete_*) register only when you setIONOS_MCP_TOOL_SCOPE, and even then every create and delete requires a two-phase confirmation (preview → one-time token → execute). See Write operations.Local binary, no proxy — IONOS CLOUD API calls go directly from your machine to IONOS Cloud. No third-party AI vendor in the data path.
EU-sovereign option — pair the server with the IONOS CLOUD AI Model Hub and both the API calls and the LLM inference terminate inside IONOS's German data centres. See the Fully Sovereign AI Workflow guide.
Open source — Apache 2.0. Read the source, audit the behaviour, contribute, or fork.
Related MCP server: incus-mcp
Registries & Directories
This server is published across multiple MCP registries and IDE marketplaces:
Registry | Link |
Official MCP Registry | |
Smithery | |
mcp.so | |
Glama | |
Cursor | |
mcpservers.org | |
PulseMCP | |
MCPMarket | |
punkpeye/awesome-mcp-servers |
Supported products
Read tools are named list_*, get_* and head_*; the opt-in write tools are create_*, update_*, delete_* plus domain verbs such as start_* and attach_*. In the default eager mode all tools register at startup; lazy mode defers Compute and Object Storage behind loader tools; dynamic mode exposes only three search/describe/call meta-tools for clients with hard tool caps. See Tool loading mode.
Product | Tools | Capabilities |
50 + 69 write | Data centers, servers, volumes, NICs, LANs, firewall rules, IP blocks, load balancers (basic / network / application), NAT gateways, security groups, private cross-connects, snapshots, images, templates, locations, requests, contract | |
8 | Clusters, node pools, nodes, available versions | |
23 | Buckets, bucket configuration (CORS, encryption, lifecycle, policy, public access block, replication, tagging, versioning, Object Lock), objects, access keys, regions | |
14 | Zones, zone files, records, reverse records, secondary zones, DNSSEC, quota | |
15 | Profile, invoices, EVN (provisioning intervals), traffic, usage, utilization, product pricing catalog, FOCUS v1.3 spec | |
6 | Certificates, auto-certificates, providers | |
2 | Contracts, events |
120 read-only tools (118 product + 2 loader), plus 69 opt-in write tools on Compute Engine — see Write operations. For per-tool input/output schemas, see the per-product docs or the full Tool Reference at docs.ionos.com.
Installation
Pick whichever fits your workflow.
Homebrew (macOS, Linux) — recommended
brew install ionos-cloud/ionos-cloud/ionoscloud-mcpDocker (linux/amd64, linux/arm64)
docker pull ghcr.io/ionos-cloud/ionoscloud-mcp:latestRun with the MCP stdio transport (default):
docker run -i --rm \
-e IONOS_TOKEN="$IONOS_TOKEN" \
ghcr.io/ionos-cloud/ionoscloud-mcpOr over HTTP (see Wire transport):
docker run --rm -p 8080:8080 \
-e IONOS_TOKEN="$IONOS_TOKEN" \
ghcr.io/ionos-cloud/ionoscloud-mcp --transport http --http-addr :8080Smithery
npx -y @smithery/cli install @ionos-cloud/ionoscloud-mcp --client claude-desktopSupported --client values: claude-desktop, claude-code, cursor, vscode, windsurf, cline, continue, gemini-cli, kiro, and others. See the Smithery listing for the current list.
Pre-built binary
Download the archive for your OS/arch from the latest release. Available for Linux, macOS, and Windows on both amd64 and arm64.
go install
go install github.com/ionos-cloud/ionoscloud-mcp@latestFrom source
git clone https://github.com/ionos-cloud/ionoscloud-mcp.git
cd ionoscloud-mcp
make buildConfiguration
You need an IONOS CLOUD account with API credentials.
# Required: API token for control-plane APIs (Compute, DNS, Billing, Certificate Manager, Object Storage management)
export IONOS_TOKEN="your-api-token"
# Optional: only required if you use Object Storage data-plane tools
# (listing objects, reading bucket configuration, checking access keys).
export IONOS_S3_ACCESS_KEY="your-s3-access-key"
export IONOS_S3_SECRET_KEY="your-s3-secret-key"
# Optional: opt in to write operations (default: read-only). Values are hierarchical,
# so a single level suffices: "write" allows create/update; "destructive" also allows
# delete (it implies "write"). See "Write operations".
# export IONOS_MCP_TOOL_SCOPE="write"Generate a token in the IONOS CLOUD DCD under Management → Token Management. Object Storage credentials are created under Storage & Backup → IONOS CLOUD Object Storage → Key management.
For least-privilege token scoping, see Authentication at docs.ionos.com.
Integrating with an MCP client (manual)
Add the server to your AI client's MCP config:
{
"mcpServers": {
"ionoscloud": {
"command": "/path/to/ionoscloud-mcp",
"env": {
"IONOS_TOKEN": "your-api-token",
"IONOS_S3_ACCESS_KEY": "your-s3-access-key",
"IONOS_S3_SECRET_KEY": "your-s3-secret-key"
}
}
}
}The Object Storage credentials are only needed if you plan to use Object Storage tools.
Per-client setup guides for the 12 supported AI clients: Connect to an AI Client at docs.ionos.com.
Tool loading mode
The load mode selects how tools are exposed. Set it with either the --load-mode flag or the IONOS_MCP_LOAD_MODE environment variable; the flag wins if both are set, and otherwise the default is eager. Parsing is case-insensitive.
eager(default): all tools register at startup. Recommended for Claude Code (which defers full schemas client-side via ToolSearch, paying ~1–3k tokens for names only) and the only working mode for clients that ignorenotifications/tools/list_changed(Claude Desktop, claude.ai connectors, Claude in Chrome, Smithery scanner).lazy: Compute and Object Storage register only on demand. Two sentinel tools (ionos_load_compute_tools,ionos_load_objectstorage_tools) appear at startup; calling either registers the full product set and emitsnotifications/tools/list_changed. Use only if your MCP client honours that notification AND lacks client-side schema deferral — otherwise eager mode is cheaper.dynamic(alias:search): the server exposes only three meta-tools —ionos_search_tools,ionos_describe_toolsandionos_call_tool— and the model discovers and invokes the full catalogue through them at runtime. The real tool list never changes, so unlikelazythis needs nonotifications/tools/list_changedsupport. Intended for clients with hard tool caps and no tool search of their own (e.g. Cursor's ~40-tool cap, Windsurf's 100). Trade-off: the model mustsearch→describe→callrather than seeing tools directly, costing extra round-trips, so prefereageron Claude Code.
The server logs the effective mode and its source (flag / env / default) to stderr at startup, e.g. load mode: dynamic (source: --load-mode flag).
{
"mcpServers": {
"ionoscloud": {
"command": "/path/to/ionoscloud-mcp",
"args": ["--load-mode", "dynamic"],
"env": {
"IONOS_TOKEN": "your-api-token"
}
}
}
}Tool-count limits: Windsurf caps connected MCP servers at 100 tools combined; Cursor caps at ~40 across all servers. With the default eager mode the server exceeds both. On Windsurf, lazy keeps the startup surface small enough; on Cursor (or any cap-limited client without its own tool search), use dynamic to present just three tools. For more information, see Selective Tool Loading.
Wire transport
The server speaks stdio by default — the mode every subprocess-spawning MCP client expects (Claude Desktop, Claude Code, Cursor, Windsurf, etc.). For remote or networked deployments (e.g. running the server centrally and pointing multiple clients at it), switch to the Streamable HTTP transport with --transport http or IONOS_MCP_TRANSPORT=http; the flag wins if both are set.
./ionoscloud-mcp --transport http --http-addr :8080--transport <stdio|http>(orIONOS_MCP_TRANSPORT) — selects the transport. Unrecognised values fall back tostdiowith a warning.--http-addr <addr>(orIONOS_MCP_HTTP_ADDR) — listen address for the HTTP transport. Default:8080(all interfaces); use127.0.0.1:8080for local-only. Ignored for stdio.
The server logs the effective transport and its source to stderr at startup, e.g. transport: http (source: --transport flag).
In HTTP mode, point your MCP client at http://<host>:<port>/ as a Streamable HTTP server. There is no built-in TLS or authentication for the HTTP endpoint itself — put it behind a reverse proxy (e.g. nginx, Caddy) if it needs to be reachable outside a trusted network. IONOS_TOKEN and the other IONOS CLOUD credentials still authenticate the server's own calls to the IONOS API regardless of transport.
Write operations
The server is read-only until you opt in. Write tools are never registered and never appear in tools/list unless you set the IONOS_MCP_TOOL_SCOPE environment variable. The gate applies in every load mode, including the dynamic dispatcher — there is no bypass.
Scope is a comma-separated, hierarchical set of capabilities (read is always on):
| Enables |
unset / | read-only ( |
| the above + |
| the above + |
Unrecognised values fall back to read-only, and the effective scope is logged to stderr at startup. Because the levels are hierarchical, a single value is enough — destructive alone already grants write and read; you don't need to list them all (though a comma-separated list like read,write is also accepted).
What can be written
Area | Resources |
Compute | data centers, servers (+ start/stop/reboot/suspend/resume/upgrade), volumes (+ snapshot & restore, attach/detach), NICs, LANs |
Networking | IP blocks (reserve and release only), security groups + rules, firewall rules, private cross connects |
Load balancing | classic, network and application load balancers + forwarding rules, target groups, NAT gateways + rules |
Images | snapshot and image update/delete |
Not available, because the Go SDK cannot build the request the API accepts: renaming an IP block, attaching a CD-ROM to a server, attaching a NIC to a classic load balancer, and detaching a LAN from a cross connect. Use ionosctl, the Terraform provider or the DCD for those.
69 tools in total. The server exposes 118 at the default read-only scope, 161 with write, and 187 with destructive. Reads are unaffected and always available.
Two-phase confirmation. Every create_* and delete_*, plus the disruptive actions (stop_, reboot_, suspend_, upgrade_, restore_, detach_), is confirmation-gated. The first call performs no mutation: it returns a preview — for a delete, a blast-radius summary of what will be destroyed — plus a single-use confirmation_token (5-minute TTL, bound to that exact target and operation). Only a second call carrying that token executes. This keeps a human in the loop and limits the agent to one resource per call. Reversible single-field changes (update_*, start_, attach_, assign_) are a single call.
Annotations. Write tools carry MCP annotations (readOnlyHint, destructiveHint, idempotentHint) so clients can build their own approval UX — but enforcement is always server-side. Note that the class comes from the operation, not the HTTP verb: stop_server is a POST that is destructive.
⚠️ Write operations create real resources and real charges
Enabling
IONOS_MCP_TOOL_SCOPElets an AI model provision billable infrastructure in your live IONOS CLOUD account. Every create is a real resource on a real invoice, effective immediately.Some resources cost money even when nothing is using them — a reserved IP block, a snapshot, or a volume left behind after its server was deleted. Deletions are equally real: destroyed data is not recoverable without a snapshot, and a released IP address cannot be asked for again.
An AI model decides when and how often to call these tools. It can misread your intent, retry more than you expected, or pick a larger resource than you had in mind. The two-phase confirmation exists to put a human in that loop, but it cannot stop a client configured to approve tool calls automatically — in that setup the model can complete both phases on its own.
You are responsible for everything created, modified or deleted in your account through these tools, and for the resulting charges. IONOS does not control and is not responsible for how a model chooses to call them, or for any cost, data loss or outage arising from those calls.
Reduce the risk: leave the server read-only unless you need writes; grant
writerather thandestructivewhen deletion isn't required; require manual approval of tool calls in your client; read the preview before returning a confirmation token; and prefer a non-production account when experimenting.
Enable writes in your MCP client config, for example:
{
"mcpServers": {
"ionoscloud": {
"command": "/path/to/ionoscloud-mcp",
"env": {
"IONOS_TOKEN": "your-api-token",
"IONOS_MCP_TOOL_SCOPE": "destructive"
}
}
}
}Demo
In Claude Desktop or any other supported client, after configuring the server, try one of these prompts. They cover the kinds of multi-step inspection workflows that are tedious to write as scripts but easy in natural language:
Cost audit: "Audit my IONOS CLOUD account, find the top 5 cost-inducing resources this month, and suggest cost-efficiency tips."
Security sweep: "List every bucket whose public access block is off or whose policy is public — flag anything that looks unintentional."
Audit trail: "Show me every failed API request on my contract in the last 30 days, grouped by user."
Forgotten resources: "Find unattached volumes, unused IP blocks, and stopped servers across all my data centers."
DNS sanity check: "List all zones on my account and flag any without DNSSEC enabled or with records pointing to IPs I no longer own."
Certificate expiry: "Which certificates on my account expire in the next 60 days?"
Traffic spike investigation: "My last invoice was higher than usual — show me daily traffic and utilization for the previous billing period and tell me what changed."
Onboarding tour: "Walk me through what I have running on IONOS CLOUD — datacenters, servers, storage, DNS — like you're explaining it to a new teammate."
Each prompt chains multiple list_* and get_* calls and produces a summary you can paste into a ticket, dashboard, or doc. For end-to-end walkthroughs:
Development
Testing the MCP protocol locally
You can test the server's MCP protocol implementation using stdin/stdout:
# Initialize and list tools
{
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"0.1.0"}}}'
echo '{"jsonrpc":"2.0","method":"notifications/initialized"}'
echo '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'
sleep 1
} | ./ionoscloud-mcp
# Call a tool (requires a valid IONOS_TOKEN)
{
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"0.1.0"}}}'
echo '{"jsonrpc":"2.0","method":"notifications/initialized"}'
echo '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"list_datacenters","arguments":{}}}'
sleep 1
} | ./ionoscloud-mcpBuilding from source
make build
# or
go build -o ionoscloud-mcp .Run make with no arguments to see the available targets.
Related projects
IONOS CLOUD MCP Server product docs — full product documentation
IONOS CLOUD AI Model Hub — open-weight LLMs hosted in Germany; pair with this server for a fully EU-sovereign AI loop
IONOS CLOUD Documentation MCP — a free public MCP server exposing the IONOS docs site for AI assistants
Contributing
Issues and pull requests are welcome. For development setup, code style, and testing instructions, see CONTRIBUTING.md. For questions and discussion, use GitHub Discussions.
Security
If you believe you have found a security vulnerability, please do not open a public issue. Report it privately via GitHub's private vulnerability reporting or by email to sdk-tooling@ionos.com. Full policy: SECURITY.md.
Changelog
Notable changes per release are tracked in CHANGELOG.md. For the artefacts published with each tag (Linux/macOS/Windows binaries, multi-arch OCI images), see the GitHub Releases page.
API documentation
For more information about the IONOS CLOUD API:
License
Apache License 2.0 — see LICENSE.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityAmaintenanceMCP server for the Hetzner Cloud API. Manage servers, networks, volumes, firewalls, load balancers, and more through the Model Context Protocol.1004154Functional Source , Version 1.1, MIT Future

Hostodo MCPofficial
AlicenseBqualityCmaintenanceManage Hostodo VPS infrastructure from MCP clients and AI agents with scoped tokens and audit logs.47MIT- AlicenseAqualityDmaintenanceMCP server for Oracle Cloud Infrastructure (OCI) that provides tools to manage Compute, Object Storage, Block Storage, Networking, Autonomous Database, and IAM via the official OCI SDK.2339MIT
Related MCP Connectors
An MCP server that let you interact with Cycloid.io Internal Development Portal and Platform
The official MCP Server from Mia-Platform to interact with Mia-Platform Console
Official Sevalla MCP — full PaaS API access through just 2 tools.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ionos-cloud/ionoscloud-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server