Skip to content

MCP Tools API Reference

Shuttle exposes 5 MCP tools that AI assistants call automatically. This page documents every tool's parameters, return format, and usage examples.

ssh_run

Run a shell command on a remote SSH node. Sessions are managed automatically: working directory is preserved across calls to the same node. 4-level security checks are applied before execution.

Parameter Type Required Default Description
command string yes — Shell command to execute
node string no — Node name (auto-selected if only one node exists)
timeout float no 30.0 Command timeout in seconds
confirm_token string no — Token to confirm a CONFIRM-level command
bypass_scope string no — Bypass scope for session commands

Returns: Command output (stdout), or an error/security message.

Session management: Sessions are implicit. The first call to a node auto-creates a session; subsequent calls reuse it, preserving the working directory.

Security flow:

  1. Command is evaluated against security rules
  2. block → rejected immediately
  3. confirm → returns a token; re-call with confirm_token to proceed
  4. warn → executes with warning logged
  5. allow → executes normally

Example:

AI → ssh_run(node="gpu-server", command="nvidia-smi")
AI ← "Fri Mar 21 17:07:21 2026\n+---------------------+\n| NVIDIA-SMI 580.105 ..."

AI → ssh_run(node="gpu-server", command="cd /workspace && pwd")
AI ← "/workspace"   # working directory preserved for next call

ssh_list_nodes

List all configured SSH nodes with their connection status.

Parameter Type Required Description
(none) — — —

Returns: One line per node with status icon, name, host, port, and username.

[OK] gpu-server  (10.0.0.1:22, user=root)
[OK] staging     (staging.example.com:22, user=deploy)
[--] dev-box     (192.168.1.10:22, user=dev)

Status icons: [OK] = active, [--] = inactive, [!!] = error.


ssh_upload

Upload a file to a remote node via SFTP.

Parameter Type Required Description
node string yes Node name
local_path string yes Local file path
remote_path string yes Remote destination path

Returns: Confirmation or error message.

Uploaded /tmp/model.pt -> gpu-server:/workspace/model.pt

ssh_download

Download a file from a remote node via SFTP.

Parameter Type Required Description
node string yes Node name
remote_path string yes Remote file path
local_path string yes Local destination path

Returns: Confirmation or error message.


ssh_add_node

Add a new SSH node to the Shuttle configuration. The node is registered in the database and connection pool.

Parameter Type Required Default Description
name string yes — Unique node name
host string yes — Hostname or IP
port int no 22 SSH port
username string no "" SSH username
password string no — Password auth (or use private_key)
private_key string no — Private key content
jump_host string no — Name of an existing node to use as jump host
tags list[string] no — Tags for categorization

Either password or private_key must be provided. Credentials are encrypted at rest.

Returns: Confirmation with node ID.