Labsco
ionos-cloud logo

IONOS CLOUD MCP Server

β˜… 5

from ionos-cloud

Inspect and manage IONOS CLOUD infrastructure via MCP

πŸ”₯πŸ”₯πŸ”₯πŸ”₯βœ“ VerifiedPaid serviceNeeds API keys

IONOS CLOUD MCP Server

Official IONOS Cloud Apache 2.0 Go reference

A read-only 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 tools across 7 IONOS CLOUD products β€” list, inspect, and audit your infrastructure through natural-language prompts or programmatic agentic loops.

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-mcp

For other install paths (Docker, pre-built binary, go install, source), see Installation.

<p align="center"> <a href="#why">Why</a> β€’ <a href="#registries--directories">Registries</a> β€’ <a href="#supported-products">Products</a> β€’ <a href="#installation">Install</a> β€’ <a href="#configuration">Config</a> β€’ <a href="#tool-loading-mode">Tool loading</a> β€’ <a href="#demo">Demo</a> β€’ <a href="#development">Dev</a> β€’ <a href="#related-projects">Related</a> β€’ <a href="#changelog">Changelog</a> </p>

Why

  • Read-only by design β€” every tool is an inspection operation (list_*, get_*, head_*). The server cannot create, modify, or delete any resource, so it's safe to connect to production accounts and safe to deploy inside unattended agent loops on CI runners.
  • 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.

Registries & Directories

This server is published across multiple MCP registries and IDE marketplaces:

RegistryLink
Official MCP Registryio.github.ionos-cloud/ionoscloud-mcp
Smitheryionos-cloud/ionoscloud-mcp
mcp.soionos-cloud-mcp-server
Glamaionoscloud-mcp
Cursorionoscloud-mcp
mcpservers.orgionoscloud-mcp
PulseMCPionoscloud
MCPMarketionos-cloud
punkpeye/awesome-mcp-serversionos-cloud/ionoscloud-mcp

Supported products

All tools follow the list_*, get_*, and head_* naming convention. 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.

ProductToolsCapabilities
Compute Engine50Data 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
Kubernetes8Clusters, node pools, nodes, available versions
Object Storage23Buckets, bucket configuration (CORS, encryption, lifecycle, policy, public access block, replication, tagging, versioning, Object Lock), objects, access keys, regions
DNS14Zones, zone files, records, reverse records, secondary zones, DNSSEC, quota
Billing15Profile, invoices, EVN (provisioning intervals), traffic, usage, utilization, product pricing catalog, FOCUS v1.3 spec
Certificate Manager6Certificates, auto-certificates, providers
Activity Log2Contracts, events

120 tools total (118 product + 2 loader). For per-tool input/output schemas, see the per-product docs or the full Tool Reference 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 ignore notifications/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 emits notifications/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_tools and ionos_call_tool β€” and the model discovers and invokes the full catalogue through them at runtime. The real tool list never changes, so unlike lazy this needs no notifications/tools/list_changed support. 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 must search β†’ describe β†’ call rather than seeing tools directly, costing extra round-trips, so prefer eager on 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.

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-mcp

Building from source

make build
# or
go build -o ionoscloud-mcp .

Run make with no arguments to see the available targets.

Related projects

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.