Exoscale MCP by usefulapi

Inspect Exoscale: instances, volumes, SKS, DNS, IPs, quotas and usage; start, stop, reboot VMs.

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
98%
Vollständigkeit des Schemas
91%
Qualität der Benennung
78%
Risiko der Vergiftung
100%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Befunde (2)

  • LOWTool 'exoscale_list_block_storage_volumes' name length outside 3-30 rangein exoscale_list_block_storage_volumes
  • LOWTool 'exoscale_get_block_storage_volume' name length outside 3-30 rangein exoscale_get_block_storage_volume

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~5,482Tokens (Tool-Definitionen)
~1.3 KBTypische Antwortgröße
Erhebliche Auswirkung auf die Aufmerksamkeit (4.28% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "exoscale": {
      "url": "https://exoscale.usefulapi.io/mcp"
    }
  }
}

Remote-Endpunkte

https://exoscale.usefulapi.io/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (26)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢exoscale_list_zones

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢exoscale_get_organization

The Exoscale organization of the API key: id, name, address, country, account balance and currency. GET /organization.

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢exoscale_list_quotas(limit, offset)

Resource quotas of the organization: for each resource its current usage and limit (instances, volumes, elastic IPs, and so on). GET /quota.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Items per window, 1-500 (default 100). The API itself returns whole lists.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 500
    },
    "offset": {
      "description": "Items to skip (default 0). Pass the previous reply's next_offset.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢exoscale_get_quota(entity)

Usage and limit of one quota entity, for example 'instance'. Use exoscale_list_quotas for the names. GET /quota/{entity}.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "entity": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{1,64}$",
      "description": "Quota resource name, for example instance."
    }
  },
  "required": [
    "entity"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢exoscale_get_usage_report(period, limit, offset)

Aggregated usage of the organization for one month: product, variable, quantity and unit per line. GET /usage-report.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "period": {
      "description": "Month, YYYY-MM, for example 2026-09. Default: the current month.",
      "type": "string",
      "pattern": "^\\d{4}-(0[1-9]|1[0-2])$"
    },
    "limit": {
      "description": "Items per window, 1-500 (default 100). The API itself returns whole lists.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 500
    },
    "offset": {
      "description": "Items to skip (default 0). Pass the previous reply's next_offset.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢exoscale_list_instances(zone, ip_address, limit, 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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "zone": {
      "description": "Zone of the resource. Default: the zone chosen at login.",
      "type": "string",
      "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"
      ]
    },
    "ip_address": {
      "description": "Only the instance with this IP address.",
      "type": "string",
      "maxLength": 64
    },
    "limit": {
      "description": "Items per window, 1-500 (default 100). The API itself returns whole lists.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 500
    },
    "offset": {
      "description": "Items to skip (default 0). Pass the previous reply's next_offset.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢exoscale_get_instance(id, zone)

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}.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9-]{1,64}$",
      "description": "Exoscale resource id (a UUID)."
    },
    "zone": {
      "description": "Zone of the resource. Default: the zone chosen at login.",
      "type": "string",
      "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"
      ]
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡exoscale_start_instance(id, zone)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9-]{1,64}$",
      "description": "Exoscale resource id (a UUID)."
    },
    "zone": {
      "description": "Zone of the resource. Default: the zone chosen at login.",
      "type": "string",
      "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"
      ]
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴exoscale_stop_instance(id, zone)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9-]{1,64}$",
      "description": "Exoscale resource id (a UUID)."
    },
    "zone": {
      "description": "Zone of the resource. Default: the zone chosen at login.",
      "type": "string",
      "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"
      ]
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴exoscale_reboot_instance(id, zone)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9-]{1,64}$",
      "description": "Exoscale resource id (a UUID)."
    },
    "zone": {
      "description": "Zone of the resource. Default: the zone chosen at login.",
      "type": "string",
      "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"
      ]
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢exoscale_get_operation(id, zone)

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}.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9-]{1,64}$",
      "description": "Exoscale resource id (a UUID)."
    },
    "zone": {
      "description": "Zone of the resource. Default: the zone chosen at login.",
      "type": "string",
      "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"
      ]
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢exoscale_list_instance_types(zone, limit, offset)

