mcp-scaleway 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. package/README.md +1287 -0
  2. package/dist/index.js +15566 -0
  3. package/package.json +39 -0
  4. package/src/server.ts +20 -0
package/README.md ADDED
@@ -0,0 +1,1287 @@
1
+ # mcp-scaleway
2
+
3
+ [![CI](https://github.com/feedback-loop-ai/mcp-scaleway/actions/workflows/ci.yml/badge.svg)](https://github.com/feedback-loop-ai/mcp-scaleway/actions/workflows/ci.yml)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
+ [![MCP](https://img.shields.io/badge/MCP-1.25+-blue.svg)](https://modelcontextprotocol.io/)
6
+
7
+ An MCP (Model Context Protocol) server that gives AI assistants like Claude full access to the Scaleway cloud platform. Manage compute instances, databases, Kubernetes clusters, serverless functions, object storage, and 30+ more Scaleway services through natural language.
8
+
9
+ ## Table of Contents
10
+
11
+ - [Overview](#overview)
12
+ - [Features](#features)
13
+ - [Quick Start](#quick-start)
14
+ - [Installation](#installation)
15
+ - [Authentication](#authentication)
16
+ - [Configuration](#configuration)
17
+ - [Claude Desktop](#claude-desktop)
18
+ - [Claude Code](#claude-code)
19
+ - [Other MCP Clients](#other-mcp-clients)
20
+ - [Usage Examples](#usage-examples)
21
+ - [Tool Reference](#tool-reference)
22
+ - [Compute](#compute)
23
+ - [Storage & Databases](#storage--databases)
24
+ - [Networking](#networking)
25
+ - [Serverless & Containers](#serverless--containers)
26
+ - [AI & Machine Learning](#ai--machine-learning)
27
+ - [Security & Identity](#security--identity)
28
+ - [Managed Services](#managed-services)
29
+ - [Account & Billing](#account--billing)
30
+ - [Managing Tool Access](#managing-tool-access)
31
+ - [Development](#development)
32
+ - [Architecture](#architecture)
33
+ - [Troubleshooting](#troubleshooting)
34
+ - [Contributing](#contributing)
35
+ - [Support](#support)
36
+ - [License](#license)
37
+
38
+ ## Overview
39
+
40
+ **mcp-scaleway** is a stateless MCP server that acts as a bridge between AI assistants and the [Scaleway](https://www.scaleway.com) cloud platform. It exposes 539 tools across 36 Scaleway services, enabling AI agents to provision infrastructure, manage databases, deploy applications, and operate cloud resources on your behalf.
41
+
42
+ **Why use this?**
43
+
44
+ - **Natural language cloud management** - Ask your AI assistant to "create a Kubernetes cluster with 3 nodes" instead of writing API calls
45
+ - **Full Scaleway coverage** - 36 services, 539 operations, from compute to AI to networking
46
+ - **Zero state** - Pure proxy to Scaleway APIs; no data stored, no side effects beyond what you request
47
+ - **Type-safe** - Every input validated with Zod schemas before reaching Scaleway
48
+
49
+ ## Features
50
+
51
+ Supports 36 Scaleway service areas organized across 8 categories:
52
+
53
+ | Category | Services |
54
+ |----------|----------|
55
+ | **Compute** | Instances, Elastic Metal, Apple Silicon |
56
+ | **Storage & Databases** | Block Storage, Object Storage, RDB (PostgreSQL/MySQL), MongoDB, Redis, Serverless SQL DB |
57
+ | **Networking** | VPC, Load Balancer, Public Gateway, DNS, Domain Registrar, IPAM, Edge Services |
58
+ | **Serverless & Containers** | Containers, Functions, Jobs, Kubernetes (K8s) |
59
+ | **AI & Machine Learning** | Inference, Generative APIs, Cockpit (Observability) |
60
+ | **Security & Identity** | IAM, Secret Manager, Key Manager |
61
+ | **Managed Services** | NATS, SQS, SNS, TEM (Transactional Email), IoT Hub, Container Registry, Marketplace |
62
+ | **Account & Billing** | Account, Billing, Web Hosting |
63
+
64
+ ## Quick Start
65
+
66
+ ```bash
67
+ # 1. Clone and install
68
+ git clone https://github.com/feedback-loop-ai/mcp-scaleway.git
69
+ cd mcp-scaleway
70
+ bun install
71
+
72
+ # 2. Set your Scaleway credentials
73
+ export SCW_ACCESS_KEY="SCWxxxxxxxxxxxxxxxxx"
74
+ export SCW_SECRET_KEY="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
75
+ export SCW_DEFAULT_PROJECT_ID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
76
+
77
+ # 3. Start the server
78
+ bun run start
79
+ ```
80
+
81
+ Then configure your MCP client (see [Configuration](#configuration) below).
82
+
83
+ ## Installation
84
+
85
+ ### Prerequisites
86
+
87
+ - [Bun](https://bun.sh) 1.x or later
88
+ - A [Scaleway account](https://console.scaleway.com) with API credentials
89
+
90
+ ### Install
91
+
92
+ ```bash
93
+ git clone https://github.com/feedback-loop-ai/mcp-scaleway.git
94
+ cd mcp-scaleway
95
+ bun install
96
+ ```
97
+
98
+ ### Verify
99
+
100
+ ```bash
101
+ bun run start
102
+ # Server starts and listens on stdio
103
+ ```
104
+
105
+ ## Authentication
106
+
107
+ The server authenticates with Scaleway using environment variables. You can generate API keys from the [Scaleway console](https://console.scaleway.com/iam/api-keys).
108
+
109
+ ### Required
110
+
111
+ | Variable | Description |
112
+ |----------|-------------|
113
+ | `SCW_ACCESS_KEY` | Your Scaleway API access key (starts with `SCW`) |
114
+ | `SCW_SECRET_KEY` | Your Scaleway API secret key (UUID format) |
115
+ | `SCW_DEFAULT_PROJECT_ID` | Default project UUID for operations |
116
+
117
+ ### Optional
118
+
119
+ | Variable | Description | Default |
120
+ |----------|-------------|---------|
121
+ | `SCW_DEFAULT_ORGANIZATION_ID` | Organization UUID (for multi-org accounts) | _(none)_ |
122
+ | `SCW_DEFAULT_REGION` | Default region for regional resources | `fr-par` |
123
+ | `SCW_DEFAULT_ZONE` | Default availability zone for zonal resources | `fr-par-1` |
124
+
125
+ ### Available Regions
126
+
127
+ | Region | Location |
128
+ |--------|----------|
129
+ | `fr-par` | Paris, France |
130
+ | `nl-ams` | Amsterdam, Netherlands |
131
+ | `pl-waw` | Warsaw, Poland |
132
+
133
+ Each region has multiple zones (e.g., `fr-par-1`, `fr-par-2`, `fr-par-3`).
134
+
135
+ ## Configuration
136
+
137
+ ### Claude Desktop
138
+
139
+ Add the server to your Claude Desktop configuration file:
140
+
141
+ **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
142
+ **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
143
+ **Linux**: `~/.config/Claude/claude_desktop_config.json`
144
+
145
+ ```json
146
+ {
147
+ "mcpServers": {
148
+ "scaleway": {
149
+ "command": "bun",
150
+ "args": ["run", "start"],
151
+ "cwd": "/path/to/mcp-scaleway",
152
+ "env": {
153
+ "SCW_ACCESS_KEY": "SCWxxxxxxxxxxxxxxxxx",
154
+ "SCW_SECRET_KEY": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
155
+ "SCW_DEFAULT_PROJECT_ID": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
156
+ }
157
+ }
158
+ }
159
+ }
160
+ ```
161
+
162
+ ### Claude Code
163
+
164
+ Add to your project's `.mcp.json` file (or `~/.claude/mcp.json` for global access):
165
+
166
+ ```json
167
+ {
168
+ "mcpServers": {
169
+ "scaleway": {
170
+ "command": "bun",
171
+ "args": ["run", "start"],
172
+ "cwd": "/path/to/mcp-scaleway",
173
+ "env": {
174
+ "SCW_ACCESS_KEY": "SCWxxxxxxxxxxxxxxxxx",
175
+ "SCW_SECRET_KEY": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
176
+ "SCW_DEFAULT_PROJECT_ID": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
177
+ }
178
+ }
179
+ }
180
+ }
181
+ ```
182
+
183
+ ### Other MCP Clients
184
+
185
+ The server uses **stdio transport** (reads from stdin, writes to stdout). Any MCP-compatible client can connect by running:
186
+
187
+ ```bash
188
+ SCW_ACCESS_KEY=... SCW_SECRET_KEY=... SCW_DEFAULT_PROJECT_ID=... bun run start
189
+ ```
190
+
191
+ The server follows the [MCP specification](https://modelcontextprotocol.io) and works with any client that supports the protocol.
192
+
193
+ ## Usage Examples
194
+
195
+ Once configured, you can ask your AI assistant to manage Scaleway resources using natural language:
196
+
197
+ ### Compute - Managing Instances
198
+
199
+ > "List all my running instances in the fr-par-1 zone"
200
+
201
+ > "Create a DEV1-S instance named 'web-server' with an Ubuntu image in fr-par-1"
202
+
203
+ > "Stop the instance with ID xxx and then create a snapshot of its volume"
204
+
205
+ ### Storage - Object Storage
206
+
207
+ > "List all my S3 buckets and show how many objects are in each one"
208
+
209
+ > "Create a new bucket called 'app-backups' in the fr-par region"
210
+
211
+ > "Set a lifecycle policy on the 'logs' bucket to expire objects after 30 days"
212
+
213
+ ### Kubernetes - Cluster Management
214
+
215
+ > "Create a Kubernetes cluster named 'production' with version 1.28 and a pool of 3 PRO2-S nodes"
216
+
217
+ > "Get the kubeconfig for my 'staging' cluster"
218
+
219
+ > "List all node pools and their autoscaling status"
220
+
221
+ ### Serverless - Functions & Containers
222
+
223
+ > "List all function namespaces in the fr-par region"
224
+
225
+ > "Deploy the container 'api-gateway' in namespace 'prod' and set up a cron trigger for every hour"
226
+
227
+ > "Create a new serverless job definition with 2 vCPUs and 2GB memory"
228
+
229
+ ### AI - Inference & Generative APIs
230
+
231
+ > "List available inference models in fr-par"
232
+
233
+ > "Create an inference deployment using Llama 3 on a GPU-3070-S node"
234
+
235
+ > "Send a chat completion request using the Scaleway generative API"
236
+
237
+ ### Security - Secrets & IAM
238
+
239
+ > "List all secrets in the default project"
240
+
241
+ > "Create a new secret called 'database-password' and add a version with the value 'supersecure'"
242
+
243
+ > "List all IAM users and show which groups they belong to"
244
+
245
+ ## Tool Reference
246
+
247
+ ### Compute
248
+
249
+ <details>
250
+ <summary><strong>Instances</strong> (20 tools) - Virtual machine instances</summary>
251
+
252
+ | Tool | Description |
253
+ |------|-------------|
254
+ | `scaleway_instances_list_servers` | List Instance servers in a zone with optional filtering by name, tags, state, and project |
255
+ | `scaleway_instances_get_server` | Get details of a specific Instance server by its ID and zone |
256
+ | `scaleway_instances_create_server` | Create a new Instance server with the specified type, image, and configuration |
257
+ | `scaleway_instances_delete_server` | Delete an Instance server (must be stopped first) |
258
+ | `scaleway_instances_server_action` | Perform an action: poweron, poweroff, reboot, terminate, stop_in_place, or backup |
259
+ | `scaleway_instances_list_volumes` | List Instance volumes in a zone with optional filtering |
260
+ | `scaleway_instances_get_volume` | Get details of a specific Instance volume |
261
+ | `scaleway_instances_create_volume` | Create a new Instance volume (l_ssd or b_ssd) |
262
+ | `scaleway_instances_delete_volume` | Delete an Instance volume (must not be attached) |
263
+ | `scaleway_instances_list_security_groups` | List Instance security groups in a zone |
264
+ | `scaleway_instances_get_security_group` | Get details of a specific security group |
265
+ | `scaleway_instances_create_security_group` | Create a new security group with inbound/outbound policies |
266
+ | `scaleway_instances_delete_security_group` | Delete a security group |
267
+ | `scaleway_instances_list_ips` | List Instance IPs in a zone |
268
+ | `scaleway_instances_create_ip` | Reserve a new IP address (routed_ipv4 or routed_ipv6) |
269
+ | `scaleway_instances_delete_ip` | Release an IP address |
270
+ | `scaleway_instances_attach_ip` | Attach an IP address to a server |
271
+ | `scaleway_instances_list_snapshots` | List Instance snapshots in a zone |
272
+ | `scaleway_instances_create_snapshot` | Create a snapshot from a volume |
273
+ | `scaleway_instances_delete_snapshot` | Delete a snapshot |
274
+
275
+ </details>
276
+
277
+ <details>
278
+ <summary><strong>Elastic Metal</strong> (14 tools) - Dedicated bare metal servers</summary>
279
+
280
+ | Tool | Description |
281
+ |------|-------------|
282
+ | `scaleway_elastic_metal_list_servers` | List Elastic Metal servers in a zone |
283
+ | `scaleway_elastic_metal_get_server` | Get detailed information about a specific server |
284
+ | `scaleway_elastic_metal_create_server` | Create a new Elastic Metal dedicated server |
285
+ | `scaleway_elastic_metal_delete_server` | Delete an Elastic Metal server |
286
+ | `scaleway_elastic_metal_install_server` | Install an operating system on a server |
287
+ | `scaleway_elastic_metal_reboot_server` | Reboot a server |
288
+ | `scaleway_elastic_metal_start_server` | Start a stopped server |
289
+ | `scaleway_elastic_metal_stop_server` | Stop a running server |
290
+ | `scaleway_elastic_metal_list_offers` | List available server offers in a zone |
291
+ | `scaleway_elastic_metal_list_oss` | List available operating systems |
292
+ | `scaleway_elastic_metal_get_bmc_access` | Get BMC access credentials (time-limited) |
293
+ | `scaleway_elastic_metal_list_ips` | List flexible IPs for Elastic Metal |
294
+ | `scaleway_elastic_metal_create_ip` | Create a new flexible IP |
295
+ | `scaleway_elastic_metal_delete_ip` | Delete a flexible IP |
296
+
297
+ </details>
298
+
299
+ <details>
300
+ <summary><strong>Apple Silicon</strong> (8 tools) - Mac mini as-a-Service</summary>
301
+
302
+ | Tool | Description |
303
+ |------|-------------|
304
+ | `scaleway_apple_silicon_list_servers` | List Apple Silicon servers |
305
+ | `scaleway_apple_silicon_get_server` | Get details of a specific server |
306
+ | `scaleway_apple_silicon_create_server` | Create a new Apple Silicon server (24h minimum lease) |
307
+ | `scaleway_apple_silicon_delete_server` | Delete a server (after 24h minimum period) |
308
+ | `scaleway_apple_silicon_reboot_server` | Reboot a server |
309
+ | `scaleway_apple_silicon_reinstall_server` | Reinstall the OS (all data erased) |
310
+ | `scaleway_apple_silicon_list_server_types` | List available server types with specs |
311
+ | `scaleway_apple_silicon_list_os` | List available macOS versions |
312
+
313
+ </details>
314
+
315
+ ### Storage & Databases
316
+
317
+ <details>
318
+ <summary><strong>Block Storage</strong> (11 tools) - Managed block volumes</summary>
319
+
320
+ | Tool | Description |
321
+ |------|-------------|
322
+ | `scaleway_block_storage_list_volumes` | List block storage volumes in a zone |
323
+ | `scaleway_block_storage_get_volume` | Get details of a specific volume |
324
+ | `scaleway_block_storage_create_volume` | Create a new volume from scratch or from a snapshot |
325
+ | `scaleway_block_storage_update_volume` | Update a volume (name, size, IOPS, or tags) |
326
+ | `scaleway_block_storage_delete_volume` | Delete a volume |
327
+ | `scaleway_block_storage_list_snapshots` | List block storage snapshots in a zone |
328
+ | `scaleway_block_storage_get_snapshot` | Get details of a specific snapshot |
329
+ | `scaleway_block_storage_create_snapshot` | Create a snapshot from a volume |
330
+ | `scaleway_block_storage_update_snapshot` | Update a snapshot (name or tags) |
331
+ | `scaleway_block_storage_delete_snapshot` | Delete a snapshot |
332
+ | `scaleway_block_storage_list_volume_types` | List available volume types and specs |
333
+
334
+ </details>
335
+
336
+ <details>
337
+ <summary><strong>Object Storage</strong> (14 tools) - S3-compatible object storage</summary>
338
+
339
+ | Tool | Description |
340
+ |------|-------------|
341
+ | `scaleway_object_storage_list_buckets` | List all S3 buckets in a region |
342
+ | `scaleway_object_storage_create_bucket` | Create a new S3 bucket |
343
+ | `scaleway_object_storage_delete_bucket` | Delete a bucket (must be empty) |
344
+ | `scaleway_object_storage_get_bucket_info` | Get bucket details including versioning and object count |
345
+ | `scaleway_object_storage_list_objects` | List objects with optional prefix filtering and pagination |
346
+ | `scaleway_object_storage_get_object_info` | Get metadata for a specific object |
347
+ | `scaleway_object_storage_put_object` | Upload a small object (base64-encoded) |
348
+ | `scaleway_object_storage_delete_object` | Delete an object |
349
+ | `scaleway_object_storage_get_bucket_policy` | Get the bucket policy (JSON) |
350
+ | `scaleway_object_storage_set_bucket_policy` | Set or replace the bucket policy |
351
+ | `scaleway_object_storage_get_bucket_lifecycle` | Get lifecycle rules |
352
+ | `scaleway_object_storage_set_bucket_lifecycle` | Set lifecycle rules (expiration, transitions) |
353
+ | `scaleway_object_storage_get_bucket_versioning` | Get versioning status |
354
+ | `scaleway_object_storage_set_bucket_versioning` | Enable or suspend versioning |
355
+
356
+ </details>
357
+
358
+ <details>
359
+ <summary><strong>RDB</strong> (27 tools) - Managed PostgreSQL & MySQL</summary>
360
+
361
+ | Tool | Description |
362
+ |------|-------------|
363
+ | `scaleway_rdb_list_instances` | List RDB instances in a region |
364
+ | `scaleway_rdb_get_instance` | Get details of an RDB instance |
365
+ | `scaleway_rdb_create_instance` | Create a new RDB instance (PostgreSQL or MySQL) |
366
+ | `scaleway_rdb_update_instance` | Update an RDB instance |
367
+ | `scaleway_rdb_delete_instance` | Delete an RDB instance |
368
+ | `scaleway_rdb_upgrade_instance` | Upgrade node type, volume, or engine version |
369
+ | `scaleway_rdb_list_databases` | List databases within an instance |
370
+ | `scaleway_rdb_create_database` | Create a new database |
371
+ | `scaleway_rdb_delete_database` | Delete a database |
372
+ | `scaleway_rdb_list_users` | List users of an instance |
373
+ | `scaleway_rdb_create_user` | Create a new user with optional admin privileges |
374
+ | `scaleway_rdb_update_user` | Update a user's password or admin status |
375
+ | `scaleway_rdb_delete_user` | Delete a user |
376
+ | `scaleway_rdb_list_backups` | List database backups |
377
+ | `scaleway_rdb_create_backup` | Create a manual backup |
378
+ | `scaleway_rdb_restore_backup` | Restore a backup |
379
+ | `scaleway_rdb_list_endpoints` | List endpoints (public, private network, load balancer) |
380
+ | `scaleway_rdb_create_endpoint` | Create a new endpoint |
381
+ | `scaleway_rdb_delete_endpoint` | Delete an endpoint |
382
+ | `scaleway_rdb_list_acl_rules` | List ACL rules |
383
+ | `scaleway_rdb_add_acl_rules` | Add ACL rules for network access |
384
+ | `scaleway_rdb_delete_acl_rules` | Delete ACL rules |
385
+ | `scaleway_rdb_list_snapshots` | List snapshots |
386
+ | `scaleway_rdb_create_snapshot` | Create a snapshot |
387
+ | `scaleway_rdb_restore_snapshot` | Restore from a snapshot |
388
+ | `scaleway_rdb_list_node_types` | List available node types |
389
+ | `scaleway_rdb_list_database_engines` | List available database engines and versions |
390
+
391
+ </details>
392
+
393
+ <details>
394
+ <summary><strong>MongoDB</strong> (15 tools) - Managed MongoDB</summary>
395
+
396
+ | Tool | Description |
397
+ |------|-------------|
398
+ | `scaleway_mongodb_list_instances` | List MongoDB instances |
399
+ | `scaleway_mongodb_get_instance` | Get details of a MongoDB instance |
400
+ | `scaleway_mongodb_create_instance` | Create a new MongoDB instance |
401
+ | `scaleway_mongodb_update_instance` | Update a MongoDB instance |
402
+ | `scaleway_mongodb_delete_instance` | Delete a MongoDB instance |
403
+ | `scaleway_mongodb_list_users` | List users of an instance |
404
+ | `scaleway_mongodb_create_user` | Create a new user |
405
+ | `scaleway_mongodb_update_user` | Update a user's password |
406
+ | `scaleway_mongodb_delete_user` | Delete a user |
407
+ | `scaleway_mongodb_list_snapshots` | List MongoDB snapshots |
408
+ | `scaleway_mongodb_create_snapshot` | Create a snapshot |
409
+ | `scaleway_mongodb_restore_snapshot` | Restore a snapshot to a new instance |
410
+ | `scaleway_mongodb_delete_snapshot` | Delete a snapshot |
411
+ | `scaleway_mongodb_list_node_types` | List available node types |
412
+ | `scaleway_mongodb_list_versions` | List available MongoDB versions |
413
+
414
+ </details>
415
+
416
+ <details>
417
+ <summary><strong>Redis</strong> (16 tools) - Managed Redis cache</summary>
418
+
419
+ | Tool | Description |
420
+ |------|-------------|
421
+ | `scaleway_redis_list_clusters` | List Redis clusters |
422
+ | `scaleway_redis_get_cluster` | Get details of a Redis cluster |
423
+ | `scaleway_redis_create_cluster` | Create a new Redis cluster |
424
+ | `scaleway_redis_update_cluster` | Update a Redis cluster |
425
+ | `scaleway_redis_delete_cluster` | Delete a Redis cluster |
426
+ | `scaleway_redis_list_cluster_metrics` | Get cluster metrics (CPU, memory, connections) |
427
+ | `scaleway_redis_get_cluster_certificate` | Get the TLS certificate |
428
+ | `scaleway_redis_renew_cluster_certificate` | Renew the TLS certificate |
429
+ | `scaleway_redis_add_acl_rules` | Add ACL rules |
430
+ | `scaleway_redis_delete_acl_rules` | Delete ACL rules |
431
+ | `scaleway_redis_set_acl_rules` | Replace all ACL rules |
432
+ | `scaleway_redis_add_endpoints` | Add endpoints |
433
+ | `scaleway_redis_delete_endpoints` | Delete an endpoint |
434
+ | `scaleway_redis_set_endpoints` | Replace all endpoints |
435
+ | `scaleway_redis_list_node_types` | List available node types |
436
+ | `scaleway_redis_list_cluster_versions` | List available Redis versions |
437
+
438
+ </details>
439
+
440
+ <details>
441
+ <summary><strong>Serverless SQL DB</strong> (9 tools) - Serverless PostgreSQL</summary>
442
+
443
+ | Tool | Description |
444
+ |------|-------------|
445
+ | `scaleway_serverless_sqldb_list_databases` | List Serverless SQL Databases |
446
+ | `scaleway_serverless_sqldb_get_database` | Get details of a database |
447
+ | `scaleway_serverless_sqldb_create_database` | Create a new database with auto-scaling CPU |
448
+ | `scaleway_serverless_sqldb_update_database` | Update CPU scaling limits |
449
+ | `scaleway_serverless_sqldb_delete_database` | Delete a database |
450
+ | `scaleway_serverless_sqldb_list_database_backups` | List backups |
451
+ | `scaleway_serverless_sqldb_get_database_backup` | Get backup details |
452
+ | `scaleway_serverless_sqldb_export_database_backup` | Export a backup (download URL) |
453
+ | `scaleway_serverless_sqldb_restore_database` | Restore from a backup |
454
+
455
+ </details>
456
+
457
+ ### Networking
458
+
459
+ <details>
460
+ <summary><strong>VPC</strong> (10 tools) - Virtual Private Cloud</summary>
461
+
462
+ | Tool | Description |
463
+ |------|-------------|
464
+ | `scaleway_vpc_list_vpcs` | List all VPCs in a region |
465
+ | `scaleway_vpc_get_vpc` | Get details of a specific VPC |
466
+ | `scaleway_vpc_create_vpc` | Create a new VPC |
467
+ | `scaleway_vpc_update_vpc` | Update a VPC's name or tags |
468
+ | `scaleway_vpc_delete_vpc` | Delete a VPC (must have no private networks) |
469
+ | `scaleway_vpc_list_private_networks` | List private networks |
470
+ | `scaleway_vpc_get_private_network` | Get details of a private network |
471
+ | `scaleway_vpc_create_private_network` | Create a new private network within a VPC |
472
+ | `scaleway_vpc_update_private_network` | Update a private network |
473
+ | `scaleway_vpc_delete_private_network` | Delete a private network |
474
+
475
+ </details>
476
+
477
+ <details>
478
+ <summary><strong>Load Balancer</strong> (31 tools) - Managed load balancing</summary>
479
+
480
+ | Tool | Description |
481
+ |------|-------------|
482
+ | `scaleway_lb_list_lbs` | List load balancers in a zone |
483
+ | `scaleway_lb_get_lb` | Get a specific load balancer |
484
+ | `scaleway_lb_create_lb` | Create a new load balancer |
485
+ | `scaleway_lb_update_lb` | Update a load balancer |
486
+ | `scaleway_lb_delete_lb` | Delete a load balancer |
487
+ | `scaleway_lb_migrate_lb` | Migrate to a different type |
488
+ | `scaleway_lb_list_frontends` | List frontends |
489
+ | `scaleway_lb_get_frontend` | Get a specific frontend |
490
+ | `scaleway_lb_create_frontend` | Create a frontend |
491
+ | `scaleway_lb_update_frontend` | Update a frontend |
492
+ | `scaleway_lb_delete_frontend` | Delete a frontend |
493
+ | `scaleway_lb_list_backends` | List backends |
494
+ | `scaleway_lb_get_backend` | Get a specific backend |
495
+ | `scaleway_lb_create_backend` | Create a backend |
496
+ | `scaleway_lb_update_backend` | Update a backend |
497
+ | `scaleway_lb_delete_backend` | Delete a backend |
498
+ | `scaleway_lb_add_backend_servers` | Add server IPs to a backend |
499
+ | `scaleway_lb_remove_backend_servers` | Remove server IPs from a backend |
500
+ | `scaleway_lb_set_backend_servers` | Set the complete server IP list |
501
+ | `scaleway_lb_list_routes` | List routes |
502
+ | `scaleway_lb_get_route` | Get a specific route |
503
+ | `scaleway_lb_create_route` | Create a route |
504
+ | `scaleway_lb_update_route` | Update a route |
505
+ | `scaleway_lb_delete_route` | Delete a route |
506
+ | `scaleway_lb_list_certificates` | List certificates |
507
+ | `scaleway_lb_get_certificate` | Get a specific certificate |
508
+ | `scaleway_lb_create_certificate` | Create a certificate |
509
+ | `scaleway_lb_update_certificate` | Update a certificate |
510
+ | `scaleway_lb_delete_certificate` | Delete a certificate |
511
+ | `scaleway_lb_get_lb_stats` | Get load balancer statistics |
512
+ | `scaleway_lb_list_lb_types` | List available load balancer types |
513
+
514
+ </details>
515
+
516
+ <details>
517
+ <summary><strong>Public Gateway</strong> (26 tools) - NAT gateway for private networks</summary>
518
+
519
+ | Tool | Description |
520
+ |------|-------------|
521
+ | `scaleway_public_gateway_list_gateways` | List Public Gateways |
522
+ | `scaleway_public_gateway_get_gateway` | Get details of a gateway |
523
+ | `scaleway_public_gateway_create_gateway` | Create a new gateway |
524
+ | `scaleway_public_gateway_update_gateway` | Update a gateway |
525
+ | `scaleway_public_gateway_delete_gateway` | Delete a gateway |
526
+ | `scaleway_public_gateway_list_gateway_networks` | List gateway-to-private-network connections |
527
+ | `scaleway_public_gateway_get_gateway_network` | Get a gateway network connection |
528
+ | `scaleway_public_gateway_create_gateway_network` | Attach a gateway to a private network |
529
+ | `scaleway_public_gateway_update_gateway_network` | Update a gateway network connection |
530
+ | `scaleway_public_gateway_delete_gateway_network` | Detach a gateway from a private network |
531
+ | `scaleway_public_gateway_list_dhcps` | List DHCP configurations |
532
+ | `scaleway_public_gateway_get_dhcp` | Get a DHCP configuration |
533
+ | `scaleway_public_gateway_create_dhcp` | Create a DHCP configuration |
534
+ | `scaleway_public_gateway_update_dhcp` | Update a DHCP configuration |
535
+ | `scaleway_public_gateway_delete_dhcp` | Delete a DHCP configuration |
536
+ | `scaleway_public_gateway_list_pat_rules` | List PAT (port forwarding) rules |
537
+ | `scaleway_public_gateway_get_pat_rule` | Get a PAT rule |
538
+ | `scaleway_public_gateway_create_pat_rule` | Create a PAT rule |
539
+ | `scaleway_public_gateway_update_pat_rule` | Update a PAT rule |
540
+ | `scaleway_public_gateway_delete_pat_rule` | Delete a PAT rule |
541
+ | `scaleway_public_gateway_list_ips` | List flexible IPs |
542
+ | `scaleway_public_gateway_get_ip` | Get a flexible IP |
543
+ | `scaleway_public_gateway_create_ip` | Reserve a new flexible IP |
544
+ | `scaleway_public_gateway_update_ip` | Update a flexible IP |
545
+ | `scaleway_public_gateway_delete_ip` | Release a flexible IP |
546
+ | `scaleway_public_gateway_list_gateway_types` | List available gateway types |
547
+
548
+ </details>
549
+
550
+ <details>
551
+ <summary><strong>DNS</strong> (18 tools) - DNS zone management</summary>
552
+
553
+ | Tool | Description |
554
+ |------|-------------|
555
+ | `scaleway_dns_list_zones` | List DNS zones with optional filtering |
556
+ | `scaleway_dns_create_zone` | Create a new DNS zone |
557
+ | `scaleway_dns_update_zone` | Update a DNS zone |
558
+ | `scaleway_dns_delete_zone` | Delete a DNS zone and all records |
559
+ | `scaleway_dns_clone_zone` | Clone a zone to a new destination |
560
+ | `scaleway_dns_refresh_zone` | Refresh a DNS zone |
561
+ | `scaleway_dns_list_records` | List DNS records in a zone |
562
+ | `scaleway_dns_update_records` | Batch update DNS records |
563
+ | `scaleway_dns_clear_records` | Clear all records from a zone |
564
+ | `scaleway_dns_export_raw_zone` | Export as BIND zone file |
565
+ | `scaleway_dns_import_raw_zone` | Import from BIND zone file |
566
+ | `scaleway_dns_list_nameservers` | List nameservers |
567
+ | `scaleway_dns_update_nameservers` | Update nameservers |
568
+ | `scaleway_dns_get_ssl_certificate` | Get SSL certificate |
569
+ | `scaleway_dns_create_ssl_certificate` | Create SSL certificate |
570
+ | `scaleway_dns_delete_ssl_certificate` | Delete SSL certificate |
571
+ | `scaleway_dns_get_tsig_key` | Get TSIG key |
572
+ | `scaleway_dns_delete_tsig_key` | Delete TSIG key |
573
+
574
+ </details>
575
+
576
+ <details>
577
+ <summary><strong>Domain Registrar</strong> (15 tools) - Domain registration</summary>
578
+
579
+ | Tool | Description |
580
+ |------|-------------|
581
+ | `scaleway_domain_registrar_list_domains` | List all domains |
582
+ | `scaleway_domain_registrar_get_domain` | Get domain details |
583
+ | `scaleway_domain_registrar_register_domain` | Register a new domain |
584
+ | `scaleway_domain_registrar_renew_domain` | Renew a domain |
585
+ | `scaleway_domain_registrar_transfer_domain` | Transfer a domain from another registrar |
586
+ | `scaleway_domain_registrar_update_domain` | Update domain contacts |
587
+ | `scaleway_domain_registrar_enable_auto_renew` | Enable auto-renewal |
588
+ | `scaleway_domain_registrar_disable_auto_renew` | Disable auto-renewal |
589
+ | `scaleway_domain_registrar_check_domain_availability` | Check domain availability |
590
+ | `scaleway_domain_registrar_list_contacts` | List registration contacts |
591
+ | `scaleway_domain_registrar_get_contact` | Get contact details |
592
+ | `scaleway_domain_registrar_create_contact` | Create a new contact |
593
+ | `scaleway_domain_registrar_update_contact` | Update a contact |
594
+ | `scaleway_domain_registrar_list_tlds` | List available TLDs with pricing |
595
+ | `scaleway_domain_registrar_get_tld` | Get TLD details |
596
+
597
+ </details>
598
+
599
+ <details>
600
+ <summary><strong>IPAM</strong> (5 tools) - IP Address Management</summary>
601
+
602
+ | Tool | Description |
603
+ |------|-------------|
604
+ | `scaleway_ipam_list_ips` | List IP addresses managed by IPAM |
605
+ | `scaleway_ipam_get_ip` | Get details of a specific IP |
606
+ | `scaleway_ipam_book_ip` | Book (reserve) a new IP address |
607
+ | `scaleway_ipam_release_ip` | Release an IP reservation |
608
+ | `scaleway_ipam_update_ip` | Update an IP (tags, reverse DNS) |
609
+
610
+ </details>
611
+
612
+ <details>
613
+ <summary><strong>Edge Services</strong> (28 tools) - CDN and edge computing</summary>
614
+
615
+ | Tool | Description |
616
+ |------|-------------|
617
+ | `scaleway_edge_services_list_pipelines` | List Edge Services pipelines |
618
+ | `scaleway_edge_services_get_pipeline` | Get pipeline details |
619
+ | `scaleway_edge_services_create_pipeline` | Create a new pipeline |
620
+ | `scaleway_edge_services_update_pipeline` | Update a pipeline |
621
+ | `scaleway_edge_services_delete_pipeline` | Delete a pipeline |
622
+ | `scaleway_edge_services_list_dns_stages` | List DNS stages |
623
+ | `scaleway_edge_services_get_dns_stage` | Get DNS stage details |
624
+ | `scaleway_edge_services_create_dns_stage` | Create a DNS stage |
625
+ | `scaleway_edge_services_update_dns_stage` | Update a DNS stage |
626
+ | `scaleway_edge_services_delete_dns_stage` | Delete a DNS stage |
627
+ | `scaleway_edge_services_list_tls_stages` | List TLS stages |
628
+ | `scaleway_edge_services_get_tls_stage` | Get TLS stage details |
629
+ | `scaleway_edge_services_create_tls_stage` | Create a TLS stage |
630
+ | `scaleway_edge_services_update_tls_stage` | Update a TLS stage |
631
+ | `scaleway_edge_services_delete_tls_stage` | Delete a TLS stage |
632
+ | `scaleway_edge_services_list_cache_stages` | List cache stages |
633
+ | `scaleway_edge_services_get_cache_stage` | Get cache stage details |
634
+ | `scaleway_edge_services_create_cache_stage` | Create a cache stage |
635
+ | `scaleway_edge_services_update_cache_stage` | Update a cache stage |
636
+ | `scaleway_edge_services_delete_cache_stage` | Delete a cache stage |
637
+ | `scaleway_edge_services_list_backend_stages` | List backend stages |
638
+ | `scaleway_edge_services_get_backend_stage` | Get backend stage details |
639
+ | `scaleway_edge_services_create_backend_stage` | Create a backend stage (S3 or LB origin) |
640
+ | `scaleway_edge_services_update_backend_stage` | Update a backend stage |
641
+ | `scaleway_edge_services_delete_backend_stage` | Delete a backend stage |
642
+ | `scaleway_edge_services_purge_cache` | Purge cached content |
643
+ | `scaleway_edge_services_list_purge_requests` | List purge requests |
644
+ | `scaleway_edge_services_get_purge_request` | Get purge request details |
645
+
646
+ </details>
647
+
648
+ ### Serverless & Containers
649
+
650
+ <details>
651
+ <summary><strong>Containers</strong> (20 tools) - Serverless containers</summary>
652
+
653
+ | Tool | Description |
654
+ |------|-------------|
655
+ | `scaleway_containers_list_namespaces` | List container namespaces |
656
+ | `scaleway_containers_get_namespace` | Get namespace details |
657
+ | `scaleway_containers_create_namespace` | Create a new namespace |
658
+ | `scaleway_containers_update_namespace` | Update a namespace |
659
+ | `scaleway_containers_delete_namespace` | Delete a namespace |
660
+ | `scaleway_containers_list_containers` | List containers in a namespace |
661
+ | `scaleway_containers_get_container` | Get container details |
662
+ | `scaleway_containers_create_container` | Create a new container |
663
+ | `scaleway_containers_update_container` | Update container configuration |
664
+ | `scaleway_containers_delete_container` | Delete a container |
665
+ | `scaleway_containers_deploy_container` | Deploy a container |
666
+ | `scaleway_containers_list_crons` | List cron triggers |
667
+ | `scaleway_containers_create_cron` | Create a cron trigger |
668
+ | `scaleway_containers_update_cron` | Update a cron trigger |
669
+ | `scaleway_containers_delete_cron` | Delete a cron trigger |
670
+ | `scaleway_containers_list_domains` | List custom domains |
671
+ | `scaleway_containers_create_domain` | Map a custom domain |
672
+ | `scaleway_containers_delete_domain` | Remove a custom domain |
673
+ | `scaleway_containers_create_token` | Create an auth token |
674
+ | `scaleway_containers_delete_token` | Delete an auth token |
675
+
676
+ </details>
677
+
678
+ <details>
679
+ <summary><strong>Functions</strong> (20 tools) - Serverless functions</summary>
680
+
681
+ | Tool | Description |
682
+ |------|-------------|
683
+ | `scaleway_functions_list_namespaces` | List function namespaces |
684
+ | `scaleway_functions_get_namespace` | Get namespace details |
685
+ | `scaleway_functions_create_namespace` | Create a new namespace |
686
+ | `scaleway_functions_update_namespace` | Update a namespace |
687
+ | `scaleway_functions_delete_namespace` | Delete a namespace |
688
+ | `scaleway_functions_list_functions` | List functions in a namespace |
689
+ | `scaleway_functions_get_function` | Get function details |
690
+ | `scaleway_functions_create_function` | Create a new function |
691
+ | `scaleway_functions_update_function` | Update a function |
692
+ | `scaleway_functions_delete_function` | Delete a function |
693
+ | `scaleway_functions_deploy_function` | Deploy a function (trigger build) |
694
+ | `scaleway_functions_list_crons` | List cron triggers |
695
+ | `scaleway_functions_create_cron` | Create a cron trigger |
696
+ | `scaleway_functions_update_cron` | Update a cron trigger |
697
+ | `scaleway_functions_delete_cron` | Delete a cron trigger |
698
+ | `scaleway_functions_list_domains` | List custom domains |
699
+ | `scaleway_functions_create_domain` | Attach a custom domain |
700
+ | `scaleway_functions_delete_domain` | Remove a custom domain |
701
+ | `scaleway_functions_create_token` | Create an access token |
702
+ | `scaleway_functions_delete_token` | Delete an access token |
703
+
704
+ </details>
705
+
706
+ <details>
707
+ <summary><strong>Jobs</strong> (9 tools) - Serverless batch jobs</summary>
708
+
709
+ | Tool | Description |
710
+ |------|-------------|
711
+ | `scaleway_jobs_list_definitions` | List job definitions |
712
+ | `scaleway_jobs_get_definition` | Get job definition details |
713
+ | `scaleway_jobs_create_definition` | Create a new job definition |
714
+ | `scaleway_jobs_update_definition` | Update a job definition |
715
+ | `scaleway_jobs_delete_definition` | Delete a job definition |
716
+ | `scaleway_jobs_start` | Start a new job run |
717
+ | `scaleway_jobs_list_runs` | List job runs |
718
+ | `scaleway_jobs_get_run` | Get job run details |
719
+ | `scaleway_jobs_stop_run` | Stop a running job |
720
+
721
+ </details>
722
+
723
+ <details>
724
+ <summary><strong>Kubernetes</strong> (13 tools) - Managed Kubernetes (Kapsule & Kosmos)</summary>
725
+
726
+ | Tool | Description |
727
+ |------|-------------|
728
+ | `scaleway_k8s_list_clusters` | List Kubernetes clusters |
729
+ | `scaleway_k8s_get_cluster` | Get cluster details |
730
+ | `scaleway_k8s_create_cluster` | Create a new cluster (Kapsule or Kosmos) |
731
+ | `scaleway_k8s_delete_cluster` | Delete a cluster |
732
+ | `scaleway_k8s_upgrade_cluster` | Upgrade cluster version |
733
+ | `scaleway_k8s_list_cluster_available_versions` | List available upgrade versions |
734
+ | `scaleway_k8s_get_cluster_kubeconfig` | Get the kubeconfig file |
735
+ | `scaleway_k8s_list_pools` | List node pools |
736
+ | `scaleway_k8s_get_pool` | Get node pool details |
737
+ | `scaleway_k8s_create_pool` | Create a node pool |
738
+ | `scaleway_k8s_update_pool` | Update a node pool |
739
+ | `scaleway_k8s_delete_pool` | Delete a node pool |
740
+ | `scaleway_k8s_upgrade_pool` | Upgrade a node pool version |
741
+
742
+ </details>
743
+
744
+ ### AI & Machine Learning
745
+
746
+ <details>
747
+ <summary><strong>Inference</strong> (15 tools) - ML model deployment</summary>
748
+
749
+ | Tool | Description |
750
+ |------|-------------|
751
+ | `scaleway_inference_list_deployments` | List inference deployments |
752
+ | `scaleway_inference_get_deployment` | Get deployment details |
753
+ | `scaleway_inference_create_deployment` | Create a new deployment |
754
+ | `scaleway_inference_update_deployment` | Update a deployment |
755
+ | `scaleway_inference_delete_deployment` | Delete a deployment |
756
+ | `scaleway_inference_list_deployment_events` | List deployment events |
757
+ | `scaleway_inference_list_endpoints` | List inference endpoints |
758
+ | `scaleway_inference_create_endpoint` | Create an endpoint |
759
+ | `scaleway_inference_update_endpoint` | Update an endpoint |
760
+ | `scaleway_inference_delete_endpoint` | Delete an endpoint |
761
+ | `scaleway_inference_list_models` | List available models |
762
+ | `scaleway_inference_get_model` | Get model details |
763
+ | `scaleway_inference_list_node_types` | List available node types |
764
+ | `scaleway_inference_get_eula` | Get model EULA |
765
+ | `scaleway_inference_accept_eula` | Accept model EULA |
766
+
767
+ </details>
768
+
769
+ <details>
770
+ <summary><strong>Generative APIs</strong> (4 tools) - OpenAI-compatible LLM APIs</summary>
771
+
772
+ | Tool | Description |
773
+ |------|-------------|
774
+ | `scaleway_generative_apis_list_models` | List available generative AI models |
775
+ | `scaleway_generative_apis_get_model` | Get model details |
776
+ | `scaleway_generative_apis_chat_completion` | Create a chat completion (OpenAI-compatible) |
777
+ | `scaleway_generative_apis_create_embedding` | Create text embeddings |
778
+
779
+ </details>
780
+
781
+ <details>
782
+ <summary><strong>Cockpit</strong> (22 tools) - Observability & monitoring</summary>
783
+
784
+ | Tool | Description |
785
+ |------|-------------|
786
+ | `scaleway_cockpit_get_cockpit` | Get Cockpit info for a project |
787
+ | `scaleway_cockpit_activate_cockpit` | Activate Cockpit |
788
+ | `scaleway_cockpit_deactivate_cockpit` | Deactivate Cockpit |
789
+ | `scaleway_cockpit_list_data_sources` | List data sources |
790
+ | `scaleway_cockpit_create_data_source` | Create a data source |
791
+ | `scaleway_cockpit_delete_data_source` | Delete a data source |
792
+ | `scaleway_cockpit_list_tokens` | List tokens |
793
+ | `scaleway_cockpit_create_token` | Create a token |
794
+ | `scaleway_cockpit_delete_token` | Delete a token |
795
+ | `scaleway_cockpit_list_grafana_users` | List Grafana users |
796
+ | `scaleway_cockpit_create_grafana_user` | Create a Grafana user |
797
+ | `scaleway_cockpit_delete_grafana_user` | Delete a Grafana user |
798
+ | `scaleway_cockpit_reset_grafana_user_password` | Reset a Grafana user's password |
799
+ | `scaleway_cockpit_get_alert_manager` | Get alert manager info |
800
+ | `scaleway_cockpit_enable_alert_manager` | Enable alert manager |
801
+ | `scaleway_cockpit_disable_alert_manager` | Disable alert manager |
802
+ | `scaleway_cockpit_list_contact_points` | List alert contact points |
803
+ | `scaleway_cockpit_create_contact_point` | Create a contact point |
804
+ | `scaleway_cockpit_delete_contact_point` | Delete a contact point |
805
+ | `scaleway_cockpit_list_managed_alerts_contact_points` | List managed alerts contact points |
806
+ | `scaleway_cockpit_enable_managed_alerts` | Enable managed alerts |
807
+ | `scaleway_cockpit_disable_managed_alerts` | Disable managed alerts |
808
+
809
+ </details>
810
+
811
+ ### Security & Identity
812
+
813
+ <details>
814
+ <summary><strong>IAM</strong> (32 tools) - Identity & Access Management</summary>
815
+
816
+ | Tool | Description |
817
+ |------|-------------|
818
+ | `scaleway_iam_list_users` | List IAM users |
819
+ | `scaleway_iam_get_user` | Get user details |
820
+ | `scaleway_iam_create_user` | Invite a new user |
821
+ | `scaleway_iam_update_user` | Update a user |
822
+ | `scaleway_iam_delete_user` | Remove a user |
823
+ | `scaleway_iam_list_applications` | List IAM applications |
824
+ | `scaleway_iam_get_application` | Get application details |
825
+ | `scaleway_iam_create_application` | Create a new application |
826
+ | `scaleway_iam_update_application` | Update an application |
827
+ | `scaleway_iam_delete_application` | Delete an application |
828
+ | `scaleway_iam_list_api_keys` | List API keys |
829
+ | `scaleway_iam_get_api_key` | Get API key details |
830
+ | `scaleway_iam_create_api_key` | Create a new API key |
831
+ | `scaleway_iam_update_api_key` | Update an API key |
832
+ | `scaleway_iam_delete_api_key` | Delete an API key |
833
+ | `scaleway_iam_list_policies` | List policies |
834
+ | `scaleway_iam_get_policy` | Get policy details |
835
+ | `scaleway_iam_create_policy` | Create a new policy |
836
+ | `scaleway_iam_update_policy` | Update a policy |
837
+ | `scaleway_iam_delete_policy` | Delete a policy |
838
+ | `scaleway_iam_list_rules` | List rules for a policy |
839
+ | `scaleway_iam_create_rule` | Create a new rule |
840
+ | `scaleway_iam_update_rule` | Update a rule |
841
+ | `scaleway_iam_delete_rule` | Delete a rule |
842
+ | `scaleway_iam_list_groups` | List groups |
843
+ | `scaleway_iam_get_group` | Get group details |
844
+ | `scaleway_iam_create_group` | Create a new group |
845
+ | `scaleway_iam_update_group` | Update a group |
846
+ | `scaleway_iam_delete_group` | Delete a group |
847
+ | `scaleway_iam_add_group_member` | Add a user or app to a group |
848
+ | `scaleway_iam_remove_group_member` | Remove a user or app from a group |
849
+ | `scaleway_iam_list_permission_sets` | List available permission sets |
850
+
851
+ </details>
852
+
853
+ <details>
854
+ <summary><strong>Secret Manager</strong> (16 tools) - Secret storage & versioning</summary>
855
+
856
+ | Tool | Description |
857
+ |------|-------------|
858
+ | `scaleway_secret_manager_list_secrets` | List secrets with filtering |
859
+ | `scaleway_secret_manager_get_secret` | Get secret metadata |
860
+ | `scaleway_secret_manager_create_secret` | Create a new secret |
861
+ | `scaleway_secret_manager_update_secret` | Update secret metadata |
862
+ | `scaleway_secret_manager_delete_secret` | Delete a secret and all versions |
863
+ | `scaleway_secret_manager_list_secret_versions` | List secret versions |
864
+ | `scaleway_secret_manager_get_secret_version` | Get version metadata |
865
+ | `scaleway_secret_manager_create_secret_version` | Create a new version |
866
+ | `scaleway_secret_manager_access_secret_version` | Access the secret data (base64) |
867
+ | `scaleway_secret_manager_disable_secret_version` | Disable a version |
868
+ | `scaleway_secret_manager_enable_secret_version` | Enable a version |
869
+ | `scaleway_secret_manager_destroy_secret_version` | Permanently destroy a version |
870
+ | `scaleway_secret_manager_protect_secret` | Enable deletion protection |
871
+ | `scaleway_secret_manager_unprotect_secret` | Disable deletion protection |
872
+ | `scaleway_secret_manager_list_tags` | List tags across secrets |
873
+ | `scaleway_secret_manager_add_secret_owner` | Grant a Scaleway product access to a secret |
874
+
875
+ </details>
876
+
877
+ <details>
878
+ <summary><strong>Key Manager</strong> (13 tools) - Cryptographic key management</summary>
879
+
880
+ | Tool | Description |
881
+ |------|-------------|
882
+ | `scaleway_key_manager_list_keys` | List cryptographic keys |
883
+ | `scaleway_key_manager_get_key` | Get key metadata |
884
+ | `scaleway_key_manager_create_key` | Create a new key |
885
+ | `scaleway_key_manager_update_key` | Update key metadata and rotation policy |
886
+ | `scaleway_key_manager_delete_key` | Permanently delete a key (irreversible) |
887
+ | `scaleway_key_manager_rotate_key` | Rotate key material |
888
+ | `scaleway_key_manager_protect_key` | Protect a key from deletion |
889
+ | `scaleway_key_manager_unprotect_key` | Remove deletion protection |
890
+ | `scaleway_key_manager_enable_key` | Enable a key |
891
+ | `scaleway_key_manager_disable_key` | Disable a key |
892
+ | `scaleway_key_manager_encrypt` | Encrypt data (max 64KB) |
893
+ | `scaleway_key_manager_decrypt` | Decrypt ciphertext |
894
+ | `scaleway_key_manager_generate_data_key` | Generate a data encryption key |
895
+
896
+ </details>
897
+
898
+ ### Managed Services
899
+
900
+ <details>
901
+ <summary><strong>NATS</strong> (9 tools) - Managed NATS messaging</summary>
902
+
903
+ | Tool | Description |
904
+ |------|-------------|
905
+ | `scaleway_nats_list_accounts` | List NATS accounts |
906
+ | `scaleway_nats_get_account` | Get account details |
907
+ | `scaleway_nats_create_account` | Create a new NATS account |
908
+ | `scaleway_nats_update_account` | Update an account |
909
+ | `scaleway_nats_delete_account` | Delete an account |
910
+ | `scaleway_nats_list_credentials` | List credentials |
911
+ | `scaleway_nats_get_credentials` | Get credentials details |
912
+ | `scaleway_nats_create_credentials` | Create new credentials |
913
+ | `scaleway_nats_delete_credentials` | Delete credentials |
914
+
915
+ </details>
916
+
917
+ <details>
918
+ <summary><strong>SQS</strong> (8 tools) - Managed message queues</summary>
919
+
920
+ | Tool | Description |
921
+ |------|-------------|
922
+ | `scaleway_sqs_activate` | Activate SQS service for a project |
923
+ | `scaleway_sqs_deactivate` | Deactivate SQS service |
924
+ | `scaleway_sqs_get_info` | Get SQS service info and endpoint |
925
+ | `scaleway_sqs_create_credentials` | Create SQS credentials |
926
+ | `scaleway_sqs_delete_credentials` | Delete SQS credentials |
927
+ | `scaleway_sqs_get_credentials` | Get credentials details |
928
+ | `scaleway_sqs_list_credentials` | List all credentials |
929
+ | `scaleway_sqs_update_credentials` | Update credentials |
930
+
931
+ </details>
932
+
933
+ <details>
934
+ <summary><strong>SNS</strong> (8 tools) - Topics & Events (pub/sub)</summary>
935
+
936
+ | Tool | Description |
937
+ |------|-------------|
938
+ | `scaleway_sns_activate` | Activate SNS service for a project |
939
+ | `scaleway_sns_deactivate` | Deactivate SNS service |
940
+ | `scaleway_sns_get_info` | Get SNS service info and endpoint |
941
+ | `scaleway_sns_list_credentials` | List SNS credentials |
942
+ | `scaleway_sns_get_credentials` | Get credentials details |
943
+ | `scaleway_sns_create_credentials` | Create SNS credentials with permissions |
944
+ | `scaleway_sns_update_credentials` | Update credentials |
945
+ | `scaleway_sns_delete_credentials` | Delete credentials |
946
+
947
+ </details>
948
+
949
+ <details>
950
+ <summary><strong>TEM</strong> (15 tools) - Transactional Email</summary>
951
+
952
+ | Tool | Description |
953
+ |------|-------------|
954
+ | `scaleway_tem_list_domains` | List email domains |
955
+ | `scaleway_tem_get_domain` | Get domain details |
956
+ | `scaleway_tem_create_domain` | Register a new domain |
957
+ | `scaleway_tem_revoke_domain` | Revoke a domain |
958
+ | `scaleway_tem_check_domain` | Trigger DNS verification |
959
+ | `scaleway_tem_get_domain_last_status` | Get last DNS verification status |
960
+ | `scaleway_tem_list_emails` | List transactional emails |
961
+ | `scaleway_tem_get_email` | Get email details |
962
+ | `scaleway_tem_create_email` | Send a transactional email |
963
+ | `scaleway_tem_cancel_email` | Cancel a queued email |
964
+ | `scaleway_tem_get_statistics` | Get email sending statistics |
965
+ | `scaleway_tem_list_webhooks` | List webhooks |
966
+ | `scaleway_tem_create_webhook` | Create a webhook |
967
+ | `scaleway_tem_update_webhook` | Update a webhook |
968
+ | `scaleway_tem_delete_webhook` | Delete a webhook |
969
+
970
+ </details>
971
+
972
+ <details>
973
+ <summary><strong>IoT Hub</strong> (29 tools) - IoT device management</summary>
974
+
975
+ | Tool | Description |
976
+ |------|-------------|
977
+ | `scaleway_iot_list_hubs` | List IoT hubs |
978
+ | `scaleway_iot_get_hub` | Get hub details |
979
+ | `scaleway_iot_create_hub` | Create a new hub |
980
+ | `scaleway_iot_update_hub` | Update a hub |
981
+ | `scaleway_iot_delete_hub` | Delete a hub |
982
+ | `scaleway_iot_enable_hub` | Enable a hub |
983
+ | `scaleway_iot_disable_hub` | Disable a hub |
984
+ | `scaleway_iot_get_hub_ca` | Get hub CA certificate |
985
+ | `scaleway_iot_set_hub_ca` | Set custom CA certificate |
986
+ | `scaleway_iot_list_devices` | List devices |
987
+ | `scaleway_iot_get_device` | Get device details |
988
+ | `scaleway_iot_create_device` | Create a new device |
989
+ | `scaleway_iot_update_device` | Update a device |
990
+ | `scaleway_iot_delete_device` | Delete a device |
991
+ | `scaleway_iot_enable_device` | Enable a device |
992
+ | `scaleway_iot_disable_device` | Disable a device |
993
+ | `scaleway_iot_get_device_certificate` | Get device certificate |
994
+ | `scaleway_iot_renew_device_certificate` | Renew device certificate |
995
+ | `scaleway_iot_set_device_certificate` | Set custom device certificate |
996
+ | `scaleway_iot_get_device_metrics` | Get device metrics |
997
+ | `scaleway_iot_list_routes` | List routes |
998
+ | `scaleway_iot_get_route` | Get route details |
999
+ | `scaleway_iot_create_route` | Create a route (S3, database, or REST) |
1000
+ | `scaleway_iot_update_route` | Update a route |
1001
+ | `scaleway_iot_delete_route` | Delete a route |
1002
+ | `scaleway_iot_list_networks` | List networks |
1003
+ | `scaleway_iot_get_network` | Get network details |
1004
+ | `scaleway_iot_create_network` | Create a network |
1005
+ | `scaleway_iot_delete_network` | Delete a network |
1006
+
1007
+ </details>
1008
+
1009
+ <details>
1010
+ <summary><strong>Container Registry</strong> (12 tools) - Docker image registry</summary>
1011
+
1012
+ | Tool | Description |
1013
+ |------|-------------|
1014
+ | `scaleway_registry_list_namespaces` | List registry namespaces |
1015
+ | `scaleway_registry_get_namespace` | Get namespace details |
1016
+ | `scaleway_registry_create_namespace` | Create a new namespace |
1017
+ | `scaleway_registry_update_namespace` | Update a namespace |
1018
+ | `scaleway_registry_delete_namespace` | Delete a namespace |
1019
+ | `scaleway_registry_list_images` | List container images |
1020
+ | `scaleway_registry_get_image` | Get image details |
1021
+ | `scaleway_registry_update_image` | Update image visibility |
1022
+ | `scaleway_registry_delete_image` | Delete an image |
1023
+ | `scaleway_registry_list_tags` | List image tags |
1024
+ | `scaleway_registry_get_tag` | Get tag details |
1025
+ | `scaleway_registry_delete_tag` | Delete a tag |
1026
+
1027
+ </details>
1028
+
1029
+ <details>
1030
+ <summary><strong>Marketplace</strong> (8 tools) - Pre-built images catalog</summary>
1031
+
1032
+ | Tool | Description |
1033
+ |------|-------------|
1034
+ | `scaleway_marketplace_list_images` | List marketplace images |
1035
+ | `scaleway_marketplace_get_image` | Get image details |
1036
+ | `scaleway_marketplace_list_local_images` | List local images by zone |
1037
+ | `scaleway_marketplace_get_local_image` | Get local image details |
1038
+ | `scaleway_marketplace_list_categories` | List categories |
1039
+ | `scaleway_marketplace_get_category` | Get category details |
1040
+ | `scaleway_marketplace_list_versions` | List image versions |
1041
+ | `scaleway_marketplace_get_version` | Get version details |
1042
+
1043
+ </details>
1044
+
1045
+ ### Account & Billing
1046
+
1047
+ <details>
1048
+ <summary><strong>Account</strong> (5 tools) - Project management</summary>
1049
+
1050
+ | Tool | Description |
1051
+ |------|-------------|
1052
+ | `scaleway_account_list_projects` | List projects in an organization |
1053
+ | `scaleway_account_get_project` | Get project details |
1054
+ | `scaleway_account_create_project` | Create a new project |
1055
+ | `scaleway_account_update_project` | Update a project |
1056
+ | `scaleway_account_delete_project` | Delete a project (must be empty) |
1057
+
1058
+ </details>
1059
+
1060
+ <details>
1061
+ <summary><strong>Billing</strong> (5 tools) - Invoices and consumption</summary>
1062
+
1063
+ | Tool | Description |
1064
+ |------|-------------|
1065
+ | `scaleway_billing_list_consumptions` | List consumption data |
1066
+ | `scaleway_billing_list_invoices` | List invoices |
1067
+ | `scaleway_billing_get_invoice` | Get invoice details |
1068
+ | `scaleway_billing_download_invoice` | Download invoice as PDF |
1069
+ | `scaleway_billing_list_discounts` | List active discounts |
1070
+
1071
+ </details>
1072
+
1073
+ <details>
1074
+ <summary><strong>Web Hosting</strong> (9 tools) - Managed web hosting</summary>
1075
+
1076
+ | Tool | Description |
1077
+ |------|-------------|
1078
+ | `scaleway_webhosting_list_hostings` | List web hostings |
1079
+ | `scaleway_webhosting_get_hosting` | Get hosting details |
1080
+ | `scaleway_webhosting_create_hosting` | Create a new hosting |
1081
+ | `scaleway_webhosting_update_hosting` | Update a hosting |
1082
+ | `scaleway_webhosting_delete_hosting` | Delete a hosting |
1083
+ | `scaleway_webhosting_restore_hosting` | Restore a deleted hosting |
1084
+ | `scaleway_webhosting_get_dns_records` | Get DNS records |
1085
+ | `scaleway_webhosting_list_offers` | List available offers |
1086
+ | `scaleway_webhosting_list_control_panels` | List available control panels |
1087
+
1088
+ </details>
1089
+
1090
+ ## Managing Tool Access
1091
+
1092
+ With 539 tools available, you may want to limit which tools are exposed to your AI assistant for focused sessions.
1093
+
1094
+ ### Claude Code
1095
+
1096
+ Use the `allowedTools` field in your `.mcp.json` to filter tools by pattern:
1097
+
1098
+ ```json
1099
+ {
1100
+ "mcpServers": {
1101
+ "scaleway": {
1102
+ "command": "bun",
1103
+ "args": ["run", "start"],
1104
+ "cwd": "/path/to/mcp-scaleway",
1105
+ "env": {
1106
+ "SCW_ACCESS_KEY": "...",
1107
+ "SCW_SECRET_KEY": "...",
1108
+ "SCW_DEFAULT_PROJECT_ID": "..."
1109
+ },
1110
+ "allowedTools": ["scaleway_k8s_*", "scaleway_instances_*"]
1111
+ }
1112
+ }
1113
+ }
1114
+ ```
1115
+
1116
+ ### Common Filter Patterns
1117
+
1118
+ | Use Case | Pattern |
1119
+ |----------|---------|
1120
+ | Kubernetes only | `scaleway_k8s_*` |
1121
+ | Compute only | `scaleway_instances_*`, `scaleway_elastic_metal_*`, `scaleway_apple_silicon_*` |
1122
+ | Databases only | `scaleway_rdb_*`, `scaleway_mongodb_*`, `scaleway_redis_*` |
1123
+ | Serverless only | `scaleway_functions_*`, `scaleway_containers_*`, `scaleway_jobs_*` |
1124
+ | Networking only | `scaleway_vpc_*`, `scaleway_lb_*`, `scaleway_dns_*` |
1125
+ | AI only | `scaleway_inference_*`, `scaleway_generative_apis_*` |
1126
+ | Security only | `scaleway_iam_*`, `scaleway_secret_manager_*`, `scaleway_key_manager_*` |
1127
+ | Read-only | `scaleway_*_list_*`, `scaleway_*_get_*` |
1128
+
1129
+ ## Development
1130
+
1131
+ ### Prerequisites
1132
+
1133
+ - [Bun](https://bun.sh) 1.x
1134
+ - Node.js 18+ (for some dev tooling)
1135
+
1136
+ ### Commands
1137
+
1138
+ ```bash
1139
+ # Start the MCP server
1140
+ bun run start
1141
+
1142
+ # Lint (Biome)
1143
+ bun run lint
1144
+ bun run lint:fix
1145
+
1146
+ # Type check
1147
+ bun x tsc --noEmit
1148
+
1149
+ # Run unit + contract tests
1150
+ bun run test
1151
+
1152
+ # Run tests in watch mode
1153
+ bun run test:watch
1154
+
1155
+ # Run unit tests only (CI-safe, no external deps)
1156
+ bun x vitest run --config tests/vitest.config.ts --dir tests/unit
1157
+
1158
+ # Run contract tests only
1159
+ bun x vitest run --config tests/vitest.config.ts --dir tests/contract
1160
+
1161
+ # Run tests with coverage (100% enforced)
1162
+ bun run test -- --coverage.enabled
1163
+
1164
+ # Validate API parity matrix
1165
+ bun run test:parity
1166
+ ```
1167
+
1168
+ ### Testing Requirements
1169
+
1170
+ - **100% code coverage** (line and branch) - enforced in CI
1171
+ - **Full API contract parity** - every Scaleway API endpoint must have a contract test
1172
+ - **Parity matrix** - `tests/parity-matrix.json` maps all API operations to tests
1173
+
1174
+ ### CI/CD Pipeline
1175
+
1176
+ | Gate | Requirement |
1177
+ |------|-------------|
1178
+ | Lint | Zero Biome violations |
1179
+ | Type Check | Zero TypeScript errors |
1180
+ | Tests | All unit + contract tests pass |
1181
+ | Coverage | 100% line and branch coverage |
1182
+ | API Parity | All operations in parity-matrix.json have tests |
1183
+
1184
+ ## Architecture
1185
+
1186
+ ```
1187
+ src/
1188
+ ├── main.ts # Entry point
1189
+ ├── server.ts # MCP server creation and tool registration
1190
+ ├── shared/
1191
+ │ ├── auth.ts # Env var credential loading
1192
+ │ ├── client.ts # Scaleway SDK client (singleton)
1193
+ │ ├── errors.ts # HTTP error mapping
1194
+ │ ├── pagination.ts # Pagination helpers
1195
+ │ └── types.ts # Shared Zod schemas
1196
+ └── tools/
1197
+ ├── index.ts # Registers all 36 service tool groups
1198
+ └── {service}/ # One directory per Scaleway service
1199
+ ├── index.ts # Tool registration (server.tool() calls)
1200
+ ├── types.ts # Zod input schemas
1201
+ └── handlers.ts # Scaleway API call logic
1202
+
1203
+ tests/
1204
+ ├── unit/ # Unit tests (CI)
1205
+ ├── contract/ # API contract tests (CI)
1206
+ ├── api/ # Integration tests (local only, needs Scaleway)
1207
+ ├── parity-matrix.json # API operation → test mapping
1208
+ └── vitest.config.ts # Test config (100% coverage enforced)
1209
+ ```
1210
+
1211
+ Each tool follows the same three-file pattern:
1212
+
1213
+ 1. **`index.ts`** - Registers tools with the MCP server, validates inputs with Zod, calls handlers
1214
+ 2. **`types.ts`** - Defines Zod schemas for all tool parameters
1215
+ 3. **`handlers.ts`** - Makes Scaleway API calls and formats responses
1216
+
1217
+ ## Troubleshooting
1218
+
1219
+ ### Authentication Errors
1220
+
1221
+ **"SCW_ACCESS_KEY environment variable is required"**
1222
+
1223
+ Ensure all three required environment variables are set:
1224
+
1225
+ ```bash
1226
+ export SCW_ACCESS_KEY="SCWxxxxxxxxxxxxxxxxx"
1227
+ export SCW_SECRET_KEY="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
1228
+ export SCW_DEFAULT_PROJECT_ID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
1229
+ ```
1230
+
1231
+ If using Claude Desktop or Claude Code, check that the `env` block in your configuration file includes all three variables.
1232
+
1233
+ ### Connection Issues
1234
+
1235
+ **Server starts but no tools appear**
1236
+
1237
+ - Verify the server is running: `bun run start` should start without errors
1238
+ - Check that your MCP client config points to the correct `cwd` path
1239
+ - Ensure `bun` is in your PATH
1240
+
1241
+ **"Permission denied" errors from Scaleway API**
1242
+
1243
+ - Your API key may not have permissions for the requested service
1244
+ - Check your IAM policies in the [Scaleway console](https://console.scaleway.com/iam)
1245
+ - Some operations require Organization-level permissions (set `SCW_DEFAULT_ORGANIZATION_ID`)
1246
+
1247
+ ### Region/Zone Errors
1248
+
1249
+ **"Resource not found" when the resource exists**
1250
+
1251
+ - Check that you're querying the correct region or zone
1252
+ - Default region is `fr-par`, default zone is `fr-par-1`
1253
+ - Override defaults with `SCW_DEFAULT_REGION` and `SCW_DEFAULT_ZONE`
1254
+ - Some services are only available in specific regions
1255
+
1256
+ ### Common Issues
1257
+
1258
+ | Issue | Solution |
1259
+ |-------|----------|
1260
+ | `bun: command not found` | Install Bun: `curl -fsSL https://bun.sh/install \| bash` |
1261
+ | `Cannot find module` | Run `bun install` in the project directory |
1262
+ | Rate limiting errors | Scaleway has per-service rate limits; add delays between bulk operations |
1263
+ | Timeout errors | Some operations (server creation, cluster provisioning) take time; check status with get/list tools |
1264
+
1265
+ ## Contributing
1266
+
1267
+ Contributions are welcome! Please follow these steps:
1268
+
1269
+ 1. Fork the repository
1270
+ 2. Create a feature branch (`git checkout -b feature/my-feature`)
1271
+ 3. Make your changes
1272
+ 4. Run lint and tests (`bun run lint && bun run test`)
1273
+ 5. Commit your changes (`git commit -m 'Add my feature'`)
1274
+ 6. Push to your branch (`git push origin feature/my-feature`)
1275
+ 7. Open a Pull Request
1276
+
1277
+ ## Support
1278
+
1279
+ If you find this project useful, consider sponsoring its development:
1280
+
1281
+ [![Sponsor](https://img.shields.io/badge/Sponsor-%E2%9D%A4-pink?logo=github-sponsors)](https://github.com/sponsors/valentinyanakiev)
1282
+
1283
+ Your support helps maintain and improve the MCP Scaleway server.
1284
+
1285
+ ## License
1286
+
1287
+ [MIT](LICENSE)