Skip to main content
Glama

Scaleway MCP Server

A comprehensive Model Context Protocol (MCP) server for managing Scaleway cloud infrastructure. This server provides both local STDIO and HTTP-based interfaces for seamless integration with MCP clients.

πŸš€ Features

  • Complete Scaleway API Coverage: Manage instances, databases, storage, networking, and more

  • Dual Deployment Options: Local STDIO server and HTTP server for remote access

  • Serverless Ready: Deploy to Scaleway Serverless Containers with one command

  • MCP Protocol Compliant: Full support for MCP 2024-11-05 specification

  • Production Ready: Docker containerization, health checks, and monitoring

Related MCP server: Spotinst MCP Server

πŸ› οΈ Available Tools

Instance Management

  • list_instances - List all compute instances

  • get_instance - Get detailed instance information

  • start_instance - Start stopped instances

  • stop_instance - Stop running instances

Kubernetes

  • list_k8s_clusters - List all Kubernetes clusters

Database Management

  • list_databases - List PostgreSQL, MySQL databases

  • get_database - Get detailed database information

Object Storage

  • list_buckets - List all S3-compatible storage buckets

Container Registry

  • list_registries - List container registries and images

Load Balancers

  • list_load_balancers - List all load balancers

Serverless

  • list_functions - List all serverless functions

  • list_containers - List all serverless containers

Redis & Networking

  • list_redis_clusters - List Redis clusters

  • list_private_networks - List VPCs and private networks

Marketplace

  • list_marketplace_images - Browse available OS/app images

πŸ“¦ Quick Start

1. Local Development

# Clone the repository
git clone <repository-url>
cd scaleway-mcp-server

# Install dependencies
uv sync

# Set up environment variables
cp .env.example .env
# Edit .env with your Scaleway credentials

# Run the STDIO server
uv run scaleway_server.py

# Or run the HTTP server
uv run scaleway_http_server.py

2. Serverless Deployment

# Configure Scaleway CLI
scw init

# Deploy to Scaleway Serverless Containers
./deploy.sh

πŸ”§ Configuration

Environment Variables

Variable

Description

Example

SCW_ACCESS_KEY

Scaleway access key

your_access_key_here

SCW_SECRET_KEY

Scaleway secret key

your_secret_key_here

SCW_PROJECT_ID

Scaleway project ID

your_project_id_here

SCW_ORGANIZATION_ID

Scaleway organization ID

your_organization_id_here

SCW_DEFAULT_REGION

Default region

fr-par

SCW_DEFAULT_ZONE

Default zone

fr-par-1

MCP Client Configuration

For HTTP transport:

{
  "mcpServers": {
    "scaleway": {
      "transport": "http",
      "url": "https://your-deployment-url/mcp"
    }
  }
}

For STDIO transport:

{
  "mcpServers": {
    "scaleway": {
      "command": "uv",
      "args": ["run", "scaleway_server.py"],
      "cwd": "/path/to/scaleway-mcp-server"
    }
  }
}

🐳 Docker Deployment

# Build the image
docker build -t scaleway-mcp-server .

# Run locally
docker run -p 8080:8080 \
  -e SCW_ACCESS_KEY=your_access_key_here \
  -e SCW_SECRET_KEY=your_secret_key_here \
  -e SCW_PROJECT_ID=your_project_id_here \
  -e SCW_ORGANIZATION_ID=your_organization_id_here \
  scaleway-mcp-server

πŸ“š Documentation

πŸ” Security

  • Never commit real credentials to version control

  • Use environment variables or secure secret management

  • The server validates API credentials on startup

  • All API calls use official Scaleway SDK with proper authentication

🀝 Contributing

  1. Fork the repository

  2. Create a feature branch

  3. Make your changes

  4. Test thoroughly

  5. Submit a pull request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ†˜ Support

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   MCP Client    β”‚    β”‚  Scaleway MCP    β”‚    β”‚  Scaleway API   β”‚
β”‚   (Manus, etc)  │◄──►│     Server       │◄──►│   (Official)    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚
                              β–Ό
                       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                       β”‚  Scaleway Cloud  β”‚
                       β”‚   Infrastructure β”‚
                       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

