The agent-native cloud: database, functions, AI, storage, computers. 51 tools, one API key.
Call this server's tools from your browser. Nothing to install.
Bearer <your Scalix API key> - create one free at https://console.scalix.world
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Run AI inference on Scalix AI. Sends a prompt and returns the model's response in the OpenAI-compatible chat-completions format; tokens are billed to the project's credit pool. Discover available model IDs with scalix_ai_models.
User prompt / message
Model ID (from scalix_ai_models — a scalix-auto/* tier or a scalix-gw/<vendor>/<model> catalog id)
System message
Maximum tokens to generate
Sampling temperature (0-2)
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Run AI inference on Scalix AI. Sends a prompt and returns the model's response in the OpenAI-compatible chat-completions format; tokens are billed to the project's credit pool. Discover available model IDs with scalix_ai_models.
| Argument | Type | Description |
|---|---|---|
| model | string | Model ID (from scalix_ai_models — a scalix-auto/* tier or a scalix-gw/<vendor>/<model> catalog id) |
| prompt* | string | User prompt / message |
| system | string | System message |
| max_tokens | integer | Maximum tokens to generate |
| temperature | number | Sampling temperature (0-2) |
{
"type": "object",
"required": [
"prompt"
],
"properties": {
"model": {
"type": "string",
"description": "Model ID (from scalix_ai_models — a scalix-auto/* tier or a scalix-gw/<vendor>/<model> catalog id)"
},
"prompt": {
"type": "string",
"description": "User prompt / message"
},
"system": {
"type": "string",
"description": "System message"
},
"max_tokens": {
"type": "integer",
"default": 1024,
"description": "Maximum tokens to generate"
},
"temperature": {
"type": "number",
"default": 0.7,
"description": "Sampling temperature (0-2)"
}
}
}List the AI models available to the project — virtual tiers and the pass-through catalog model IDs — for use in scalix_ai_infer.
No arguments.
{
"type": "object",
"properties": {}
}Configure end-user authentication for the project — require MFA, require email confirmation, and set the allowed auth providers. Needs an admin API key: organization admin scope is never delegated to a connected app, so this tool fails on an OAuth connection.
| Argument | Type | Description |
|---|---|---|
| mfa_enabled | boolean | Require multi-factor authentication |
| allowed_providers | array | Allowed auth providers (e.g., ["email", "google", "github"]) |
| require_email_confirmation | boolean | Require users to confirm their email before a session is issued |
{
"type": "object",
"properties": {
"mfa_enabled": {
"type": "boolean",
"description": "Require multi-factor authentication"
},
"allowed_providers": {
"type": "array",
"items": {
"type": "string"
},
"description": "Allowed auth providers (e.g., [\"email\", \"google\", \"github\"])"
},
"require_email_confirmation": {
"type": "boolean",
"description": "Require users to confirm their email before a session is issued"
}
}
}Create a new container image build from a Git repository or Dockerfile.
| Argument | Type | Description |
|---|---|---|
| name* | string | Build name |
| branch | string | Git branch |
| git_url* | string | Git repository URL |
| dockerfile | string | Path to Dockerfile in repo |
{
"type": "object",
"required": [
"name",
"git_url"
],
"properties": {
"name": {
"type": "string",
"description": "Build name"
},
"branch": {
"type": "string",
"default": "main",
"description": "Git branch"
},
"git_url": {
"type": "string",
"description": "Git repository URL"
},
"dockerfile": {
"type": "string",
"default": "Dockerfile",
"description": "Path to Dockerfile in repo"
}
}
}Get the status and logs of a build.
| Argument | Type | Description |
|---|---|---|
| build_id* | string | Build ID to check |
{
"type": "object",
"required": [
"build_id"
],
"properties": {
"build_id": {
"type": "string",
"description": "Build ID to check"
}
}
}Get or create a persistent Linux machine by name. Idempotent — calling it again with the same name returns the existing machine rather than creating another, so it is safe to retry. Unlike a sandbox, the disk survives stop/start and is only erased by scalix_computer_delete.
| Argument | Type | Description |
|---|---|---|
| name* | string | Machine name: lowercase letters, digits and hyphens, max 63 characters. Unique to you. |
| vcpus | integer | vCPUs, 1-16 (default 1). Ignored if the machine already exists. |
| disk_gb | integer | Root disk in GB, 5-200 (default 10). Fixed at create — disks do not grow. Ignored if the machine already exists. |
| ssh_keys | array | OpenSSH public keys to authorise for root, max 32, e.g. ["ssh-ed25519 AAAAC3Nz… you@laptop"]. Only needed if a human will ssh in — exec, write_file and read_file all work without one. Send the public half only; a private key is rejected. Ignored if the machine already exists — use scalix_computer_set_ssh_keys to change them. Supplying this needs the sandbox:execute scope on top of sandbox:create, because a key is a root shell; omit it and sandbox:create alone is enough. |
| memory_mb | integer | Memory in MB, 512-32768 (default 1024). Ignored if the machine already exists. |
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Machine name: lowercase letters, digits and hyphens, max 63 characters. Unique to you."
},
"vcpus": {
"type": "integer",
"description": "vCPUs, 1-16 (default 1). Ignored if the machine already exists."
},
"disk_gb": {
"type": "integer",
"description": "Root disk in GB, 5-200 (default 10). Fixed at create — disks do not grow. Ignored if the machine already exists."
},
"ssh_keys": {
"type": "array",
"items": {
"type": "string"
},
"description": "OpenSSH public keys to authorise for root, max 32, e.g. [\"ssh-ed25519 AAAAC3Nz… you@laptop\"]. Only needed if a human will ssh in — exec, write_file and read_file all work without one. Send the public half only; a private key is rejected. Ignored if the machine already exists — use scalix_computer_set_ssh_keys to change them. Supplying this needs the sandbox:execute scope on top of sandbox:create, because a key is a root shell; omit it and sandbox:create alone is enough."
},
"memory_mb": {
"type": "integer",
"description": "Memory in MB, 512-32768 (default 1024). Ignored if the machine already exists."
}
}
}Permanently delete a persistent Linux machine AND its disk. This cannot be undone — use scalix_computer_stop if you may want the files back.
| Argument | Type | Description |
|---|---|---|
| id* | string | Machine id |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Machine id"
}
}
}Run a command inside a persistent Linux machine and wait for it to finish. Returns exit code, stdout and stderr. The machine must be running.
| Argument | Type | Description |
|---|---|---|
| id* | string | Machine id from scalix_computer_create or scalix_computer_list |
| cwd | string | Working directory inside the machine |
| env | object | Environment variables for this command only |
| args | array | Arguments passed to the program; omit when command is a shell string |
| command* | string | Either a bare program (e.g. bash, with args passed separately) OR a full shell string (e.g. "apt-get install -y jq") — a command containing whitespace is run via sh -lc automatically, so no manual ["-lc", ...] wrapping is needed |
| timeout_ms | integer | Give up after this many milliseconds, 1000-300000 (default 120000). 300s is the platform-wide hop ceiling — a larger request is served at 300s, not rejected. |
{
"type": "object",
"required": [
"id",
"command"
],
"properties": {
"id": {
"type": "string",
"description": "Machine id from scalix_computer_create or scalix_computer_list"
},
"cwd": {
"type": "string",
"description": "Working directory inside the machine"
},
"env": {
"type": "object",
"description": "Environment variables for this command only"
},
"args": {
"type": "array",
"items": {
"type": "string"
},
"description": "Arguments passed to the program; omit when command is a shell string"
},
"command": {
"type": "string",
"description": "Either a bare program (e.g. bash, with args passed separately) OR a full shell string (e.g. \"apt-get install -y jq\") — a command containing whitespace is run via sh -lc automatically, so no manual [\"-lc\", ...] wrapping is needed"
},
"timeout_ms": {
"type": "integer",
"description": "Give up after this many milliseconds, 1000-300000 (default 120000). 300s is the platform-wide hop ceiling — a larger request is served at 300s, not rejected."
}
}
}List your persistent Linux machines with their status, address and resource shape.
No arguments.
{
"type": "object",
"properties": {}
}Read a text file out of a persistent Linux machine.
| Argument | Type | Description |
|---|---|---|
| id* | string | Machine id |
| path* | string | Absolute path inside the machine |
{
"type": "object",
"required": [
"id",
"path"
],
"properties": {
"id": {
"type": "string",
"description": "Machine id"
},
"path": {
"type": "string",
"description": "Absolute path inside the machine"
}
}
}Replace the ssh keys authorised for root on a persistent Linux machine. This is how you revoke: send the list without the key you want gone, and on a running machine it stops working immediately. Sending an empty list removes every key. Not a patch — whatever you send becomes the whole list, so read the current keys from scalix_computer_list first if you mean to add one.
| Argument | Type | Description |
|---|---|---|
| id* | string | Machine id |
| ssh_keys* | array | The complete list of OpenSSH public keys, max 32. Empty array removes all of them. |
{
"type": "object",
"required": [
"id",
"ssh_keys"
],
"properties": {
"id": {
"type": "string",
"description": "Machine id"
},
"ssh_keys": {
"type": "array",
"items": {
"type": "string"
},
"description": "The complete list of OpenSSH public keys, max 32. Empty array removes all of them."
}
}
}Start a stopped persistent Linux machine. Same disk, same address.
| Argument | Type | Description |
|---|---|---|
| id* | string | Machine id |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Machine id"
}
}
}Stop a persistent Linux machine. The disk and the network address are kept, so starting it again returns the same files at the same address. Stop machines you are done with — a stopped machine costs only its disk.
| Argument | Type | Description |
|---|---|---|
| id* | string | Machine id |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Machine id"
}
}
}Write a text file into a persistent Linux machine. Use this instead of shelling out with cat/echo — no quoting to get wrong.
| Argument | Type | Description |
|---|---|---|
| id* | string | Machine id |
| mode | integer | Unix mode in decimal, e.g. 493 for 0755. Omit unless the file must be executable. |
| path* | string | Absolute path inside the machine, e.g. /root/app/main.py |
| content* | string | File contents as text |
{
"type": "object",
"required": [
"id",
"path",
"content"
],
"properties": {
"id": {
"type": "string",
"description": "Machine id"
},
"mode": {
"type": "integer",
"description": "Unix mode in decimal, e.g. 493 for 0755. Omit unless the file must be executable."
},
"path": {
"type": "string",
"description": "Absolute path inside the machine, e.g. /root/app/main.py"
},
"content": {
"type": "string",
"description": "File contents as text"
}
}
}Post a note to the crew's notice board for other members and the human to see. The board is news, not knowledge: set ttl_seconds so routine updates expire on their own, pin only what every future task must see, and set owner_member_id to hand work off to a specific member. Notes cannot be edited from here — post a correction instead.
| Argument | Type | Description |
|---|---|---|
| body* | string | The note, max 8000 chars. Write for a teammate who was not watching your work. |
| pinned | boolean | Keep this in front of everyone indefinitely. Default false; most notes should expire instead. |
| crew_id* | string | Crew id from scalix_crew_list |
| ttl_seconds | integer | Seconds until the note expires, 60 to 7776000 (90 days). Omit for no expiry — usually only right for pins. |
| owner_member_id | string | Hand off: the member id now responsible for this item. |
| author_member_id | string | Your member id, so the note is attributed. Omit when posting as the human. |
{
"type": "object",
"required": [
"crew_id",
"body"
],
"properties": {
"body": {
"type": "string",
"description": "The note, max 8000 chars. Write for a teammate who was not watching your work."
},
"pinned": {
"type": "boolean",
"description": "Keep this in front of everyone indefinitely. Default false; most notes should expire instead."
},
"crew_id": {
"type": "string",
"description": "Crew id from scalix_crew_list"
},
"ttl_seconds": {
"type": "integer",
"description": "Seconds until the note expires, 60 to 7776000 (90 days). Omit for no expiry — usually only right for pins."
},
"owner_member_id": {
"type": "string",
"description": "Hand off: the member id now responsible for this item."
},
"author_member_id": {
"type": "string",
"description": "Your member id, so the note is attributed. Omit when posting as the human."
}
}
}Read a crew's notice board: every pinned note plus the newest unpinned ones, current as of this call. The board is the crew's shared coordination state — read it before starting work so you act on the latest news, and post what teammates need to know with scalix_crew_board_post.
| Argument | Type | Description |
|---|---|---|
| crew_id* | string | Crew id from scalix_crew_list |
{
"type": "object",
"required": [
"crew_id"
],
"properties": {
"crew_id": {
"type": "string",
"description": "Crew id from scalix_crew_list"
}
}
}List your crews with their ids and names. A crew is a team of AI members that share a notice board; use the crew id with the board tools.
No arguments.
{
"type": "object",
"properties": {}
}Create a cron schedule to run a function or webhook on a timer.
| Argument | Type | Description |
|---|---|---|
| name* | string | Schedule name |
| config | object | Action configuration (function_id or webhook URL) |
| expression* | string | Cron expression (e.g., '*/5 * * * *') |
| action_type* | string | Type of action to trigger |
{
"type": "object",
"required": [
"name",
"expression",
"action_type"
],
"properties": {
"name": {
"type": "string",
"description": "Schedule name"
},
"config": {
"type": "object",
"description": "Action configuration (function_id or webhook URL)"
},
"expression": {
"type": "string",
"description": "Cron expression (e.g., '*/5 * * * *')"
},
"action_type": {
"enum": [
"function",
"webhook"
],
"type": "string",
"description": "Type of action to trigger"
}
}
}Apply a database migration by version number.
| Argument | Type | Description |
|---|---|---|
| version* | string | Migration version to apply |
| tenant_id* | string | Tenant ID |
{
"type": "object",
"required": [
"tenant_id",
"version"
],
"properties": {
"version": {
"type": "string",
"description": "Migration version to apply"
},
"tenant_id": {
"type": "string",
"description": "Tenant ID"
}
}
}Analyze a SQL query and return optimization suggestions including index recommendations and query rewrites.
| Argument | Type | Description |
|---|---|---|
| sql* | string | SQL query to analyze and optimize |
{
"type": "object",
"required": [
"sql"
],
"properties": {
"sql": {
"type": "string",
"description": "SQL query to analyze and optimize"
}
}
}List all columns classified as containing personally identifiable information (PII).
No arguments.
{
"type": "object",
"properties": {}
}Execute a SQL query against the project database. Returns columns, rows, row count, and cost breakdown. Destructive statements (DROP/TRUNCATE/bulk DELETE) require a two-step confirmation: the first call returns code CONFIRMATION_REQUIRED with a confirmation_token — re-call with that value in confirm_token to execute.
| Argument | Type | Description |
|---|---|---|
| sql* | string | SQL query to execute |
| params | array | Bind parameters for the query |
| timeline_id | string | F17: run the query against a BRANCH timeline of this project instead of the primary. Takes the timeline_id returned by scalix_db_branch_create (or its db_<timeline_id> form). A timeline that is not a branch of this project fails the call — it never falls back to the primary. Omit for the primary. |
| confirm_token | string | Confirmation token from a prior CONFIRMATION_REQUIRED response; required to execute destructive SQL (single-use, short TTL) |
{
"type": "object",
"required": [
"sql"
],
"properties": {
"sql": {
"type": "string",
"description": "SQL query to execute"
},
"params": {
"type": "array",
"items": {},
"description": "Bind parameters for the query"
},
"timeline_id": {
"type": "string",
"description": "F17: run the query against a BRANCH timeline of this project instead of the primary. Takes the timeline_id returned by scalix_db_branch_create (or its db_<timeline_id> form). A timeline that is not a branch of this project fails the call — it never falls back to the primary. Omit for the primary."
},
"confirm_token": {
"type": "string",
"description": "Confirmation token from a prior CONFIRMATION_REQUIRED response; required to execute destructive SQL (single-use, short TTL)"
}
}
}Get the relationship map showing how tables are connected via foreign keys.
No arguments.
{
"type": "object",
"properties": {}
}Get the full database schema including all tables, columns, types, and relationships.
No arguments.
{
"type": "object",
"properties": {}
}Search for columns by name or type across all tables.
| Argument | Type | Description |
|---|---|---|
| query* | string | Search term to match column names or types |
{
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"description": "Search term to match column names or types"
}
}
}Get detailed information about a specific database table including columns, indexes, and foreign keys.
| Argument | Type | Description |
|---|---|---|
| table* | string | Table name to inspect |
{
"type": "object",
"required": [
"table"
],
"properties": {
"table": {
"type": "string",
"description": "Table name to inspect"
}
}
}Translate a plain-language question into a candidate SQL query using pattern-matching against the live schema (no AI model — simple questions only: counts, averages, filtered selects on a named table). Returns the SQL without executing it, with a confidence score; low confidence means the table was guessed. Review the statement and tables_used, then run it with scalix_db_query. For complex questions, read scalix_db_schema and write the SQL directly.
| Argument | Type | Description |
|---|---|---|
| question* | string | The question to answer from the database, in plain language (e.g. 'how many orders shipped last week?') |
{
"type": "object",
"required": [
"question"
],
"properties": {
"question": {
"type": "string",
"description": "The question to answer from the database, in plain language (e.g. 'how many orders shipped last week?')"
}
}
}Add a custom domain to the project. Returns DNS records to configure.
| Argument | Type | Description |
|---|---|---|
| domain* | string | Domain name to add (e.g., api.example.com) |
{
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"description": "Domain name to add (e.g., api.example.com)"
}
}
}List all custom domains and their SSL/verification status.
No arguments.
{
"type": "object",
"properties": {}
}Verify DNS configuration for a custom domain and provision SSL certificate.
| Argument | Type | Description |
|---|---|---|
| domain* | string | Domain to verify |
{
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"description": "Domain to verify"
}
}
}Publish an event to a topic. Provide an event_type (a short name for the kind of event, e.g. 'user.created') and the data payload.
| Argument | Type | Description |
|---|---|---|
| data* | object | Event payload (JSON) |
| topic_id* | string | Topic ID to publish to |
| event_type* | string | Event type/name, e.g. 'user.created' |
{
"type": "object",
"required": [
"topic_id",
"event_type",
"data"
],
"properties": {
"data": {
"type": "object",
"description": "Event payload (JSON)"
},
"topic_id": {
"type": "string",
"description": "Topic ID to publish to"
},
"event_type": {
"type": "string",
"description": "Event type/name, e.g. 'user.created'"
}
}
}List the event-bus topics in the project, with each topic's ID and name. Use this to find or verify a topic_id before publishing with scalix_events_publish; publishing to a non-existent topic fails.
No arguments.
{
"type": "object",
"properties": {}
}Deploy a Scalix Function — serverless, per-request billed, running in isolated microVMs — from a container image. Invoke it with scalix_fn_invoke once deployed.
| Argument | Type | Description |
|---|---|---|
| name* | string | Function name |
| image* | string | Container image reference |
| runtime | string | Runtime — `node` or `python` (exactly what the functions orchestrator accepts) |
{
"type": "object",
"required": [
"name",
"image"
],
"properties": {
"name": {
"type": "string",
"description": "Function name"
},
"image": {
"type": "string",
"description": "Container image reference"
},
"runtime": {
"type": "string",
"description": "Runtime — `node` or `python` (exactly what the functions orchestrator accepts)"
}
}
}Invoke a deployed function with a JSON payload.
| Argument | Type | Description |
|---|---|---|
| data | object | JSON payload to pass to the function |
| function_id* | string | Function ID to invoke |
{
"type": "object",
"required": [
"function_id"
],
"properties": {
"data": {
"type": "object",
"description": "JSON payload to pass to the function"
},
"function_id": {
"type": "string",
"description": "Function ID to invoke"
}
}
}List all deployed serverless functions.
No arguments.
{
"type": "object",
"properties": {}
}Read a single value from the project's key-value store by exact key. Returns the stored value, or a not-found error if the key does not exist or its TTL has expired. Use scalix_kv_list to discover keys by prefix first.
| Argument | Type | Description |
|---|---|---|
| key* | string | Exact key to look up (case-sensitive) |
{
"type": "object",
"required": [
"key"
],
"properties": {
"key": {
"type": "string",
"description": "Exact key to look up (case-sensitive)"
}
}
}List keys in the key-value store, optionally filtered by prefix.
| Argument | Type | Description |
|---|---|---|
| prefix | string | Filter keys by prefix |
{
"type": "object",
"properties": {
"prefix": {
"type": "string",
"description": "Filter keys by prefix"
}
}
}Set a key-value pair with optional TTL.
| Argument | Type | Description |
|---|---|---|
| key* | string | Key to set |
| ttl | integer | Time-to-live in seconds (0 = no expiry) |
| value* | string | Value to store |
{
"type": "object",
"required": [
"key",
"value"
],
"properties": {
"key": {
"type": "string",
"description": "Key to set"
},
"ttl": {
"type": "integer",
"description": "Time-to-live in seconds (0 = no expiry)"
},
"value": {
"type": "string",
"description": "Value to store"
}
}
}Create a new project within an organization. Returns the project ID, name, and slug. Issue an API key for the new project separately. Needs an admin API key: organization admin scope is never delegated to a connected app, so this tool fails on an OAuth connection.
| Argument | Type | Description |
|---|---|---|
| name* | string | Project display name |
| slug* | string | URL-safe project slug |
| org_id* | string | Organization ID |
{
"type": "object",
"required": [
"org_id",
"name",
"slug"
],
"properties": {
"name": {
"type": "string",
"description": "Project display name"
},
"slug": {
"type": "string",
"description": "URL-safe project slug"
},
"org_id": {
"type": "string",
"description": "Organization ID"
}
}
}List every project in an organization, with each project's ID, name, and slug. Use this to resolve a project ID before calling project-scoped tools. Needs an admin API key: organization admin scope is never delegated to a connected app, so this tool fails on an OAuth connection.
| Argument | Type | Description |
|---|---|---|
| org_id* | string | Organization ID whose projects to list |
{
"type": "object",
"required": [
"org_id"
],
"properties": {
"org_id": {
"type": "string",
"description": "Organization ID whose projects to list"
}
}
}Permanently delete a Scalix Run service. This cannot be undone: it stops the running instances, releases the public HTTPS URL, erases any attached volumes and discards every revision, so scalix_run_rollback cannot bring it back afterwards. To stop paying for an idle service without losing it, set min_instances to 0 with scalix_run_scale instead.
| Argument | Type | Description |
|---|---|---|
| id* | string | Service ID (from scalix_run_list) |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Service ID (from scalix_run_list)"
}
}
}Deploy a long-running container service on Scalix Run from a container image. Creates a new service, or a new revision of an existing service with the same name, with health checks, a public HTTPS URL, and autoscaling between min_instances and max_instances (min 0 = scale-to-zero when idle). Billed per vCPU-hour while instances run. Roll back a bad revision with scalix_run_rollback.
| Argument | Type | Description |
|---|---|---|
| env | object | Environment variables as key-value pairs |
| name* | string | Service name |
| port | integer | Port the container listens on |
| image* | string | Container image from the Scalix registry ({registry}/{project_id}/{repo}:{tag}). External registries (Docker Hub, etc.) are NOT supported — build & push first with scalix_build_create. |
| max_instances | integer | Maximum instances |
| min_instances | integer | Minimum instances (0 = scale to zero) |
{
"type": "object",
"required": [
"name",
"image"
],
"properties": {
"env": {
"type": "object",
"description": "Environment variables as key-value pairs"
},
"name": {
"type": "string",
"description": "Service name"
},
"port": {
"type": "integer",
"default": 8080,
"description": "Port the container listens on"
},
"image": {
"type": "string",
"description": "Container image from the Scalix registry ({registry}/{project_id}/{repo}:{tag}). External registries (Docker Hub, etc.) are NOT supported — build & push first with scalix_build_create."
},
"max_instances": {
"type": "integer",
"default": 10,
"description": "Maximum instances"
},
"min_instances": {
"type": "integer",
"default": 0,
"description": "Minimum instances (0 = scale to zero)"
}
}
}List all deployed container services in the project.
No arguments.
{
"type": "object",
"properties": {}
}Roll a Scalix Run service back to an earlier revision — omit 'revision' to return to the immediately previous one. Traffic switches to the target revision; the replaced revision is kept and can be redeployed later. Use scalix_run_list to see services and their current revisions.
| Argument | Type | Description |
|---|---|---|
| id* | string | Service ID (from scalix_run_list) |
| revision | integer | Revision number to roll back to; omit for the immediately previous revision |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Service ID (from scalix_run_list)"
},
"revision": {
"type": "integer",
"description": "Revision number to roll back to; omit for the immediately previous revision"
}
}
}Change the autoscaling bounds of an existing Scalix Run service without redeploying it. Raising min_instances keeps instances warm (no cold starts, higher cost); min_instances 0 enables scale-to-zero when idle. Takes effect immediately. Find service IDs with scalix_run_list.
| Argument | Type | Description |
|---|---|---|
| id* | string | Service ID (from scalix_run_list) |
| max_instances | integer | New maximum instance count the service may scale up to |
| min_instances | integer | New minimum instance count (0 = scale-to-zero when idle) |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Service ID (from scalix_run_list)"
},
"max_instances": {
"type": "integer",
"description": "New maximum instance count the service may scale up to"
},
"min_instances": {
"type": "integer",
"description": "New minimum instance count (0 = scale-to-zero when idle)"
}
}
}Execute code in an isolated sandbox. Supports Python, JavaScript, TypeScript, and Bash. Returns stdout/stderr, the probed interpreter version, and any files the code wrote (base64, under size/count caps).
| Argument | Type | Description |
|---|---|---|
| code* | string | Source code to execute |
| files | object | Additional files (filename -> content) |
| language* | string | Programming language |
| packages | array | Packages to install (pip/npm) |
| timeout_seconds | integer | Max execution time in seconds (default: 30) |
{
"type": "object",
"required": [
"language",
"code"
],
"properties": {
"code": {
"type": "string",
"description": "Source code to execute"
},
"files": {
"type": "object",
"description": "Additional files (filename -> content)"
},
"language": {
"enum": [
"python",
"javascript",
"typescript",
"bash"
],
"type": "string",
"description": "Programming language"
},
"packages": {
"type": "array",
"items": {
"type": "string"
},
"description": "Packages to install (pip/npm)"
},
"timeout_seconds": {
"type": "integer",
"description": "Max execution time in seconds (default: 30)"
}
}
}Get the current health status of the Scalix Cloud platform including all service components.
No arguments.
{
"type": "object",
"properties": {}
}Create a new Scalix Storage bucket in the project (S3-compatible object storage). Bucket names must be unique within the project. Setting public=true makes every object in the bucket readable without authentication — leave it false (the default) and use presigned URLs for private sharing. Public buckets double as static websites: upload index.html and serve it from the project's store subdomain at https://{slug}.store.scalix.world/buckets/{bucket}/objects/ (directory requests serve index.html; a 404.html object is served as the error page).
| Argument | Type | Description |
|---|---|---|
| name* | string | Bucket name, unique within the project (aliases: bucket) |
| bucket | string | Alias of name — accepted for symmetry with the object tools |
| public | boolean | true = all objects publicly readable without auth (also serves as a static website on {slug}.store.scalix.world); false (default) = private, share via presigned URLs |
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Bucket name, unique within the project (aliases: bucket)"
},
"bucket": {
"type": "string",
"description": "Alias of name — accepted for symmetry with the object tools"
},
"public": {
"type": "boolean",
"default": false,
"description": "true = all objects publicly readable without auth (also serves as a static website on {slug}.store.scalix.world); false (default) = private, share via presigned URLs"
}
}
}Permanently delete a storage bucket and every object in it. Irreversible.
| Argument | Type | Description |
|---|---|---|
| name | string | Alias of bucket |
| bucket* | string | Bucket name (aliases: name) |
{
"type": "object",
"required": [
"bucket"
],
"properties": {
"name": {
"type": "string",
"description": "Alias of bucket"
},
"bucket": {
"type": "string",
"description": "Bucket name (aliases: name)"
}
}
}Permanently delete an object (key) from a storage bucket. Irreversible.
| Argument | Type | Description |
|---|---|---|
| key* | string | Object key (path) to delete |
| name | string | Alias of bucket |
| bucket* | string | Bucket name (aliases: name) |
{
"type": "object",
"required": [
"bucket",
"key"
],
"properties": {
"key": {
"type": "string",
"description": "Object key (path) to delete"
},
"name": {
"type": "string",
"description": "Alias of bucket"
},
"bucket": {
"type": "string",
"description": "Bucket name (aliases: name)"
}
}
}Download an object from storage. Returns the content as base64.
| Argument | Type | Description |
|---|---|---|
| key* | string | Object key (path) |
| name | string | Alias of bucket — accepted for symmetry with create/delete |
| bucket* | string | Bucket name |
{
"type": "object",
"required": [
"bucket",
"key"
],
"properties": {
"key": {
"type": "string",
"description": "Object key (path)"
},
"name": {
"type": "string",
"description": "Alias of bucket — accepted for symmetry with create/delete"
},
"bucket": {
"type": "string",
"description": "Bucket name"
}
}
}List storage buckets, or list objects in a specific bucket with optional prefix filter.
| Argument | Type | Description |
|---|---|---|
| name | string | Alias of bucket — accepted for symmetry with create/delete |
| bucket | string | Bucket name (aliases: name). If omitted, lists all buckets. |
| prefix | string | Filter objects by key prefix |
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Alias of bucket — accepted for symmetry with create/delete"
},
"bucket": {
"type": "string",
"description": "Bucket name (aliases: name). If omitted, lists all buckets."
},
"prefix": {
"type": "string",
"description": "Filter objects by key prefix"
}
}
}Upload content to object storage. Provide the content as a base64-encoded string.
| Argument | Type | Description |
|---|---|---|
| key* | string | Object key (path) |
| name | string | Alias of bucket — accepted for symmetry with create/delete |
| bucket* | string | Target bucket name |
| content* | string | Base64-encoded file content |
| content_type | string | MIME type |
{
"type": "object",
"required": [
"bucket",
"key",
"content"
],
"properties": {
"key": {
"type": "string",
"description": "Object key (path)"
},
"name": {
"type": "string",
"description": "Alias of bucket — accepted for symmetry with create/delete"
},
"bucket": {
"type": "string",
"description": "Target bucket name"
},
"content": {
"type": "string",
"description": "Base64-encoded file content"
},
"content_type": {
"type": "string",
"default": "application/octet-stream",
"description": "MIME type"
}
}
}