exoscale-mcp-server

klogins-hash/exoscale-mcp-server

3.2

If you are the rightful owner of exoscale-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.

The Exoscale MCP Server is a Model Context Protocol server designed to manage Exoscale cloud resources efficiently.

Tools
5
Resources
0
Prompts
0

Exoscale MCP Server

A Model Context Protocol (MCP) server for managing Exoscale cloud resources. This server provides tools for managing compute instances, storage, DNS, databases, and networking resources through the Exoscale CLI.

Features

Compute Instance Management

  • List, create, delete compute instances
  • Start and stop instances
  • Get detailed instance information

Storage (Simple Object Storage)

  • List storage buckets
  • Create and delete buckets
  • Manage object storage across zones

DNS Management

  • List and create DNS domains
  • Manage DNS records (A, AAAA, CNAME, MX, TXT, etc.)
  • Full DNS configuration support

Database-as-a-Service (DBaaS)

  • List all database services
  • Get detailed information for PostgreSQL, MySQL, Kafka, OpenSearch, Redis/Valkey, and Grafana services

Networking

  • List and manage security groups
  • List private networks
  • View security group rules

Block Storage

  • List block storage volumes

Prerequisites

  1. Exoscale CLI: The exo CLI tool must be installed and configured

    # Install via Homebrew (macOS)
    brew install exoscale/tap/exoscale-cli
    
    # Or download from https://github.com/exoscale/cli/releases
    
  2. Exoscale API Credentials: Configure the CLI with your resource-manager API key

    exo config add resource-manager
    # Enter API Key: EXOd4e0bc1d6ea62bf2d414b24e
    # Enter API Secret: ekOsjtNAEUCDD35rp2T80xQfqYQ4Bp1R1qxfjx1voKw
    
  3. Python 3.10+: Required for running the MCP server

Installation

Option 1: Install via pip (recommended for Claude Desktop)

cd /Users/franksimpson/exoscale-mcp-server
pip install -e .

Option 2: Install via uv (faster)

cd /Users/franksimpson/exoscale-mcp-server
uv pip install -e .

Configuration

Claude Desktop Configuration

Add this to your Claude Desktop config file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "exoscale": {
      "command": "python",
      "args": [
        "-m",
        "exoscale_mcp_server.server"
      ],
      "env": {
        "EXOSCALE_ACCOUNT": "resource-manager"
      }
    }
  }
}

Or if installed via uv:

{
  "mcpServers": {
    "exoscale": {
      "command": "uvx",
      "args": [
        "exoscale-mcp-server"
      ],
      "env": {
        "EXOSCALE_ACCOUNT": "resource-manager"
      }
    }
  }
}

Environment Variables

  • EXOSCALE_ACCOUNT: The Exoscale CLI account profile to use (default: resource-manager)

Available Tools

Compute Instances

  • list-compute-instances: List all instances in a zone
  • get-compute-instance: Get detailed instance information
  • create-compute-instance: Create a new instance
  • delete-compute-instance: Delete an instance
  • start-compute-instance: Start a stopped instance
  • stop-compute-instance: Stop a running instance

Storage

  • list-storage-buckets: List all storage buckets
  • create-storage-bucket: Create a new bucket
  • delete-storage-bucket: Delete a bucket

DNS

  • list-dns-domains: List all DNS domains
  • create-dns-domain: Create a new DNS domain
  • list-dns-records: List records for a domain
  • add-dns-record: Add a DNS record

DBaaS

  • list-dbaas-services: List all database services
  • get-dbaas-service: Get details of a specific database service

Networking

  • list-security-groups: List security groups in a zone
  • get-security-group: Get security group details
  • list-private-networks: List private networks

Block Storage

  • list-block-storage: List block storage volumes

Usage Examples

Once configured in Claude Desktop, you can use natural language to manage your Exoscale resources:

  • "List all my compute instances in ch-gva-2"
  • "Create a new instance called web-server in ch-dk-2 using Ubuntu 22.04"
  • "Show me all my DNS domains"
  • "Add an A record for www pointing to 185.19.28.10 on example.com"
  • "List all my database services"
  • "What security groups do I have in ch-gva-2?"

IAM Permissions

This server is designed to work with the resource-manager IAM role, which:

Allows:

  • All resource management operations (compute, storage, DNS, DBaaS, networking)
  • Creating, reading, updating, and deleting resources

Denies:

  • Account-level IAM operations
  • Managing API keys and roles
  • Modifying organization policies

This ensures safe resource management without the risk of account-level changes.

Development

Running locally

cd /Users/franksimpson/exoscale-mcp-server
python -m exoscale_mcp_server.server

Testing with MCP Inspector

npx @modelcontextprotocol/inspector python -m exoscale_mcp_server.server

Troubleshooting

CLI not found

Ensure the exo CLI is installed and in your PATH:

which exo
exo version

Authentication errors

Verify your API credentials are configured:

exo config list
exo config show resource-manager

Permission denied

Ensure you're using the resource-manager API key with the correct IAM role.

License

MIT

Support

For issues and questions: