Scalix Cloud
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
The agent-native cloud: database, functions, AI, storage, computers. 51 tools, one API key.
| Author | world.scalix |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 398 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"Scalix Cloud": {
"url": "https://api.scalix.world/v1/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (53)
scalix_db_relationshipsread-onlyGet the relationship map showing how tables are connected via foreign keys.
Hints: read-only yes · destructive no · idempotent yes · open-world no
scalix_db_search_columnsread-onlySearch for columns by name or type across all tables.
Parameters:
query(required) — string — Search term to match column names or types
Hints: read-only yes · destructive no · idempotent yes · open-world no
scalix_db_piiread-onlyList all columns classified as containing personally identifiable information (PII).
Hints: read-only yes · destructive no · idempotent yes · open-world no
scalix_db_optimizeread-onlyAnalyze a SQL query and return optimization suggestions including index recommendations and query rewrites.
Parameters:
sql(required) — string — SQL query to analyze and optimize
Hints: read-only yes · destructive no · idempotent yes · open-world no
scalix_db_text_to_sqlread-onlyTranslate 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.
Parameters:
question(required) — string — The question to answer from the database, in plain language (e.g. 'how many orders shipped last week?')
Hints: read-only yes · destructive no · idempotent yes · open-world no
scalix_db_querydestructiveExecute 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.
Parameters:
sql(required) — string — SQL query to executeparams— array — Bind parameters for the querytimeline_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)
Hints: read-only no · destructive yes · idempotent no · open-world no
scalix_db_schemaread-onlyGet the full database schema including all tables, columns, types, and relationships.
Hints: read-only yes · destructive no · idempotent yes · open-world no
scalix_db_tableread-onlyGet detailed information about a specific database table including columns, indexes, and foreign keys.
Parameters:
table(required) — string — Table name to inspect
Hints: read-only yes · destructive no · idempotent yes · open-world no
scalix_db_migratedestructiveApply a database migration by version number.
Parameters:
tenant_id(required) — string — Tenant IDversion(required) — string — Migration version to apply
Hints: read-only no · destructive yes · idempotent yes · open-world no
scalix_storage_listread-onlyList storage buckets, or list objects in a specific bucket with optional prefix filter.
Parameters:
name— string — Alias of bucket — accepted for symmetry with create/deletebucket— string — Bucket name (aliases: name). If omitted, lists all buckets.prefix— string — Filter objects by key prefix
Hints: read-only yes · destructive no · idempotent yes · open-world no
scalix_storage_uploaddestructiveUpload content to object storage. Provide the content as a base64-encoded string.
Parameters:
bucket(required) — string — Target bucket namekey(required) — string — Object key (path)content(required) — string — Base64-encoded file contentname— string — Alias of bucket — accepted for symmetry with create/deletecontent_type— string — MIME type
Hints: read-only no · destructive yes · idempotent yes · open-world yes
scalix_storage_downloadread-onlyDownload an object from storage. Returns the content as base64.
Parameters:
bucket(required) — string — Bucket namekey(required) — string — Object key (path)name— string — Alias of bucket — accepted for symmetry with create/delete
Hints: read-only yes · destructive no · idempotent yes · open-world no
scalix_storage_create_bucketCreate 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).
Parameters:
name(required) — string — Bucket name, unique within the project (aliases: bucket)bucket— string — Alias of name — accepted for symmetry with the object toolspublic— 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
Hints: read-only no · destructive no · idempotent yes · open-world yes
scalix_storage_delete_objectdestructivePermanently delete an object (key) from a storage bucket. Irreversible.
Parameters:
bucket(required) — string — Bucket name (aliases: name)key(required) — string — Object key (path) to deletename— string — Alias of bucket
Hints: read-only no · destructive yes · idempotent yes · open-world yes
scalix_storage_delete_bucketdestructivePermanently delete a storage bucket and every object in it. Irreversible.
Parameters:
bucket(required) — string — Bucket name (aliases: name)name— string — Alias of bucket
Hints: read-only no · destructive yes · idempotent yes · open-world yes
scalix_fn_listread-onlyList all deployed serverless functions.
Hints: read-only yes · destructive no · idempotent yes · open-world no
scalix_fn_deployDeploy a Scalix Function — serverless, per-request billed, running in isolated microVMs — from a container image. Invoke it with scalix_fn_invoke once deployed.
Parameters:
name(required) — string — Function nameimage(required) — string — Container image referenceruntime— string — Runtime — `node` or `python` (exactly what the functions orchestrator accepts)
Hints: read-only no · destructive no · idempotent no · open-world yes
scalix_fn_invokedestructiveInvoke a deployed function with a JSON payload.
Parameters:
function_id(required) — string — Function ID to invokedata— object — JSON payload to pass to the function
Hints: read-only no · destructive yes · idempotent no · open-world yes
scalix_kv_getread-onlyRead 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.
Parameters:
key(required) — string — Exact key to look up (case-sensitive)
Hints: read-only yes · destructive no · idempotent yes · open-world no
scalix_kv_setdestructiveSet a key-value pair with optional TTL.
Parameters:
key(required) — string — Key to setvalue(required) — string — Value to storettl— integer — Time-to-live in seconds (0 = no expiry)
Hints: read-only no · destructive yes · idempotent yes · open-world no
scalix_kv_listread-onlyList keys in the key-value store, optionally filtered by prefix.
Parameters:
prefix— string — Filter keys by prefix
Hints: read-only yes · destructive no · idempotent yes · open-world no
scalix_ai_inferRun 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.
Parameters:
prompt(required) — string — User prompt / messagemodel— string — Model ID (from scalix_ai_models — a scalix-auto/* tier or a scalix-gw/<vendor>/<model> catalog id)system— string — System messagemax_tokens— integer — Maximum tokens to generatetemperature— number — Sampling temperature (0-2)
Hints: read-only no · destructive no · idempotent no · open-world no
scalix_ai_modelsread-onlyList the AI models available to the project — virtual tiers and the pass-through catalog model IDs — for use in scalix_ai_infer.
Hints: read-only yes · destructive no · idempotent yes · open-world no
scalix_events_publishPublish 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.
Parameters:
topic_id(required) — string — Topic ID to publish toevent_type(required) — string — Event type/name, e.g. 'user.created'data(required) — object — Event payload (JSON)
Hints: read-only no · destructive no · idempotent no · open-world yes
scalix_events_topicsread-onlyList 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.
Hints: read-only yes · destructive no · idempotent yes · open-world no
scalix_cron_createCreate a cron schedule to run a function or webhook on a timer.
Parameters:
name(required) — string — Schedule nameexpression(required) — string — Cron expression (e.g., '*/5 * * * *')action_type(required) — string — Type of action to triggerconfig— object — Action configuration (function_id or webhook URL)
Hints: read-only no · destructive no · idempotent no · open-world yes
scalix_sandbox_runExecute 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).
Parameters:
language(required) — string — Programming languagecode(required) — string — Source code to executefiles— object — Additional files (filename -> content)packages— array — Packages to install (pip/npm)timeout_seconds— integer — Max execution time in seconds (default: 30)
Hints: read-only no · destructive no · idempotent no · open-world yes
scalix_computer_createGet 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.
Parameters:
name(required) — 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.
Hints: read-only no · destructive no · idempotent yes · open-world no
scalix_computer_set_ssh_keysdestructiveReplace 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.
Parameters:
id(required) — string — Machine idssh_keys(required) — array — The complete list of OpenSSH public keys, max 32. Empty array removes all of them.
Hints: read-only no · destructive yes · idempotent yes · open-world no
scalix_computer_listread-onlyList your persistent Linux machines with their status, address and resource shape.
Hints: read-only yes · destructive no · idempotent yes · open-world no
scalix_computer_execdestructiveRun a command inside a persistent Linux machine and wait for it to finish. Returns exit code, stdout and stderr. The machine must be running.
Parameters:
id(required) — string — Machine id from scalix_computer_create or scalix_computer_listcommand(required) — 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 neededcwd— string — Working directory inside the machineenv— object — Environment variables for this command onlyargs— array — Arguments passed to the program; omit when command is a shell stringtimeout_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.
Hints: read-only no · destructive yes · idempotent no · open-world yes
scalix_computer_write_filedestructiveWrite a text file into a persistent Linux machine. Use this instead of shelling out with cat/echo — no quoting to get wrong.
Parameters:
id(required) — string — Machine idpath(required) — string — Absolute path inside the machine, e.g. /root/app/main.pycontent(required) — string — File contents as textmode— integer — Unix mode in decimal, e.g. 493 for 0755. Omit unless the file must be executable.
Hints: read-only no · destructive yes · idempotent yes · open-world no
scalix_computer_read_fileread-onlyRead a text file out of a persistent Linux machine.
Parameters:
id(required) — string — Machine idpath(required) — string — Absolute path inside the machine
Hints: read-only yes · destructive no · idempotent yes · open-world no
scalix_computer_stopStop 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.
Parameters:
id(required) — string — Machine id
Hints: read-only no · destructive no · idempotent yes · open-world no
scalix_computer_startStart a stopped persistent Linux machine. Same disk, same address.
Parameters:
id(required) — string — Machine id
Hints: read-only no · destructive no · idempotent yes · open-world no
scalix_computer_deletedestructivePermanently delete a persistent Linux machine AND its disk. This cannot be undone — use scalix_computer_stop if you may want the files back.
Parameters:
id(required) — string — Machine id
Hints: read-only no · destructive yes · idempotent yes · open-world no
scalix_crew_listread-onlyList 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.
Hints: read-only yes · destructive no · idempotent yes · open-world no
scalix_crew_board_readread-onlyRead 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.
Parameters:
crew_id(required) — string — Crew id from scalix_crew_list
Hints: read-only yes · destructive no · idempotent yes · open-world no
scalix_crew_board_postPost 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.
Parameters:
crew_id(required) — string — Crew id from scalix_crew_listbody(required) — 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.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.
Hints: read-only no · destructive no · idempotent no · open-world no
scalix_domain_addAdd a custom domain to the project. Returns DNS records to configure.
Parameters:
domain(required) — string — Domain name to add (e.g., api.example.com)
Hints: read-only no · destructive no · idempotent no · open-world no
scalix_domain_listread-onlyList all custom domains and their SSL/verification status.
Hints: read-only yes · destructive no · idempotent yes · open-world no
scalix_domain_verifyVerify DNS configuration for a custom domain and provision SSL certificate.
Parameters:
domain(required) — string — Domain to verify
Hints: read-only no · destructive no · idempotent yes · open-world yes
scalix_build_createCreate a new container image build from a Git repository or Dockerfile.
Parameters:
name(required) — string — Build namegit_url(required) — string — Git repository URLbranch— string — Git branchdockerfile— string — Path to Dockerfile in repo
Hints: read-only no · destructive no · idempotent no · open-world yes
scalix_build_statusread-onlyGet the status and logs of a build.
Parameters:
build_id(required) — string — Build ID to check
Hints: read-only yes · destructive no · idempotent yes · open-world no
scalix_project_createCreate 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.
Parameters:
org_id(required) — string — Organization IDname(required) — string — Project display nameslug(required) — string — URL-safe project slug
Hints: read-only no · destructive no · idempotent no · open-world no
scalix_project_listread-onlyList 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. `org_id` is optional: omit it to list the projects of the organization the API key belongs to (resolved via GET /v1/me). Needs an admin API key: organization admin scope is never delegated to a connected app, so this tool fails on an OAuth connection.
Parameters:
org_id— string — Organization ID whose projects to list. Optional — defaults to the API key's own organization.
Hints: read-only yes · destructive no · idempotent yes · open-world no
scalix_auth_configuredestructiveConfigure 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.
Parameters:
mfa_enabled— boolean — Require multi-factor authenticationallowed_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
Hints: read-only no · destructive yes · idempotent yes · open-world no
scalix_statusread-onlyGet the current health status of the Scalix Cloud platform including all service components.
Hints: read-only yes · destructive no · idempotent yes · open-world no
scalix_run_deployDeploy 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.
Parameters:
name(required) — string — Service nameimage(required) — 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.env— object — Environment variables as key-value pairsport— integer — Port the container listens onmax_instances— integer — Maximum instancesmin_instances— integer — Minimum instances (0 = scale to zero)
Hints: read-only no · destructive no · idempotent no · open-world yes
scalix_run_listread-onlyList all deployed container services in the project.
Hints: read-only yes · destructive no · idempotent yes · open-world no
scalix_run_scaleChange 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.
Parameters:
id(required) — string — Service ID (from scalix_run_list)max_instances— integer — New maximum instance count the service may scale up tomin_instances— integer — New minimum instance count (0 = scale-to-zero when idle)
Hints: read-only no · destructive no · idempotent yes · open-world no
scalix_run_rollbackRoll 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.
Parameters:
id(required) — string — Service ID (from scalix_run_list)revision— integer — Revision number to roll back to; omit for the immediately previous revision
Hints: read-only no · destructive no · idempotent no · open-world yes
scalix_run_deletedestructivePermanently 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.
Parameters:
id(required) — string — Service ID (from scalix_run_list)
Hints: read-only no · destructive yes · idempotent yes · open-world yes
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.