Exoscale MCP by usefulapi

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

我該用這個嗎

品質與安全性

A
說明品質
98%
結構描述完整度
91%
命名品質
78%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

發現項目(2)

  • LOWTool 'exoscale_list_block_storage_volumes' name length outside 3-30 range在 exoscale_list_block_storage_volumes 中
  • LOWTool 'exoscale_get_block_storage_volume' name length outside 3-30 range在 exoscale_get_block_storage_volume 中

根據工具定義與協定合規性的自動化分析。

上下文成本

~5,482Token(工具定義)
~1.3 KB典型回應大小
顯著的注意力影響(128k 上下文的 4.28%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

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

遠端端點

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

它能做什麼

工具清單

工具(26)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🟢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.

輸入結構描述

{
  "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.

輸入結構描述

{
  "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.

輸入結構描述

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

輸入結構描述

{
  "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.

輸入結構描述

{
  "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.

輸入結構描述

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

輸入結構描述

{
  "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.

輸入結構描述

{
  "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.

輸入結構描述

{
  "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.

輸入結構描述

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

輸入結構描述

{
  "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.

輸入結構描述

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

輸入結構描述

{
  "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.

輸入結構描述

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

輸入結構描述

{
  "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.

輸入結構描述

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

輸入結構描述

{
  "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.

輸入結構描述

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

輸入結構描述

{
  "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.

輸入結構描述

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

輸入結構描述

{
  "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.

輸入結構描述

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

輸入結構描述

{
  "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.

輸入結構描述

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

輸入結構描述

{
  "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.

輸入結構描述

{
  "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"
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本26 個工具