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 rangeexoscale_list_block_storage_volumes 内
  • LOWTool 'exoscale_get_block_storage_volume' name length outside 3-30 rangeexoscale_get_block_storage_volume 内

ツール定義とプロトコルへの準拠に関する自動分析に基づいています。

コンテキストコスト

~5,482トークン数(ツール定義)
~1.3 KB一般的なレスポンスサイズ
注意への影響は大きい(128k コンテキストの 4.28%)

これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。

インストール

ワンクリックインストール

これを `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 件