Exoscale MCP by usefulapi
by usefulapi.io · remote · no sign-in to list tools · v1.3.3 · published by io.usefulapi
Inspect Exoscale: instances, volumes, SKS, DNS, IPs, quotas and usage; start, stop, reboot VMs.
26 tools: 2 can delete or cancel things, 1 change things and 23 only read.
Scanned Oct 21, 2026
- Deletes or cancels2Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things1Claude Code: ask: see these tools
- Only reads23Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http exoscale https://exoscale.usefulapi.io/mcpTools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
26 tools
Deletes or cancels 2Claude Code: deny
exoscale_reboot_instanceWRITE: reboot a running compute instance.No findings
Why it is in this group
- The description's first verb is "write": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: reboot a running compute instance. Running services restart and unsaved data in memory is lost. Returns an operation; poll it with exoscale_get_operation. PUT /instance/{id}:reboot.
Annotations the server declares
- title: Reboot compute instance
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
exoscale_stop_instanceWRITE: stop a running compute instance.No findings
Why it is in this group
- The name "exoscale_stop_instance" says "stop": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: stop a running compute instance. Running services go down and the public IP may change unless it is an elastic IP. Returns an operation; poll it with exoscale_get_operation. PUT /instance/{id}:stop.
Annotations the server declares
- title: Stop compute instance
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
Changes things 1Claude Code: ask
exoscale_start_instanceWRITE: start a stopped compute instance (normal boot, no rescue profile).No findings
Why it is in this group
- The name "exoscale_start_instance" says "start": a word for a change.
Description, as the server wrote it WRITE: start a stopped compute instance (normal boot, no rescue profile). Billing for the instance resumes. Returns an operation; poll it with exoscale_get_operation. PUT /instance/{id}:start.
Annotations the server declares
- title: Start compute instance
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
Only reads 23Claude Code: allow
exoscale_get_block_storage_volumeDetails of one block storage volume: size, block size, state, attached instance, encryption, labels and snapshots.No findings
Why it is in this group
- The name "exoscale_get_block_storage_volume" says "get": a word for reading.
Description, as the server wrote it Details of one block storage volume: size, block size, state, attached instance, encryption, labels and snapshots. GET /block-storage/{id}.
Annotations the server declares
- title: Get block storage volume
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
exoscale_get_dns_domainDetails of one DNS domain.No findings
Why it is in this group
- The name "exoscale_get_dns_domain" says "get": a word for reading.
Description, as the server wrote it Details of one DNS domain. GET /dns-domain/{id}.
Annotations the server declares
- title: Get DNS domain
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
exoscale_get_elastic_ipDetails of one elastic IP: address, CIDR, family, description, health check and labels.No findings
Why it is in this group
- The name "exoscale_get_elastic_ip" says "get": a word for reading.
Description, as the server wrote it Details of one elastic IP: address, CIDR, family, description, health check and labels. GET /elastic-ip/{id}.
Annotations the server declares
- title: Get elastic IP
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
exoscale_get_instanceDetails of one compute instance: state, type, template, disk size, networks, security groups, elastic IPs, snapshots.No findings
Why it is in this group
- The name "exoscale_get_instance" says "get": a word for reading.
Description, as the server wrote it Details of one compute instance: state, type, template, disk size, networks, security groups, elastic IPs, snapshots. The cloud-init user-data is never returned. GET /instance/{id}.
Annotations the server declares
- title: Get compute instance
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
exoscale_get_instance_typeDetails of one instance type: family, size, CPUs, GPUs, memory, zones.No findings
Why it is in this group
- The name "exoscale_get_instance_type" says "get": a word for reading.
Description, as the server wrote it Details of one instance type: family, size, CPUs, GPUs, memory, zones. GET /instance-type/{id}.
Annotations the server declares
- title: Get instance type
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
exoscale_get_operationState of an asynchronous operation (pending, success, failure, timeout), for example the reply of a start, stop or reboot.No findings
Why it is in this group
- The name "exoscale_get_operation" says "get": a word for reading.
Description, as the server wrote it State of an asynchronous operation (pending, success, failure, timeout), for example the reply of a start, stop or reboot. Use the same zone as the call that created it. GET /operation/{id}.
Annotations the server declares
- title: Get operation
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
exoscale_get_organizationThe Exoscale organization of the API key: id, name, address, country, account balance and currency.No findings
Why it is in this group
- The name "exoscale_get_organization" says "get": a word for reading.
Description, as the server wrote it The Exoscale organization of the API key: id, name, address, country, account balance and currency. GET /organization.
Annotations the server declares
- title: Get organization
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
exoscale_get_quotaUsage and limit of one quota entity, for example 'instance'.No findings
Why it is in this group
- The name "exoscale_get_quota" says "get": a word for reading.
Description, as the server wrote it Usage and limit of one quota entity, for example 'instance'. Use exoscale_list_quotas for the names. GET /quota/{entity}.
Annotations the server declares
- title: Get quota
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
exoscale_get_security_groupDetails of one security group: description and external sources, with the rules (protocol, ports, network, direction) when the API includes them.No findings
Why it is in this group
- The name "exoscale_get_security_group" says "get": a word for reading.
Description, as the server wrote it Details of one security group: description and external sources, with the rules (protocol, ports, network, direction) when the API includes them. GET /security-group/{id}.
Annotations the server declares
- title: Get security group
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
exoscale_get_sks_clusterDetails of one SKS cluster: version, state, level, CNI, add-ons, OIDC settings (no secrets), endpoint and node pools.No findings
Why it is in this group
- The name "exoscale_get_sks_cluster" says "get": a word for reading.
Description, as the server wrote it Details of one SKS cluster: version, state, level, CNI, add-ons, OIDC settings (no secrets), endpoint and node pools. GET /sks-cluster/{id}.
Annotations the server declares
- title: Get SKS cluster
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
exoscale_get_templateDetails of one template: name, family, version, default user, size, boot mode, checksum, zones.No findings
Why it is in this group
- The name "exoscale_get_template" says "get": a word for reading.
Description, as the server wrote it Details of one template: name, family, version, default user, size, boot mode, checksum, zones. GET /template/{id}.
Annotations the server declares
- title: Get template
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
exoscale_get_usage_reportAggregated usage of the organization for one month: product, variable, quantity and unit per line.No findings
Why it is in this group
- The name "exoscale_get_usage_report" says "get": a word for reading.
Description, as the server wrote it Aggregated usage of the organization for one month: product, variable, quantity and unit per line. GET /usage-report.
Annotations the server declares
- title: Get usage report
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
exoscale_list_block_storage_volumesList the block storage volumes of a zone: name, size, state, the instance each is attached to, encryption and snapshots.No findings
Why it is in this group
- The name "exoscale_list_block_storage_volumes" says "list": a word for reading.
Description, as the server wrote it List the block storage volumes of a zone: name, size, state, the instance each is attached to, encryption and snapshots. GET /block-storage.
Annotations the server declares
- title: List block storage volumes
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
exoscale_list_dns_domainsList the DNS domains (zones) hosted at Exoscale: id, unicode name, creation date.No findings
Why it is in this group
- The name "exoscale_list_dns_domains" says "list": a word for reading.
Description, as the server wrote it List the DNS domains (zones) hosted at Exoscale: id, unicode name, creation date. DNS is the same in every zone. GET /dns-domain.
Annotations the server declares
- title: List DNS domains
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
exoscale_list_dns_recordsList the records of one DNS domain: name, type, content, TTL, priority.No findings
Why it is in this group
- The name "exoscale_list_dns_records" says "list": a word for reading.
Description, as the server wrote it List the records of one DNS domain: name, type, content, TTL, priority. Use exoscale_list_dns_domains for the domain id. GET /dns-domain/{domain-id}/record.
Annotations the server declares
- title: List DNS records
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
exoscale_list_elastic_ipsList the elastic IP addresses of a zone with description, address family, health-check settings and labels.No findings
Why it is in this group
- The name "exoscale_list_elastic_ips" says "list": a word for reading.
Description, as the server wrote it List the elastic IP addresses of a zone with description, address family, health-check settings and labels. GET /elastic-ip.
Annotations the server declares
- title: List elastic IPs
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
exoscale_list_instance_typesList the compute instance types: family, size, CPUs, GPUs, memory and the zones that offer them.No findings
Why it is in this group
- The name "exoscale_list_instance_types" says "list": a word for reading.
Description, as the server wrote it List the compute instance types: family, size, CPUs, GPUs, memory and the zones that offer them. GET /instance-type.
Annotations the server declares
- title: List instance types
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
exoscale_list_instancesList the compute instances of one zone: id, name, state, instance type, template, IP addresses and security groups.No findings
Why it is in this group
- The name "exoscale_list_instances" says "list": a word for reading.
Description, as the server wrote it List the compute instances of one zone: id, name, state, instance type, template, IP addresses and security groups. Call once per zone for a full inventory. GET /instance.
Annotations the server declares
- title: List compute instances
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
exoscale_list_quotasResource quotas of the organization: for each resource its current usage and limit (instances, volumes, elastic IPs, and so on).No findings
Why it is in this group
- The name "exoscale_list_quotas" says "list": a word for reading.
Description, as the server wrote it Resource quotas of the organization: for each resource its current usage and limit (instances, volumes, elastic IPs, and so on). GET /quota.
Annotations the server declares
- title: List quotas
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
exoscale_list_security_groupsList the security groups of a zone: id, name, description and external sources (firewall), with the rules when the API includes them.No findings
Why it is in this group
- The name "exoscale_list_security_groups" says "list": a word for reading.
Description, as the server wrote it List the security groups of a zone: id, name, description and external sources (firewall), with the rules when the API includes them. GET /security-group.
Annotations the server declares
- title: List security groups
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
exoscale_list_sks_clustersList the Scalable Kubernetes Service (SKS) clusters of a zone: name, version, state, level, CNI, endpoint and node pools.No findings
Why it is in this group
- The name "exoscale_list_sks_clusters" says "list": a word for reading.
Description, as the server wrote it List the Scalable Kubernetes Service (SKS) clusters of a zone: name, version, state, level, CNI, endpoint and node pools. GET /sks-cluster.
Annotations the server declares
- title: List SKS clusters
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
exoscale_list_templatesList the compute templates (OS images) of a zone: name, family, version, default user, size, visibility.No findings
Why it is in this group
- The name "exoscale_list_templates" says "list": a word for reading.
Description, as the server wrote it List the compute templates (OS images) of a zone: name, family, version, default user, size, visibility. The public list is long: filter by family or page with limit/offset. GET /template.
Annotations the server declares
- title: List templates
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
exoscale_list_zonesList the Exoscale zones (data centers) with their API and object-storage endpoints.No findings
Why it is in this group
- The name "exoscale_list_zones" says "list": a word for reading.
Description, as the server wrote it List the Exoscale zones (data centers) with their API and object-storage endpoints. Compute, storage and network resources live in one zone each. GET /zone.
Annotations the server declares
- title: List zones
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.3.3. Values in angle brackets are yours to fill in.
claude mcp add --transport http exoscale https://exoscale.usefulapi.io/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__exoscale__exoscale_list_zones",
"mcp__exoscale__exoscale_get_organization",
"mcp__exoscale__exoscale_list_quotas",
"mcp__exoscale__exoscale_get_quota",
"mcp__exoscale__exoscale_get_usage_report",
"mcp__exoscale__exoscale_list_instances",
"mcp__exoscale__exoscale_get_instance",
"mcp__exoscale__exoscale_get_operation",
"mcp__exoscale__exoscale_list_instance_types",
"mcp__exoscale__exoscale_get_instance_type",
"mcp__exoscale__exoscale_list_templates",
"mcp__exoscale__exoscale_get_template",
"mcp__exoscale__exoscale_list_security_groups",
"mcp__exoscale__exoscale_get_security_group",
"mcp__exoscale__exoscale_list_elastic_ips",
"mcp__exoscale__exoscale_get_elastic_ip",
"mcp__exoscale__exoscale_list_block_storage_volumes",
"mcp__exoscale__exoscale_get_block_storage_volume",
"mcp__exoscale__exoscale_list_sks_clusters",
"mcp__exoscale__exoscale_get_sks_cluster",
"mcp__exoscale__exoscale_list_dns_domains",
"mcp__exoscale__exoscale_get_dns_domain",
"mcp__exoscale__exoscale_list_dns_records"
],
"ask": [
"mcp__exoscale__exoscale_start_instance"
],
"deny": [
"mcp__exoscale__exoscale_stop_instance",
"mcp__exoscale__exoscale_reboot_instance"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as exoscale. Review it before you use it.