Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,539Letters: 14Defects: 1,323counted just now
teppi

Server definition

Hash
sha256:ebb70017d1cd6bf5b260c9141adb539a1bbe4d15a1f5a1a65e16fc6338810f82
What it is
What a remote MCP server returned when asked what it offers: 51 tools

The blob, as servednamed by its sha256

{ "instructions": null, "tools": [ { "description": "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.", "inputSchema": { "properties": { "max_tokens": { "default": 1024, "description": "Maximum tokens to generate", "type": "integer" }, "model": { "description": "Model ID (from scalix_ai_models — a scalix-auto/* tier or a scalix-gw/<vendor>/<model> catalog id)", "type": "string" }, "prompt": { "description": "User prompt / message", "type": "string" }, "system": { "description": "System message", "type": "string" }, "temperature": { "default": 0.7, "description": "Sampling temperature (0-2)", "type": "number" } }, "required": [ "prompt" ], "type": "object" }, "name": "scalix_ai_infer", "outputSchema": null }, { "description": "List the AI models available to the project — virtual tiers and the pass-through catalog model IDs — for use in scalix_ai_infer.", "inputSchema": { "properties": {}, "type": "object" }, "name": "scalix_ai_models", "outputSchema": null }, { "description": "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.", "inputSchema": { "properties": { "allowed_providers": { "description": "Allowed auth providers (e.g., [\"email\", \"google\", \"github\"])", "items": { "type": "string" }, "type": "array" }, "mfa_enabled": { "description": "Require multi-factor authentication", "type": "boolean" }, "require_email_confirmation": { "description": "Require users to confirm their email before a session is issued", "type": "boolean" } }, "type": "object" }, "name": "scalix_auth_configure", "outputSchema": null }, { "description": "Create a new container image build from a Git repository or Dockerfile.", "inputSchema": { "properties": { "branch": { "default": "main", "description": "Git branch", "type": "string" }, "dockerfile": { "default": "Dockerfile", "description": "Path to Dockerfile in repo", "type": "string" }, "git_url": { "description": "Git repository URL", "type": "string" }, "name": { "description": "Build name", "type": "string" } }, "required": [ "name", "git_url" ], "type": "object" }, "name": "scalix_build_create", "outputSchema": null }, { "description": "Get the status and logs of a build.", "inputSchema": { "properties": { "build_id": { "description": "Build ID to check", "type": "string" } }, "required": [ "build_id" ], "type": "object" }, "name": "scalix_build_status", "outputSchema": null }, { "description": "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.", "inputSchema": { "properties": { "disk_gb": { "description": "Root disk in GB, 5-200 (default 10). Fixed at create — disks do not grow. Ignored if the machine already exists.", "type": "integer" }, "memory_mb": { "description": "Memory in MB, 512-32768 (default 1024). Ignored if the machine already exists.", "type": "integer" }, "name": { "description": "Machine name: lowercase letters, digits and hyphens, max 63 characters. Unique to you.", "type": "string" }, "ssh_keys": { "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.", "items": { "type": "string" }, "type": "array" }, "vcpus": { "description": "vCPUs, 1-16 (default 1). Ignored if the machine already exists.", "type": "integer" } }, "required": [ "name" ], "type": "object" }, "name": "scalix_computer_create", "outputSchema": null }, { "description": "Permanently delete a persistent Linux machine AND its disk. This cannot be undone — use scalix_computer_stop if you may want the files back.", "inputSchema": { "properties": { "id": { "description": "Machine id", "type": "string" } }, "required": [ "id" ], "type": "object" }, "name": "scalix_computer_delete", "outputSchema": null }, { "description": "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.", "inputSchema": { "properties": { "args": { "description": "Arguments, e.g. [\"-lc\", \"npm test\"]", "items": { "type": "string" }, "type": "array" }, "command": { "description": "Program to run, e.g. bash", "type": "string" }, "cwd": { "description": "Working directory inside the machine", "type": "string" }, "env": { "description": "Environment variables for this command only", "type": "object" }, "id": { "description": "Machine id from scalix_computer_create or scalix_computer_list", "type": "string" }, "timeout_ms": { "description": "Give up after this many milliseconds, 1000-600000 (default 120000)", "type": "integer" } }, "required": [ "id", "command" ], "type": "object" }, "name": "scalix_computer_exec", "outputSchema": null }, { "description": "List your persistent Linux machines with their status, address and resource shape.", "inputSchema": { "properties": {}, "type": "object" }, "name": "scalix_computer_list", "outputSchema": null }, { "description": "Read a text file out of a persistent Linux machine.", "inputSchema": { "properties": { "id": { "description": "Machine id", "type": "string" }, "path": { "description": "Absolute path inside the machine", "type": "string" } }, "required": [ "id", "path" ], "type": "object" }, "name": "scalix_computer_read_file", "outputSchema": null }, { "description": "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.", "inputSchema": { "properties": { "id": { "description": "Machine id", "type": "string" }, "ssh_keys": { "description": "The complete list of OpenSSH public keys, max 32. Empty array removes all of them.", "items": { "type": "string" }, "type": "array" } }, "required": [ "id", "ssh_keys" ], "type": "object" }, "name": "scalix_computer_set_ssh_keys", "outputSchema": null }, { "description": "Start a stopped persistent Linux machine. Same disk, same address.", "inputSchema": { "properties": { "id": { "description": "Machine id", "type": "string" } }, "required": [ "id" ], "type": "object" }, "name": "scalix_computer_start", "outputSchema": null }, { "description": "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.", "inputSchema": { "properties": { "id": { "description": "Machine id", "type": "string" } }, "required": [ "id" ], "type": "object" }, "name": "scalix_computer_stop", "outputSchema": null }, { "description": "Write a text file into a persistent Linux machine. Use this instead of shelling out with cat/echo — no quoting to get wrong.", "inputSchema": { "properties": { "content": { "description": "File contents as text", "type": "string" }, "id": { "description": "Machine id", "type": "string" }, "mode": { "description": "Unix mode in decimal, e.g. 493 for 0755. Omit unless the file must be executable.", "type": "integer" }, "path": { "description": "Absolute path inside the machine, e.g. /root/app/main.py", "type": "string" } }, "required": [ "id", "path", "content" ], "type": "object" }, "name": "scalix_computer_write_file", "outputSchema": null }, { "description": "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.", "inputSchema": { "properties": { "author_member_id": { "description": "Your member id, so the note is attributed. Omit when posting as the human.", "type": "string" }, "body": { "description": "The note, max 8000 chars. Write for a teammate who was not watching your work.", "type": "string" }, "crew_id": { "description": "Crew id from scalix_crew_list", "type": "string" }, "owner_member_id": { "description": "Hand off: the member id now responsible for this item.", "type": "string" }, "pinned": { "description": "Keep this in front of everyone indefinitely. Default false; most notes should expire instead.", "type": "boolean" }, "ttl_seconds": { "description": "Seconds until the note expires, 60 to 7776000 (90 days). Omit for no expiry — usually only right for pins.", "type": "integer" } }, "required": [ "crew_id", "body" ], "type": "object" }, "name": "scalix_crew_board_post", "outputSchema": null }, { "description": "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.", "inputSchema": { "properties": { "crew_id": { "description": "Crew id from scalix_crew_list", "type": "string" } }, "required": [ "crew_id" ], "type": "object" }, "name": "scalix_crew_board_read", "outputSchema": null }, { "description": "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.", "inputSchema": { "properties": {}, "type": "object" }, "name": "scalix_crew_list", "outputSchema": null }, { "description": "Create a cron schedule to run a function or webhook on a timer.", "inputSchema": { "properties": { "action_type": { "description": "Type of action to trigger", "enum": [ "function", "webhook" ], "type": "string" }, "config": { "description": "Action configuration (function_id or webhook URL)", "type": "object" }, "expression": { "description": "Cron expression (e.g., '*/5 * * * *')", "type": "string" }, "name": { "description": "Schedule name", "type": "string" } }, "required": [ "name", "expression", "action_type" ], "type": "object" }, "name": "scalix_cron_create", "outputSchema": null }, { "description": "Apply a database migration by version number.", "inputSchema": { "properties": { "tenant_id": { "description": "Tenant ID", "type": "string" }, "version": { "description": "Migration version to apply", "type": "string" } }, "required": [ "tenant_id", "version" ], "type": "object" }, "name": "scalix_db_migrate", "outputSchema": null }, { "description": "Analyze a SQL query and return optimization suggestions including index recommendations and query rewrites.", "inputSchema": { "properties": { "sql": { "description": "SQL query to analyze and optimize", "type": "string" } }, "required": [ "sql" ], "type": "object" }, "name": "scalix_db_optimize", "outputSchema": null }, { "description": "List all columns classified as containing personally identifiable information (PII).", "inputSchema": { "properties": {}, "type": "object" }, "name": "scalix_db_pii", "outputSchema": null }, { "description": "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.", "inputSchema": { "properties": { "confirm_token": { "description": "Confirmation token from a prior CONFIRMATION_REQUIRED response; required to execute destructive SQL (single-use, short TTL)", "type": "string" }, "params": { "description": "Bind parameters for the query", "items": {}, "type": "array" }, "sql": { "description": "SQL query to execute", "type": "string" } }, "required": [ "sql" ], "type": "object" }, "name": "scalix_db_query", "outputSchema": null }, { "description": "Get the relationship map showing how tables are connected via foreign keys.", "inputSchema": { "properties": {}, "type": "object" }, "name": "scalix_db_relationships", "outputSchema": null }, { "description": "Get the full database schema including all tables, columns, types, and relationships.", "inputSchema": { "properties": {}, "type": "object" }, "name": "scalix_db_schema", "outputSchema": null }, { "description": "Search for columns by name or type across all tables.", "inputSchema": { "properties": { "query": { "description": "Search term to match column names or types", "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "scalix_db_search_columns", "outputSchema": null }, { "description": "Get detailed information about a specific database table including columns, indexes, and foreign keys.", "inputSchema": { "properties": { "table": { "description": "Table name to inspect", "type": "string" } }, "required": [ "table" ], "type": "object" }, "name": "scalix_db_table", "outputSchema": null }, { "description": "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.", "inputSchema": { "properties": { "question": { "description": "The question to answer from the database, in plain language (e.g. 'how many orders shipped last week?')", "type": "string" } }, "required": [ "question" ], "type": "object" }, "name": "scalix_db_text_to_sql", "outputSchema": null }, { "description": "Add a custom domain to the project. Returns DNS records to configure.", "inputSchema": { "properties": { "domain": { "description": "Domain name to add (e.g., api.example.com)", "type": "string" } }, "required": [ "domain" ], "type": "object" }, "name": "scalix_domain_add", "outputSchema": null }, { "description": "List all custom domains and their SSL/verification status.", "inputSchema": { "properties": {}, "type": "object" }, "name": "scalix_domain_list", "outputSchema": null }, { "description": "Verify DNS configuration for a custom domain and provision SSL certificate.", "inputSchema": { "properties": { "domain": { "description": "Domain to verify", "type": "string" } }, "required": [ "domain" ], "type": "object" }, "name": "scalix_domain_verify", "outputSchema": null }, { "description": "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.", "inputSchema": { "properties": { "data": { "description": "Event payload (JSON)", "type": "object" }, "event_type": { "description": "Event type/name, e.g. 'user.created'", "type": "string" }, "topic_id": { "description": "Topic ID to publish to", "type": "string" } }, "required": [ "topic_id", "event_type", "data" ], "type": "object" }, "name": "scalix_events_publish", "outputSchema": null }, { "description": "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.", "inputSchema": { "properties": {}, "type": "object" }, "name": "scalix_events_topics", "outputSchema": null }, { "description": "Deploy a Scalix Function — serverless, per-request billed, running in isolated microVMs — from a container image. Invoke it with scalix_fn_invoke once deployed.", "inputSchema": { "properties": { "image": { "description": "Container image reference", "type": "string" }, "name": { "description": "Function name", "type": "string" }, "runtime": { "description": "Runtime — `node` or `python` (exactly what the functions orchestrator accepts)", "type": "string" } }, "required": [ "name", "image" ], "type": "object" }, "name": "scalix_fn_deploy", "outputSchema": null }, { "description": "Invoke a deployed function with a JSON payload.", "inputSchema": { "properties": { "data": { "description": "JSON payload to pass to the function", "type": "object" }, "function_id": { "description": "Function ID to invoke", "type": "string" } }, "required": [ "function_id" ], "type": "object" }, "name": "scalix_fn_invoke", "outputSchema": null }, { "description": "List all deployed serverless functions.", "inputSchema": { "properties": {}, "type": "object" }, "name": "scalix_fn_list", "outputSchema": null }, { "description": "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.", "inputSchema": { "properties": { "key": { "description": "Exact key to look up (case-sensitive)", "type": "string" } }, "required": [ "key" ], "type": "object" }, "name": "scalix_kv_get", "outputSchema": null }, { "description": "List keys in the key-value store, optionally filtered by prefix.", "inputSchema": { "properties": { "prefix": { "description": "Filter keys by prefix", "type": "string" } }, "type": "object" }, "name": "scalix_kv_list", "outputSchema": null }, { "description": "Set a key-value pair with optional TTL.", "inputSchema": { "properties": { "key": { "description": "Key to set", "type": "string" }, "ttl": { "description": "Time-to-live in seconds (0 = no expiry)", "type": "integer" }, "value": { "description": "Value to store", "type": "string" } }, "required": [ "key", "value" ], "type": "object" }, "name": "scalix_kv_set", "outputSchema": null }, { "description": "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.", "inputSchema": { "properties": { "name": { "description": "Project display name", "type": "string" }, "org_id": { "description": "Organization ID", "type": "string" }, "slug": { "description": "URL-safe project slug", "type": "string" } }, "required": [ "org_id", "name", "slug" ], "type": "object" }, "name": "scalix_project_create", "outputSchema": null }, { "description": "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.", "inputSchema": { "properties": { "org_id": { "description": "Organization ID whose projects to list", "type": "string" } }, "required": [ "org_id" ], "type": "object" }, "name": "scalix_project_list", "outputSchema": null }, { "description": "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.", "inputSchema": { "properties": { "id": { "description": "Service ID (from scalix_run_list)", "type": "string" } }, "required": [ "id" ], "type": "object" }, "name": "scalix_run_delete", "outputSchema": null }, { "description": "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.", "inputSchema": { "properties": { "env": { "description": "Environment variables as key-value pairs", "type": "object" }, "image": { "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.", "type": "string" }, "max_instances": { "default": 10, "description": "Maximum instances", "type": "integer" }, "min_instances": { "default": 0, "description": "Minimum instances (0 = scale to zero)", "type": "integer" }, "name": { "description": "Service name", "type": "string" }, "port": { "default": 8080, "description": "Port the container listens on", "type": "integer" } }, "required": [ "name", "image" ], "type": "object" }, "name": "scalix_run_deploy", "outputSchema": null }, { "description": "List all deployed container services in the project.", "inputSchema": { "properties": {}, "type": "object" }, "name": "scalix_run_list", "outputSchema": null }, { "description": "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.", "inputSchema": { "properties": { "id": { "description": "Service ID (from scalix_run_list)", "type": "string" }, "revision": { "description": "Revision number to roll back to; omit for the immediately previous revision", "type": "integer" } }, "required": [ "id" ], "type": "object" }, "name": "scalix_run_rollback", "outputSchema": null }, { "description": "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.", "inputSchema": { "properties": { "id": { "description": "Service ID (from scalix_run_list)", "type": "string" }, "max_instances": { "description": "New maximum instance count the service may scale up to", "type": "integer" }, "min_instances": { "description": "New minimum instance count (0 = scale-to-zero when idle)", "type": "integer" } }, "required": [ "id" ], "type": "object" }, "name": "scalix_run_scale", "outputSchema": null }, { "description": "Execute code in an isolated sandbox. Supports Python, JavaScript, TypeScript, and Bash. Returns stdout/stderr.", "inputSchema": { "properties": { "code": { "description": "Source code to execute", "type": "string" }, "files": { "description": "Additional files (filename -> content)", "type": "object" }, "language": { "description": "Programming language", "enum": [ "python", "javascript", "typescript", "bash" ], "type": "string" }, "packages": { "description": "Packages to install (pip/npm)", "items": { "type": "string" }, "type": "array" }, "timeout_seconds": { "description": "Max execution time in seconds (default: 30)", "type": "integer" } }, "required": [ "language", "code" ], "type": "object" }, "name": "scalix_sandbox_run", "outputSchema": null }, { "description": "Get the current health status of the Scalix Cloud platform including all service components.", "inputSchema": { "properties": {}, "type": "object" }, "name": "scalix_status", "outputSchema": null }, { "description": "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.", "inputSchema": { "properties": { "name": { "description": "Bucket name, unique within the project", "type": "string" }, "public": { "default": false, "description": "true = all objects publicly readable without auth; false (default) = private, share via presigned URLs", "type": "boolean" } }, "required": [ "name" ], "type": "object" }, "name": "scalix_storage_create_bucket", "outputSchema": null }, { "description": "Download an object from storage. Returns the content as base64.", "inputSchema": { "properties": { "bucket": { "description": "Bucket name", "type": "string" }, "key": { "description": "Object key (path)", "type": "string" } }, "required": [ "bucket", "key" ], "type": "object" }, "name": "scalix_storage_download", "outputSchema": null }, { "description": "List storage buckets, or list objects in a specific bucket with optional prefix filter.", "inputSchema": { "properties": { "bucket": { "description": "Bucket name. If omitted, lists all buckets.", "type": "string" }, "prefix": { "description": "Filter objects by key prefix", "type": "string" } }, "type": "object" }, "name": "scalix_storage_list", "outputSchema": null }, { "description": "Upload content to object storage. Provide the content as a base64-encoded string.", "inputSchema": { "properties": { "bucket": { "description": "Target bucket name", "type": "string" }, "content": { "description": "Base64-encoded file content", "type": "string" }, "content_type": { "default": "application/octet-stream", "description": "MIME type", "type": "string" }, "key": { "description": "Object key (path)", "type": "string" } }, "required": [ "bucket", "key", "content" ], "type": "object" }, "name": "scalix_storage_upload", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:ebb70017d1cd6bf5b260c9141adb539a1bbe4d15a1f5a1a65e16fc6338810f82 | sha256sum