List the compute instance types: family, size, CPUs, GPUs, memory and the zones that offer them. GET /instance-type.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "zone": {
      "description": "Zone of the resource. Default: the zone chosen at login.",
      "type": "string",
      "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"
      ]
    },
    "limit": {
      "description": "Items per window, 1-500 (default 100). The API itself returns whole lists.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 500
    },
    "offset": {
      "description": "Items to skip (default 0). Pass the previous reply's next_offset.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢exoscale_get_instance_type(id, zone)

Details of one instance type: family, size, CPUs, GPUs, memory, zones. GET /instance-type/{id}.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9-]{1,64}$",
      "description": "Exoscale resource id (a UUID)."
    },
    "zone": {
      "description": "Zone of the resource. Default: the zone chosen at login.",
      "type": "string",
      "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"
      ]
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢exoscale_list_templates(zone, visibility, family, limit, 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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "zone": {
      "description": "Zone of the resource. Default: the zone chosen at login.",
      "type": "string",
      "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"
      ]
    },
    "visibility": {
      "description": "public (Exoscale images) or private (your own). Default: the API default.",
      "type": "string",
      "enum": [
        "private",
        "public"
      ]
    },
    "family": {
      "description": "Template family, for example ubuntu.",
      "type": "string",
      "maxLength": 64
    },
    "limit": {
      "description": "Items per window, 1-500 (default 100). The API itself returns whole lists.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 500
    },
    "offset": {
      "description": "Items to skip (default 0). Pass the previous reply's next_offset.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢exoscale_get_template(id, zone)

Details of one template: name, family, version, default user, size, boot mode, checksum, zones. GET /template/{id}.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9-]{1,64}$",
      "description": "Exoscale resource id (a UUID)."
    },
    "zone": {
      "description": "Zone of the resource. Default: the zone chosen at login.",
      "type": "string",
      "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"
      ]
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢exoscale_list_security_groups(zone, visibility, limit, 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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "zone": {
      "description": "Zone of the resource. Default: the zone chosen at login.",
      "type": "string",
      "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"
      ]
    },
    "visibility": {
      "description": "private (yours) or public.",
      "type": "string",
      "enum": [
        "private",
        "public"
      ]
    },
    "limit": {
      "description": "Items per window, 1-500 (default 100). The API itself returns whole lists.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 500
    },
    "offset": {
      "description": "Items to skip (default 0). Pass the previous reply's next_offset.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢exoscale_get_security_group(id, zone)

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}.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9-]{1,64}$",
      "description": "Exoscale resource id (a UUID)."
    },
    "zone": {
      "description": "Zone of the resource. Default: the zone chosen at login.",
      "type": "string",
      "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"
      ]
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢exoscale_list_elastic_ips(zone, limit, offset)

List the elastic IP addresses of a zone with description, address family, health-check settings and labels. GET /elastic-ip.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "zone": {
      "description": "Zone of the resource. Default: the zone chosen at login.",
      "type": "string",
      "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"
      ]
    },
    "limit": {
      "description": "Items per window, 1-500 (default 100). The API itself returns whole lists.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 500
    },
    "offset": {
      "description": "Items to skip (default 0). Pass the previous reply's next_offset.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢exoscale_get_elastic_ip(id, zone)

Details of one elastic IP: address, CIDR, family, description, health check and labels. GET /elastic-ip/{id}.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9-]{1,64}$",
      "description": "Exoscale resource id (a UUID)."
    },
    "zone": {
      "description": "Zone of the resource. Default: the zone chosen at login.",
      "type": "string",
      "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"
      ]
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢exoscale_list_block_storage_volumes(zone, instance_id, limit, offset)

List the block storage volumes of a zone: name, size, state, the instance each is attached to, encryption and snapshots. GET /block-storage.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "zone": {
      "description": "Zone of the resource. Default: the zone chosen at login.",
      "type": "string",
      "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"
      ]
    },
    "instance_id": {
      "description": "Only the volumes attached to this instance.",
      "type": "string",
      "pattern": "^[A-Za-z0-9-]{1,64}$"
    },
    "limit": {
      "description": "Items per window, 1-500 (default 100). The API itself returns whole lists.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 500
    },
    "offset": {
      "description": "Items to skip (default 0). Pass the previous reply's next_offset.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢exoscale_get_block_storage_volume(id, zone)

Details of one block storage volume: size, block size, state, attached instance, encryption, labels and snapshots. GET /block-storage/{id}.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9-]{1,64}$",
      "description": "Exoscale resource id (a UUID)."
    },
    "zone": {
      "description": "Zone of the resource. Default: the zone chosen at login.",
      "type": "string",
      "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"
      ]
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢exoscale_list_sks_clusters(zone, limit, offset)

List the Scalable Kubernetes Service (SKS) clusters of a zone: name, version, state, level, CNI, endpoint and node pools. GET /sks-cluster.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "zone": {
      "description": "Zone of the resource. Default: the zone chosen at login.",
      "type": "string",
      "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"
      ]
    },
    "limit": {
      "description": "Items per window, 1-500 (default 100). The API itself returns whole lists.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 500
    },
    "offset": {
      "description": "Items to skip (default 0). Pass the previous reply's next_offset.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢exoscale_get_sks_cluster(id, zone)

Details of one SKS cluster: version, state, level, CNI, add-ons, OIDC settings (no secrets), endpoint and node pools. GET /sks-cluster/{id}.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9-]{1,64}$",
      "description": "Exoscale resource id (a UUID)."
    },
    "zone": {
      "description": "Zone of the resource. Default: the zone chosen at login.",
      "type": "string",
      "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"
      ]
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢exoscale_list_dns_domains(limit, offset)

List the DNS domains (zones) hosted at Exoscale: id, unicode name, creation date. DNS is the same in every zone. GET /dns-domain.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Items per window, 1-500 (default 100). The API itself returns whole lists.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 500
    },
    "offset": {
      "description": "Items to skip (default 0). Pass the previous reply's next_offset.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢exoscale_get_dns_domain(id)

Details of one DNS domain. GET /dns-domain/{id}.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9-]{1,64}$",
      "description": "Exoscale resource id (a UUID)."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢exoscale_list_dns_records(domain_id, limit, 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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "domain_id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9-]{1,64}$",
      "description": "Exoscale resource id (a UUID)."
    },
    "limit": {
      "description": "Items per window, 1-500 (default 100). The API itself returns whole lists.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 500
    },
    "offset": {
      "description": "Items to skip (default 0). Pass the previous reply's next_offset.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    }
  },
  "required": [
    "domain_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet26 Tools