# Scalix Cloud

> The agent-native cloud: database, functions, AI, storage, computers. 51 tools, one API key.

- name: world.scalix/cloud
- version: 1.5.0
- connection class: R1 (autonomous)
- trust: 96/100
- quality: 86/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/world.scalix%2Fcloud
- tools: https://api.protogrid.dev/v1/servers/world.scalix%2Fcloud/tools

**An agent can connect on its own if it already holds `CLOUD_TOKEN`.** Remote endpoint behind a static API key or header. The registry never sees the value; the agent fills the placeholder.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "cloud": {
      "type": "http",
      "url": "https://api.scalix.world/v1/mcp",
      "headers": {
        "Authorization": "Bearer ${CLOUD_TOKEN}"
      }
    }
  }
}
```

Placeholders to fill: `${CLOUD_TOKEN}`.

## Trust

- hygiene: 100
- liveness: 100
- freshness: 100
- provenance: 85
- drivers: +repository +dns-namespace +website +reachable +uptime-100% +updated-8d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 86/100 (good)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-06-18; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 53 of 53 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 6,952 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 75 (weight 15)

- warn `stability.changes`: 11 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 53, about 6,952 tokens to load them all
- tool set hash: b6a6039250000be25fa336f97f7dcaba
- tools last changed: 2026-10-16T14:46:40.850Z
- badge: [![protogrid quality](https://protogrid.dev/badge/world.scalix/cloud.svg)](https://protogrid.dev/servers/world.scalix/cloud)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-16 `scalix_computer_exec` changed (inputSchema)
- 2026-10-16 `scalix_db_query` changed (inputSchema)
- 2026-10-15 `scalix_computer_exec` changed (inputSchema)
- 2026-10-15 `scalix_storage_delete_bucket` added
  - Permanently delete a storage bucket and every object in it. Irreversible.
- 2026-10-15 `scalix_storage_delete_object` added
  - Permanently delete an object (key) from a storage bucket. Irreversible.
- 2026-10-15 `scalix_storage_create_bucket` changed (inputSchema)
- 2026-10-15 `scalix_storage_download` changed (inputSchema)
- 2026-10-15 `scalix_storage_upload` changed (inputSchema)
- 2026-10-15 `scalix_storage_list` changed (inputSchema)
- 2026-10-13 `scalix_sandbox_run` changed (description)
  - before: Execute code in an isolated sandbox. Supports Python, JavaScript, TypeScript, and Bash. Returns stdout/stderr.
  - after: 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).

Full history: https://api.protogrid.dev/v1/servers/world.scalix%2Fcloud/changes

## Remotes

- https://api.scalix.world/v1/mcp (streamable-http, auth api_key ${CLOUD_TOKEN}, reachable true, uptime30d 1)

## Packages

_none_

## Tools (53)

- `scalix_ai_infer`: 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.
- `scalix_ai_models`: List the AI models available to the project — virtual tiers and the pass-through catalog model IDs — for use in scalix_ai_infer.
- `scalix_auth_configure`: 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.
- `scalix_build_create`: Create a new container image build from a Git repository or Dockerfile.
- `scalix_build_status`: Get the status and logs of a build.
- `scalix_computer_create`: 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.
- `scalix_computer_delete`: Permanently delete a persistent Linux machine AND its disk. This cannot be undone — use scalix_computer_stop if you may want the files back.
- `scalix_computer_exec`: 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.
- `scalix_computer_list`: List your persistent Linux machines with their status, address and resource shape.
- `scalix_computer_read_file`: Read a text file out of a persistent Linux machine.
- `scalix_computer_set_ssh_keys`: 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.
- `scalix_computer_start`: Start a stopped persistent Linux machine. Same disk, same address.
- `scalix_computer_stop`: 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.
- `scalix_computer_write_file`: Write a text file into a persistent Linux machine. Use this instead of shelling out with cat/echo — no quoting to get wrong.
- `scalix_crew_board_post`: 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.
- `scalix_crew_board_read`: 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.
- `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.
- `scalix_cron_create`: Create a cron schedule to run a function or webhook on a timer.
- `scalix_db_migrate`: Apply a database migration by version number.
- `scalix_db_optimize`: Analyze a SQL query and return optimization suggestions including index recommendations and query rewrites.
- `scalix_db_pii`: List all columns classified as containing personally identifiable information (PII).
- `scalix_db_query`: 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.
- `scalix_db_relationships`: Get the relationship map showing how tables are connected via foreign keys.
- `scalix_db_schema`: Get the full database schema including all tables, columns, types, and relationships.
- `scalix_db_search_columns`: Search for columns by name or type across all tables.
- `scalix_db_table`: Get detailed information about a specific database table including columns, indexes, and foreign keys.
- `scalix_db_text_to_sql`: 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.
- `scalix_domain_add`: Add a custom domain to the project. Returns DNS records to configure.
- `scalix_domain_list`: List all custom domains and their SSL/verification status.
- `scalix_domain_verify`: Verify DNS configuration for a custom domain and provision SSL certificate.
- `scalix_events_publish`: 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.
- `scalix_events_topics`: 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.
- `scalix_fn_deploy`: Deploy a Scalix Function — serverless, per-request billed, running in isolated microVMs — from a container image. Invoke it with scalix_fn_invoke once deployed.
- `scalix_fn_invoke`: Invoke a deployed function with a JSON payload.
- `scalix_fn_list`: List all deployed serverless functions.
- `scalix_kv_get`: 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.
- `scalix_kv_list`: List keys in the key-value store, optionally filtered by prefix.
- `scalix_kv_set`: Set a key-value pair with optional TTL.
- `scalix_project_create`: 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.
- `scalix_project_list`: 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.
- `scalix_run_delete`: 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.
- `scalix_run_deploy`: 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.
- `scalix_run_list`: List all deployed container services in the project.
- `scalix_run_rollback`: 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.
- `scalix_run_scale`: 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.
- `scalix_sandbox_run`: 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).
- `scalix_status`: Get the current health status of the Scalix Cloud platform including all service components.
- `scalix_storage_create_bucket`: 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).
- `scalix_storage_delete_bucket`: Permanently delete a storage bucket and every object in it. Irreversible.
- `scalix_storage_delete_object`: Permanently delete an object (key) from a storage bucket. Irreversible.
- `scalix_storage_download`: Download an object from storage. Returns the content as base64.
- `scalix_storage_list`: List storage buckets, or list objects in a specific bucket with optional prefix filter.
- `scalix_storage_upload`: Upload content to object storage. Provide the content as a base64-encoded string.
