productivity
Scaleway Lua API for KosmoKrator Agents
Agent-facing Lua documentation and function reference for the Scaleway KosmoKrator integration.Lua Namespace
Agents call this integration through app.integrations.scaleway.*.
Use lua_read_doc("integrations.scaleway") inside KosmoKrator to discover the same reference at runtime.
Call Lua from the Headless CLI
Use kosmo integrations:lua when a shell script, CI job, cron job, or another coding CLI should run a deterministic
Scaleway workflow without starting an interactive agent session.
kosmo integrations:lua --eval 'dump(app.integrations.scaleway.list_servers({page = 1, per_page = 1}))' --json kosmo integrations:lua --eval 'print(docs.read("scaleway"))' --json
kosmo integrations:lua --eval 'print(docs.read("scaleway.list_servers"))' --json Workflow file
Put repeatable logic in a Lua file, then execute it with JSON output for the calling process.
local scaleway = app.integrations.scaleway
local result = scaleway.list_servers({page = 1, per_page = 1})
dump(result) kosmo integrations:lua workflow.lua --json
kosmo integrations:lua workflow.lua --force --json integrations:lua exposes app.integrations.scaleway, app.mcp.*, docs.*, json.*, and regex.*. Use app.integrations.scaleway.default.* or app.integrations.scaleway.work.* when you configured named credential accounts.
MCP-only Lua
If the script only needs configured MCP servers and does not need Scaleway, use the narrower mcp:lua command.
# Use mcp:lua for MCP-only scripts; use integrations:lua for this integration namespace.
kosmo mcp:lua --eval 'dump(mcp.servers())' --json Agent-Facing Lua Docs
This is the rendered version of the full Lua documentation exposed to agents when they inspect the integration namespace.
Scaleway — Lua API Reference
list_servers
List all servers in the Scaleway zone.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
page | integer | no | Page number for pagination (default: 1) |
per_page | integer | no | Items per page (default: 20) |
Example
local result = app.integrations.scaleway.list_servers({
per_page = 50
})
for _, server in ipairs(result.servers) do
print(server.name .. " (" .. server.state .. ") - " .. server.commercial_type)
end
get_server
Get details for a specific server.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
server_id | string | yes | The server ID (UUID) |
Example
local result = app.integrations.scaleway.get_server({ server_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" })
local s = result.server
print(s.name .. " - " .. s.state .. " - " .. (s.public_ip and s.public_ip.address or "no public IP"))
list_volumes
List all block storage volumes in the zone.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
page | integer | no | Page number for pagination |
per_page | integer | no | Items per page |
Example
local result = app.integrations.scaleway.list_volumes({})
for _, volume in ipairs(result.volumes) do
print(volume.name .. " - " .. volume.size .. " bytes - " .. volume.volume_type)
end
list_snapshots
List all volume snapshots in the zone.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
page | integer | no | Page number for pagination |
per_page | integer | no | Items per page |
Example
local result = app.integrations.scaleway.list_snapshots({})
for _, snapshot in ipairs(result.snapshots) do
print(snapshot.name .. " - " .. snapshot.size .. " bytes - " .. snapshot.state)
end
list_security_groups
List all security groups (firewall rule sets) in the zone.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
page | integer | no | Page number for pagination |
per_page | integer | no | Items per page |
Example
local result = app.integrations.scaleway.list_security_groups({})
for _, sg in ipairs(result.security_groups) do
print(sg.name .. " - " .. (sg.description or "no description"))
end
list_ips
List all flexible IPs in the zone.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
page | integer | no | Page number for pagination |
per_page | integer | no | Items per page |
Example
local result = app.integrations.scaleway.list_ips({})
for _, ip in ipairs(result.ips) do
print(ip.address .. " - " .. (ip.server and ip.server.name or "unassigned"))
end
get_current_user
Get the current authenticated account information.
Parameters
None.
Example
local result = app.integrations.scaleway.get_current_user({})
print("Account: " .. result.email .. " (" .. result.id .. ")")
Multi-Account Usage
If you have multiple Scaleway accounts configured, use account-specific namespaces:
-- Default account (always works)
app.integrations.scaleway.list_servers({})
-- Explicit default (portable across setups)
app.integrations.scaleway.default.list_servers({})
-- Named accounts
app.integrations.scaleway.production.list_servers({})
app.integrations.scaleway.staging.list_servers({})
All functions are identical across accounts — only the credentials differ.
Raw agent markdown
# Scaleway — Lua API Reference
## list_servers
List all servers in the Scaleway zone.
### Parameters
| Name | Type | Required | Description |
|------|------|----------|-------------|
| `page` | integer | no | Page number for pagination (default: 1) |
| `per_page` | integer | no | Items per page (default: 20) |
### Example
```lua
local result = app.integrations.scaleway.list_servers({
per_page = 50
})
for _, server in ipairs(result.servers) do
print(server.name .. " (" .. server.state .. ") - " .. server.commercial_type)
end
```
---
## get_server
Get details for a specific server.
### Parameters
| Name | Type | Required | Description |
|------|------|----------|-------------|
| `server_id` | string | yes | The server ID (UUID) |
### Example
```lua
local result = app.integrations.scaleway.get_server({ server_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" })
local s = result.server
print(s.name .. " - " .. s.state .. " - " .. (s.public_ip and s.public_ip.address or "no public IP"))
```
---
## list_volumes
List all block storage volumes in the zone.
### Parameters
| Name | Type | Required | Description |
|------|------|----------|-------------|
| `page` | integer | no | Page number for pagination |
| `per_page` | integer | no | Items per page |
### Example
```lua
local result = app.integrations.scaleway.list_volumes({})
for _, volume in ipairs(result.volumes) do
print(volume.name .. " - " .. volume.size .. " bytes - " .. volume.volume_type)
end
```
---
## list_snapshots
List all volume snapshots in the zone.
### Parameters
| Name | Type | Required | Description |
|------|------|----------|-------------|
| `page` | integer | no | Page number for pagination |
| `per_page` | integer | no | Items per page |
### Example
```lua
local result = app.integrations.scaleway.list_snapshots({})
for _, snapshot in ipairs(result.snapshots) do
print(snapshot.name .. " - " .. snapshot.size .. " bytes - " .. snapshot.state)
end
```
---
## list_security_groups
List all security groups (firewall rule sets) in the zone.
### Parameters
| Name | Type | Required | Description |
|------|------|----------|-------------|
| `page` | integer | no | Page number for pagination |
| `per_page` | integer | no | Items per page |
### Example
```lua
local result = app.integrations.scaleway.list_security_groups({})
for _, sg in ipairs(result.security_groups) do
print(sg.name .. " - " .. (sg.description or "no description"))
end
```
---
## list_ips
List all flexible IPs in the zone.
### Parameters
| Name | Type | Required | Description |
|------|------|----------|-------------|
| `page` | integer | no | Page number for pagination |
| `per_page` | integer | no | Items per page |
### Example
```lua
local result = app.integrations.scaleway.list_ips({})
for _, ip in ipairs(result.ips) do
print(ip.address .. " - " .. (ip.server and ip.server.name or "unassigned"))
end
```
---
## get_current_user
Get the current authenticated account information.
### Parameters
None.
### Example
```lua
local result = app.integrations.scaleway.get_current_user({})
print("Account: " .. result.email .. " (" .. result.id .. ")")
```
---
## Multi-Account Usage
If you have multiple Scaleway accounts configured, use account-specific namespaces:
```lua
-- Default account (always works)
app.integrations.scaleway.list_servers({})
-- Explicit default (portable across setups)
app.integrations.scaleway.default.list_servers({})
-- Named accounts
app.integrations.scaleway.production.list_servers({})
app.integrations.scaleway.staging.list_servers({})
```
All functions are identical across accounts — only the credentials differ. local result = app.integrations.scaleway.list_servers({page = 1, per_page = 1})
print(result) Functions
list_servers Read
List all servers in the Scaleway zone. Returns IDs, names, status, type, and IP addresses.
- Lua path
app.integrations.scaleway.list_servers- Full name
scaleway.scaleway_list_servers
| Parameter | Type | Required | Description |
|---|---|---|---|
page | integer | no | Page number for pagination (default: 1). |
per_page | integer | no | Number of servers per page (default: 20). |
get_server Read
Get details for a specific Scaleway server by ID. Returns full server information including image, volumes, and public IP.
- Lua path
app.integrations.scaleway.get_server- Full name
scaleway.scaleway_get_server
| Parameter | Type | Required | Description |
|---|---|---|---|
server_id | string | yes | The server ID (UUID). |
list_volumes Read
List all block storage volumes in the Scaleway zone. Returns IDs, names, size, type, and server attachment.
- Lua path
app.integrations.scaleway.list_volumes- Full name
scaleway.scaleway_list_volumes
| Parameter | Type | Required | Description |
|---|---|---|---|
page | integer | no | Page number for pagination (default: 1). |
per_page | integer | no | Number of volumes per page (default: 20). |
list_snapshots Read
List all volume snapshots in the Scaleway zone. Returns IDs, names, size, and creation date.
- Lua path
app.integrations.scaleway.list_snapshots- Full name
scaleway.scaleway_list_snapshots
| Parameter | Type | Required | Description |
|---|---|---|---|
page | integer | no | Page number for pagination (default: 1). |
per_page | integer | no | Number of snapshots per page (default: 20). |
list_security_groups Read
List all security groups (firewall rule sets) in the Scaleway zone. Returns IDs, names, descriptions, and rules.
- Lua path
app.integrations.scaleway.list_security_groups- Full name
scaleway.scaleway_list_security_groups
| Parameter | Type | Required | Description |
|---|---|---|---|
page | integer | no | Page number for pagination (default: 1). |
per_page | integer | no | Number of security groups per page (default: 20). |
list_ips Read
List all flexible IPs in the Scaleway zone. Returns IDs, addresses, and server assignments.
- Lua path
app.integrations.scaleway.list_ips- Full name
scaleway.scaleway_list_ips
| Parameter | Type | Required | Description |
|---|---|---|---|
page | integer | no | Page number for pagination (default: 1). |
per_page | integer | no | Number of IPs per page (default: 20). |
get_current_user Read
Get information about the current authenticated Scaleway account, including email, organization, and status.
- Lua path
app.integrations.scaleway.get_current_user- Full name
scaleway.scaleway_get_current_user
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||