The server acts as a bridge between MCP clients and the Scaleway cloud platform, providing a standardized interface for infrastructure management.

Available Tools

11 tools
create_instanceA

Create a new compute instance.

Args: name: Name for the new instance instance_type: Instance type (e.g., DEV1-S, GP1-XS, PLAY2-NANO) image_id: Image ID to use for the instance zone: Scaleway zone (e.g., fr-par-1). If not provided, uses default zone. tags: Optional list of tags for the instance

Inputs: name (required), image_id (required), instance_type (required), tags, +1 more. Returns: result

create_private_networkA

Create a new private network.

Args: name: Name for the new private network region: Scaleway region (e.g., fr-par, nl-ams). If not provided, uses default region. tags: Optional list of tags for the network

Inputs: name (required), tags, region. Returns: result

delete_instanceA

Delete an instance.

Args: instance_id: The ID of the instance to delete zone: Scaleway zone (e.g., fr-par-1). If not provided, uses default zone.

Inputs: instance_id (required), zone. Returns: result

get_instanceA

Get detailed information about a specific instance.

Args: instance_id: The ID of the instance to retrieve zone: Scaleway zone (e.g., fr-par-1). If not provided, uses default zone.

Inputs: instance_id (required), zone. Returns: result

get_k8s_clusterA

Get detailed information about a Kubernetes cluster.

Args: cluster_id: The ID of the cluster to retrieve region: Scaleway region (e.g., fr-par, nl-ams). If not provided, uses default region.

Inputs: cluster_id (required), region. Returns: result

list_imagesA

List available instance images.

Args: zone: Scaleway zone (e.g., fr-par-1). If not provided, uses default zone. arch: Filter by architecture (x86_64 or arm64). If not provided, shows all.

Inputs: arch, zone. Returns: result

list_instancesA

List all compute instances in a Scaleway zone.

Args: zone: Scaleway zone (e.g., fr-par-1, nl-ams-1). If not provided, uses default zone.

Inputs: zone. Returns: result

list_k8s_clustersA

List all Kubernetes clusters in a Scaleway region.

Args: region: Scaleway region (e.g., fr-par, nl-ams). If not provided, uses default region.

Inputs: region. Returns: result

list_private_networksA

List all private networks in a Scaleway region.

Args: region: Scaleway region (e.g., fr-par, nl-ams). If not provided, uses default region.

Inputs: region. Returns: result

start_instanceA

Start a stopped instance.

Args: instance_id: The ID of the instance to start zone: Scaleway zone (e.g., fr-par-1). If not provided, uses default zone.

Inputs: instance_id (required), zone. Returns: result

stop_instanceA

Stop a running instance.

Args: instance_id: The ID of the instance to stop zone: Scaleway zone (e.g., fr-par-1). If not provided, uses default zone.

Inputs: instance_id (required), zone. Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4/5.0

    Scored across 11 tools

    Disambiguation5/5

    Each tool clearly targets a distinct resource and action (e.g., list vs get vs create for instances, separate tools for private networks and K8s). No two tools appear to do the same thing.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern with lowercase and underscores (e.g., list_instances, create_private_network, get_k8s_cluster). There are no mixed conventions or vague verbs.

    Tool Count5/5

    With 11 tools, the server is well-scoped, covering multiple resource types (instances, networks, K8s, images) without being overwhelming. Each tool serves a clear purpose.

    Completeness3/5

    Instance management is fairly complete (create, read, delete, start, stop), but private networks lack get/update/delete, and K8s clusters only have list/get with no create or delete. These are notable gaps that could hinder full workflows.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      C
      quality
      B
      maintenance
      A Model Context Protocol server for the Hetzner Cloud API that enables natural language management of cloud infrastructure. Users can list, create, and modify servers, networks, volumes, and load balancers through MCP-compatible clients.
      162
      1,578 npm
      MIT
    • A
      license
      B
      quality
      D
      maintenance
      An MCP server for the Spot.io API that enables management of AWS and Azure Ocean clusters across multiple accounts. It provides tools for cluster inventory, node management, cost analysis, and scaling operations through natural language.
      39
      1
      MIT