list_activitylog_contractsLABSCO SUMMARY
Writes are gated twice, and the README is blunt about why.
Turning on IONOS_MCP_TOOL_SCOPE lets a model provision billable infrastructure in a live account, and every create, delete and disruptive action then needs two calls — the first returns a preview and a single-use token with a 5-minute TTL, only the second executes. The project says plainly that this cannot stop a client set to auto-approve tool calls. Read-only is the honest default here, and grant write rather than destructive when deletion is not part of the job.
What it is
A local binary, built and maintained by the IONOS Cloud team, that connects your IONOS account to an MCP client. API calls go straight from your machine to IONOS over HTTPS, with no third-party AI vendor in the data path. Every tool registered by default is an inspection operation, which is what makes it safe to point at a production account.
What you get
- Compute Engine — data centers, servers, volumes, NICs, LANs, firewall rules, IP blocks, load balancers (basic, network and application), NAT gateways, security groups, private cross-connects, snapshots, images, templates, locations, requests and contract
- Managed Kubernetes — clusters, node pools, nodes and available versions
- Object Storage — buckets and their configuration for CORS, encryption, lifecycle, policy, public access block, replication, tagging, versioning and Object Lock, plus objects, access keys and regions
- DNS — zones, zone files, records, reverse records, secondary zones, DNSSEC and quota
- Billing — profile, invoices, provisioning intervals, traffic, usage, utilization and the product pricing catalog
- Certificate Manager and Activity Log — certificates, auto-certificates and providers; contracts and events
- By the README's count, 118 read-only tools plus 2 loader tools; opting in raises the surface to 165 tools with
writeand 195 withdestructive - Three loading modes for clients with tool caps:
eagerregisters everything,lazyhides Compute and Object Storage behind loader tools,dynamicexposes only search, describe and call meta-tools
Requirements
An IONOS Cloud account and an API token, generated in the DCD under Management → Token Management, passed as IONOS_TOKEN. Object Storage data-plane tools additionally need IONOS_S3_ACCESS_KEY and IONOS_S3_SECRET_KEY, created under Key management. Install with brew install ionos-cloud/ionos-cloud/ionoscloud-mcp, go install, a pre-built release binary for Linux, macOS or Windows on amd64 and arm64, or the ghcr.io/ionos-cloud/ionoscloud-mcp image. Write tools stay unregistered unless IONOS_MCP_TOOL_SCOPE is set to write or destructive. Go 1.25+ to build from source. Apache 2.0.
Setup effort
One command plus a key — brew install ionos-cloud/ionos-cloud/ionoscloud-mcp, then supply credentials
USE CASES
Auditing what is actually running in the account
Ask for data centers, servers, volumes and LANs in one pass — safe to run against production, since the default scope cannot change anything.
Explaining an invoice
Pull usage, traffic and utilization alongside the pricing catalog so the cost and its cause come back together.
Checking a bucket is not open to the world
Read the bucket's policy, public access block and encryption configuration without opening the console.
Fitting the server into a client with a tool cap
Set the loading mode to dynamic so only three meta-tools register and the catalog is browsed through them.
Provisioning a node pool with a human in the loop
Enable the write scope, read the preview the first call returns, then send the confirmation token to execute.
117 tools
Listed in project docs. Your client may show a different list.
list_activitylog_eventslist_billing_evnlist_billing_evn_by_periodlist_billing_invoiceslist_billing_invoices_by_periodget_billing_invoicelist_billing_productsget_billing_profilelist_billing_trafficlist_billing_traffic_by_periodlist_billing_usageget_billing_usage_by_datacenterlist_billing_utilizationlist_billing_utilization_by_periodget_billing_utilization_dailylist_cert_auto_certificatesget_cert_auto_certificatelist_cert_certificatesget_cert_certificatelist_cert_providersget_cert_providerlist_application_loadbalancersget_application_loadbalancerlist_alb_forwarding_rulesget_contractlist_datacentersget_datacenterlist_firewall_rulesget_firewall_rulelist_imageslist_ip_blocksget_ip_blocklist_lansget_lanlist_lan_nicslist_loadbalancersget_loadbalancerlist_loadbalancer_nicslist_locationslist_nat_gatewaysget_nat_gatewaylist_nat_gateway_ruleslist_network_loadbalancersget_network_loadbalancerlist_nlb_forwarding_ruleslist_nicsget_niclist_private_cross_connectsget_private_cross_connectlist_requestsget_requestget_request_statuslist_security_groupsget_security_grouplist_security_group_rulesget_security_group_rulelist_server_volumeslist_server_cdromslist_server_gpusget_server_gpuget_server_remote_consolelist_serversget_serverlist_snapshotsget_snapshotlist_target_groupsget_target_grouplist_templatesget_templatelist_volumesget_volumelist_dns_zone_dnssec_keysget_dns_quotalist_dns_recordslist_dns_zone_recordsget_dns_recordlist_dns_secondary_zone_recordslist_dns_reverse_recordsget_dns_reverse_recordlist_dns_secondary_zonesget_dns_secondary_zoneget_dns_secondary_zone_axfrlist_dns_zonesget_dns_zoneget_dns_zone_filelist_k8s_clustersget_k8s_clusterlist_k8s_nodepool_nodesget_k8s_nodelist_k8s_nodepoolsget_k8s_nodepoollist_k8s_versionsget_k8s_default_versionlist_object_storage_access_keysget_object_storage_access_keyget_object_storage_bucket_corsget_object_storage_bucket_encryptionget_object_storage_bucket_lifecycleget_object_storage_bucket_policyget_object_storage_bucket_policy_statusget_object_storage_bucket_replicationget_object_storage_bucket_taggingget_object_storage_bucket_versioningget_object_storage_bucket_public_access_blockget_object_storage_bucket_lock_configurationlist_object_storage_bucketsget_object_storage_bucket_locationhead_object_storage_bucketlist_object_storage_objectshead_object_storage_objectlist_object_storage_object_versionsget_object_storage_object_taggingget_object_storage_object_retentionget_object_storage_object_legal_holdlist_object_storage_regionsget_object_storage_regionBEFORE YOU INSTALL
What to know first
Tools you get
117 tools named in the project's documentation.
Requires
IONOS_TOKEN in your environment
Optional
- IONOS_S3_ACCESS_KEY in your environment
- IONOS_S3_SECRET_KEY in your environment
INSTALLATION
Connect your client
Server setup
brew install ionos-cloud/ionos-cloud/ionoscloud-mcpMCP Clients
Claude Desktop — Smithery
npx -y @smithery/cli install @ionos-cloud/ionoscloud-mcp --client claude-desktopClaude Desktop, Claude Code
{
"mcpServers": {
"ionoscloud": {
"command": "<YOUR_PATH_TO_IONOSCLOUD_MCP>",
"env": {
"IONOS_TOKEN": "<YOUR_IONOS_TOKEN>"
}
}
}
}The configuration on this page does not set IONOS_S3_ACCESS_KEY and IONOS_S3_SECRET_KEY; the project's instructions set them with an export line. An app opened from its icon or dock does not see variables exported in a terminal, so to supply them, use the block's "env" section.
Cursor
{
"mcpServers": {
"ionoscloud": {
"command": "<YOUR_PATH_TO_IONOSCLOUD_MCP>",
"args": [
"--load-mode",
"dynamic"
],
"env": {
"IONOS_TOKEN": "<YOUR_IONOS_TOKEN>"
}
}
}
}The configuration on this page does not set IONOS_S3_ACCESS_KEY and IONOS_S3_SECRET_KEY; the project's instructions set them with an export line. An app opened from its icon or dock does not see variables exported in a terminal, so to supply them, use the block's "env" section.
Windsurf
{
"mcpServers": {
"ionoscloud": {
"command": "<YOUR_PATH_TO_IONOSCLOUD_MCP>",
"args": [
"--load-mode",
"lazy"
],
"env": {
"IONOS_TOKEN": "<YOUR_IONOS_TOKEN>"
}
}
}
}The configuration on this page does not set IONOS_S3_ACCESS_KEY and IONOS_S3_SECRET_KEY; the project's instructions set them with an export line. An app opened from its icon or dock does not see variables exported in a terminal, so to supply them, use the block's "env" section.
Any MCP client — Docker
docker run -i --rm \
-e IONOS_TOKEN="$IONOS_TOKEN" \
ghcr.io/ionos-cloud/ionoscloud-mcp