Inspect Exoscale: instances, volumes, SKS, DNS, IPs, quotas and usage; start, stop, reboot VMs.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Details of one block storage volume: size, block size, state, attached instance, encryption, labels and snapshots. GET /block-storage/{id}.
Exoscale resource id (a UUID).
Zone of the resource. Default: the zone chosen at login.
Details of one block storage volume: size, block size, state, attached instance, encryption, labels and snapshots. GET /block-storage/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | Exoscale resource id (a UUID). |
| zone | string | Zone of the resource. Default: the zone chosen at login. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9-]{1,64}$",
"description": "Exoscale resource id (a UUID)."
},
"zone": {
"enum": [
"ch-gva-2",
"ch-dk-2",
"de-fra-1",
"de-muc-1",
"at-vie-1",
"at-vie-2",
"bg-sof-1",
"hr-zag-1"
],
"type": "string",
"description": "Zone of the resource. Default: the zone chosen at login."
}
}
}Details of one DNS domain. GET /dns-domain/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | Exoscale resource id (a UUID). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9-]{1,64}$",
"description": "Exoscale resource id (a UUID)."
}
}
}Details of one elastic IP: address, CIDR, family, description, health check and labels. GET /elastic-ip/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | Exoscale resource id (a UUID). |
| zone | string | Zone of the resource. Default: the zone chosen at login. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9-]{1,64}$",
"description": "Exoscale resource id (a UUID)."
},
"zone": {
"enum": [
"ch-gva-2",
"ch-dk-2",
"de-fra-1",
"de-muc-1",
"at-vie-1",
"at-vie-2",
"bg-sof-1",
"hr-zag-1"
],
"type": "string",
"description": "Zone of the resource. Default: the zone chosen at login."
}
}
}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}.
| Argument | Type | Description |
|---|---|---|
| id* | string | Exoscale resource id (a UUID). |
| zone | string | Zone of the resource. Default: the zone chosen at login. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9-]{1,64}$",
"description": "Exoscale resource id (a UUID)."
},
"zone": {
"enum": [
"ch-gva-2",
"ch-dk-2",
"de-fra-1",
"de-muc-1",
"at-vie-1",
"at-vie-2",
"bg-sof-1",
"hr-zag-1"
],
"type": "string",
"description": "Zone of the resource. Default: the zone chosen at login."
}
}
}Details of one instance type: family, size, CPUs, GPUs, memory, zones. GET /instance-type/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | Exoscale resource id (a UUID). |
| zone | string | Zone of the resource. Default: the zone chosen at login. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9-]{1,64}$",
"description": "Exoscale resource id (a UUID)."
},
"zone": {
"enum": [
"ch-gva-2",
"ch-dk-2",
"de-fra-1",
"de-muc-1",
"at-vie-1",
"at-vie-2",
"bg-sof-1",
"hr-zag-1"
],
"type": "string",
"description": "Zone of the resource. Default: the zone chosen at login."
}
}
}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}.
| Argument | Type | Description |
|---|---|---|
| id* | string | Exoscale resource id (a UUID). |
| zone | string | Zone of the resource. Default: the zone chosen at login. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9-]{1,64}$",
"description": "Exoscale resource id (a UUID)."
},
"zone": {
"enum": [
"ch-gva-2",
"ch-dk-2",
"de-fra-1",
"de-muc-1",
"at-vie-1",
"at-vie-2",
"bg-sof-1",
"hr-zag-1"
],
"type": "string",
"description": "Zone of the resource. Default: the zone chosen at login."
}
}
}The Exoscale organization of the API key: id, name, address, country, account balance and currency. GET /organization.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Usage and limit of one quota entity, for example 'instance'. Use exoscale_list_quotas for the names. GET /quota/{entity}.
| Argument | Type | Description |
|---|---|---|
| entity* | string | Quota resource name, for example instance. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"entity"
],
"properties": {
"entity": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Quota resource name, for example instance."
}
}
}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}.
| Argument | Type | Description |
|---|---|---|
| id* | string | Exoscale resource id (a UUID). |
| zone | string | Zone of the resource. Default: the zone chosen at login. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9-]{1,64}$",
"description": "Exoscale resource id (a UUID)."
},
"zone": {
"enum": [
"ch-gva-2",
"ch-dk-2",
"de-fra-1",
"de-muc-1",
"at-vie-1",
"at-vie-2",
"bg-sof-1",
"hr-zag-1"
],
"type": "string",
"description": "Zone of the resource. Default: the zone chosen at login."
}
}
}Details of one SKS cluster: version, state, level, CNI, add-ons, OIDC settings (no secrets), endpoint and node pools. GET /sks-cluster/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | Exoscale resource id (a UUID). |
| zone | string | Zone of the resource. Default: the zone chosen at login. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9-]{1,64}$",
"description": "Exoscale resource id (a UUID)."
},
"zone": {
"enum": [
"ch-gva-2",
"ch-dk-2",
"de-fra-1",
"de-muc-1",
"at-vie-1",
"at-vie-2",
"bg-sof-1",
"hr-zag-1"
],
"type": "string",
"description": "Zone of the resource. Default: the zone chosen at login."
}
}
}Details of one template: name, family, version, default user, size, boot mode, checksum, zones. GET /template/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | Exoscale resource id (a UUID). |
| zone | string | Zone of the resource. Default: the zone chosen at login. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9-]{1,64}$",
"description": "Exoscale resource id (a UUID)."
},
"zone": {
"enum": [
"ch-gva-2",
"ch-dk-2",
"de-fra-1",
"de-muc-1",
"at-vie-1",
"at-vie-2",
"bg-sof-1",
"hr-zag-1"
],
"type": "string",
"description": "Zone of the resource. Default: the zone chosen at login."
}
}
}Aggregated usage of the organization for one month: product, variable, quantity and unit per line. GET /usage-report.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Items per window, 1-500 (default 100). The API itself returns whole lists. |
| offset | integer | Items to skip (default 0). Pass the previous reply's next_offset. |
| period | string | Month, YYYY-MM, for example 2026-09. Default: the current month. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 500,
"description": "Items per window, 1-500 (default 100). The API itself returns whole lists.",
"exclusiveMinimum": 0
},
"offset": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Items to skip (default 0). Pass the previous reply's next_offset."
},
"period": {
"type": "string",
"pattern": "^\\d{4}-(0[1-9]|1[0-2])$",
"description": "Month, YYYY-MM, for example 2026-09. Default: the current month."
}
}
}List the block storage volumes of a zone: name, size, state, the instance each is attached to, encryption and snapshots. GET /block-storage.
| Argument | Type | Description |
|---|---|---|
| zone | string | Zone of the resource. Default: the zone chosen at login. |
| limit | integer | Items per window, 1-500 (default 100). The API itself returns whole lists. |
| offset | integer | Items to skip (default 0). Pass the previous reply's next_offset. |
| instance_id | string | Only the volumes attached to this instance. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"zone": {
"enum": [
"ch-gva-2",
"ch-dk-2",
"de-fra-1",
"de-muc-1",
"at-vie-1",
"at-vie-2",
"bg-sof-1",
"hr-zag-1"
],
"type": "string",
"description": "Zone of the resource. Default: the zone chosen at login."
},
"limit": {
"type": "integer",
"maximum": 500,
"description": "Items per window, 1-500 (default 100). The API itself returns whole lists.",
"exclusiveMinimum": 0
},
"offset": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Items to skip (default 0). Pass the previous reply's next_offset."
},
"instance_id": {
"type": "string",
"pattern": "^[A-Za-z0-9-]{1,64}$",
"description": "Only the volumes attached to this instance."
}
}
}List the DNS domains (zones) hosted at Exoscale: id, unicode name, creation date. DNS is the same in every zone. GET /dns-domain.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Items per window, 1-500 (default 100). The API itself returns whole lists. |
| offset | integer | Items to skip (default 0). Pass the previous reply's next_offset. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 500,
"description": "Items per window, 1-500 (default 100). The API itself returns whole lists.",
"exclusiveMinimum": 0
},
"offset": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Items to skip (default 0). Pass the previous reply's next_offset."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Items per window, 1-500 (default 100). The API itself returns whole lists. |
| offset | integer | Items to skip (default 0). Pass the previous reply's next_offset. |
| domain_id* | string | Exoscale resource id (a UUID). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"domain_id"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 500,
"description": "Items per window, 1-500 (default 100). The API itself returns whole lists.",
"exclusiveMinimum": 0
},
"offset": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Items to skip (default 0). Pass the previous reply's next_offset."
},
"domain_id": {
"type": "string",
"pattern": "^[A-Za-z0-9-]{1,64}$",
"description": "Exoscale resource id (a UUID)."
}
}
}List the elastic IP addresses of a zone with description, address family, health-check settings and labels. GET /elastic-ip.
| Argument | Type | Description |
|---|---|---|
| zone | string | Zone of the resource. Default: the zone chosen at login. |
| limit | integer | Items per window, 1-500 (default 100). The API itself returns whole lists. |
| offset | integer | Items to skip (default 0). Pass the previous reply's next_offset. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"zone": {
"enum": [
"ch-gva-2",
"ch-dk-2",
"de-fra-1",
"de-muc-1",
"at-vie-1",
"at-vie-2",
"bg-sof-1",
"hr-zag-1"
],
"type": "string",
"description": "Zone of the resource. Default: the zone chosen at login."
},
"limit": {
"type": "integer",
"maximum": 500,
"description": "Items per window, 1-500 (default 100). The API itself returns whole lists.",
"exclusiveMinimum": 0
},
"offset": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Items to skip (default 0). Pass the previous reply's next_offset."
}
}
}List the compute instance types: family, size, CPUs, GPUs, memory and the zones that offer them. GET /instance-type.
| Argument | Type | Description |
|---|---|---|
| zone | string | Zone of the resource. Default: the zone chosen at login. |
| limit | integer | Items per window, 1-500 (default 100). The API itself returns whole lists. |
| offset | integer | Items to skip (default 0). Pass the previous reply's next_offset. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"zone": {
"enum": [
"ch-gva-2",
"ch-dk-2",
"de-fra-1",
"de-muc-1",
"at-vie-1",
"at-vie-2",
"bg-sof-1",
"hr-zag-1"
],
"type": "string",
"description": "Zone of the resource. Default: the zone chosen at login."
},
"limit": {
"type": "integer",
"maximum": 500,
"description": "Items per window, 1-500 (default 100). The API itself returns whole lists.",
"exclusiveMinimum": 0
},
"offset": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Items to skip (default 0). Pass the previous reply's next_offset."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| zone | string | Zone of the resource. Default: the zone chosen at login. |
| limit | integer | Items per window, 1-500 (default 100). The API itself returns whole lists. |
| offset | integer | Items to skip (default 0). Pass the previous reply's next_offset. |
| ip_address | string | Only the instance with this IP address. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"zone": {
"enum": [
"ch-gva-2",
"ch-dk-2",
"de-fra-1",
"de-muc-1",
"at-vie-1",
"at-vie-2",
"bg-sof-1",
"hr-zag-1"
],
"type": "string",
"description": "Zone of the resource. Default: the zone chosen at login."
},
"limit": {
"type": "integer",
"maximum": 500,
"description": "Items per window, 1-500 (default 100). The API itself returns whole lists.",
"exclusiveMinimum": 0
},
"offset": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Items to skip (default 0). Pass the previous reply's next_offset."
},
"ip_address": {
"type": "string",
"maxLength": 64,
"description": "Only the instance with this IP address."
}
}
}Resource quotas of the organization: for each resource its current usage and limit (instances, volumes, elastic IPs, and so on). GET /quota.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Items per window, 1-500 (default 100). The API itself returns whole lists. |
| offset | integer | Items to skip (default 0). Pass the previous reply's next_offset. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 500,
"description": "Items per window, 1-500 (default 100). The API itself returns whole lists.",
"exclusiveMinimum": 0
},
"offset": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Items to skip (default 0). Pass the previous reply's next_offset."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| zone | string | Zone of the resource. Default: the zone chosen at login. |
| limit | integer | Items per window, 1-500 (default 100). The API itself returns whole lists. |
| offset | integer | Items to skip (default 0). Pass the previous reply's next_offset. |
| visibility | string | private (yours) or public. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"zone": {
"enum": [
"ch-gva-2",
"ch-dk-2",
"de-fra-1",
"de-muc-1",
"at-vie-1",
"at-vie-2",
"bg-sof-1",
"hr-zag-1"
],
"type": "string",
"description": "Zone of the resource. Default: the zone chosen at login."
},
"limit": {
"type": "integer",
"maximum": 500,
"description": "Items per window, 1-500 (default 100). The API itself returns whole lists.",
"exclusiveMinimum": 0
},
"offset": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Items to skip (default 0). Pass the previous reply's next_offset."
},
"visibility": {
"enum": [
"private",
"public"
],
"type": "string",
"description": "private (yours) or public."
}
}
}List the Scalable Kubernetes Service (SKS) clusters of a zone: name, version, state, level, CNI, endpoint and node pools. GET /sks-cluster.
| Argument | Type | Description |
|---|---|---|
| zone | string | Zone of the resource. Default: the zone chosen at login. |
| limit | integer | Items per window, 1-500 (default 100). The API itself returns whole lists. |
| offset | integer | Items to skip (default 0). Pass the previous reply's next_offset. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"zone": {
"enum": [
"ch-gva-2",
"ch-dk-2",
"de-fra-1",
"de-muc-1",
"at-vie-1",
"at-vie-2",
"bg-sof-1",
"hr-zag-1"
],
"type": "string",
"description": "Zone of the resource. Default: the zone chosen at login."
},
"limit": {
"type": "integer",
"maximum": 500,
"description": "Items per window, 1-500 (default 100). The API itself returns whole lists.",
"exclusiveMinimum": 0
},
"offset": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Items to skip (default 0). Pass the previous reply's next_offset."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| zone | string | Zone of the resource. Default: the zone chosen at login. |
| limit | integer | Items per window, 1-500 (default 100). The API itself returns whole lists. |
| family | string | Template family, for example ubuntu. |
| offset | integer | Items to skip (default 0). Pass the previous reply's next_offset. |
| visibility | string | public (Exoscale images) or private (your own). Default: the API default. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"zone": {
"enum": [
"ch-gva-2",
"ch-dk-2",
"de-fra-1",
"de-muc-1",
"at-vie-1",
"at-vie-2",
"bg-sof-1",
"hr-zag-1"
],
"type": "string",
"description": "Zone of the resource. Default: the zone chosen at login."
},
"limit": {
"type": "integer",
"maximum": 500,
"description": "Items per window, 1-500 (default 100). The API itself returns whole lists.",
"exclusiveMinimum": 0
},
"family": {
"type": "string",
"maxLength": 64,
"description": "Template family, for example ubuntu."
},
"offset": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Items to skip (default 0). Pass the previous reply's next_offset."
},
"visibility": {
"enum": [
"private",
"public"
],
"type": "string",
"description": "public (Exoscale images) or private (your own). Default: the API default."
}
}
}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.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}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.
| Argument | Type | Description |
|---|---|---|
| id* | string | Exoscale resource id (a UUID). |
| zone | string | Zone of the resource. Default: the zone chosen at login. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9-]{1,64}$",
"description": "Exoscale resource id (a UUID)."
},
"zone": {
"enum": [
"ch-gva-2",
"ch-dk-2",
"de-fra-1",
"de-muc-1",
"at-vie-1",
"at-vie-2",
"bg-sof-1",
"hr-zag-1"
],
"type": "string",
"description": "Zone of the resource. Default: the zone chosen at login."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| id* | string | Exoscale resource id (a UUID). |
| zone | string | Zone of the resource. Default: the zone chosen at login. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9-]{1,64}$",
"description": "Exoscale resource id (a UUID)."
},
"zone": {
"enum": [
"ch-gva-2",
"ch-dk-2",
"de-fra-1",
"de-muc-1",
"at-vie-1",
"at-vie-2",
"bg-sof-1",
"hr-zag-1"
],
"type": "string",
"description": "Zone of the resource. Default: the zone chosen at login."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| id* | string | Exoscale resource id (a UUID). |
| zone | string | Zone of the resource. Default: the zone chosen at login. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9-]{1,64}$",
"description": "Exoscale resource id (a UUID)."
},
"zone": {
"enum": [
"ch-gva-2",
"ch-dk-2",
"de-fra-1",
"de-muc-1",
"at-vie-1",
"at-vie-2",
"bg-sof-1",
"hr-zag-1"
],
"type": "string",
"description": "Zone of the resource. Default: the zone chosen at login."
}
}
}