The InstaPods MCP server exposes 12 tools that AI assistants can call. These cover pod management, file operations, command execution, and logs.
Pod Management
list_pods
List all pods for the authenticated team.
Parameters: None
Returns: Array of pod objects with name, status, preset, plan, region, URL, and resource details.
Example prompt: “Show me all my pods”
get_pod
Get details of a specific pod by name.
| Name | Type | Required | Description |
|---|
name | string | Yes | Pod name |
Returns: Full pod object including status, IP, domain, preset, plan, SSH info, and resource allocation.
Example prompt: “What’s the status of my-api?“
create_pod
Create a new pod. Billing checks (payment method, subscription) are enforced automatically.
| Name | Type | Required | Description |
|---|
name | string | Yes | Pod name (DNS-safe, lowercase, max 63 chars) |
preset | string | Yes | static, php, nodejs, or python |
plan | string | No | Plan slug (default: launch). Options: launch, build, grow, scale, turbo |
region | string | No | Region slug (auto-selected if omitted) |
Returns: Created pod object.
Example prompt: “Create a Python pod called data-api on the build plan”
manage_pod
Start, stop, restart, reload, or delete a pod.
| Name | Type | Required | Description |
|---|
name | string | Yes | Pod name |
action | string | Yes | start, stop, restart, reload, or delete |
Returns: Updated pod object, reload status with health check, or deletion confirmation.
The reload action is the most powerful — it:
- Auto-starts the pod if stopped
- Installs dependencies (
npm install, pip install, composer install)
- Detects entry points and frameworks (gunicorn, Express, Laravel)
- Restarts application services
- Runs a health check and returns service status
Example prompts: “Restart my-api” · “Reload my-app after I changed the code” · “Delete test-pod”
File Operations
list_files
List files in a directory inside a pod.
| Name | Type | Required | Description |
|---|
name | string | Yes | Pod name |
path | string | No | Directory path (default: ~/app). Must be within /home/instapod, /var/www, or /tmp. |
Returns: Array of file entries with name, permissions, size, and is_dir flag.
Example prompt: “Show me the files in my-api”
read_file
Read the contents of a file inside a pod.
| Name | Type | Required | Description |
|---|
name | string | Yes | Pod name |
path | string | Yes | Absolute file path |
Returns: File content as text.
Example prompt: “Show me the package.json in my-api” or “Read /home/instapod/app/index.js”
write_file
Write content to a file inside a pod. Creates the file and parent directories if they don’t exist.
| Name | Type | Required | Description |
|---|
name | string | Yes | Pod name |
path | string | Yes | Absolute file path |
content | string | Yes | File content to write |
Returns: Confirmation with saved path.
Example prompt: “Create an index.js in my-api that serves a hello world Express app”
Files are written as the instapod user. Paths must be within /home/instapod, /var/www, or /tmp.
Command Execution
exec_command
Run a shell command inside a pod. Runs as the instapod user (same as SSH access).
| Name | Type | Required | Description |
|---|
name | string | Yes | Pod name |
command | string | Yes | Shell command to execute |
Returns: Command output, exit code, and any error.
Example prompt: “Run ls -la ~/app in my-api” or “Install express in my-api with npm”
This tool executes arbitrary shell commands inside your pod. The AI assistant will typically ask for confirmation before running destructive commands.
Logs
get_logs
Get application logs from a pod via journalctl.
| Name | Type | Required | Description |
|---|
name | string | Yes | Pod name |
lines | string | No | Number of log lines (default: 100) |
service | string | No | Filter by service name (e.g., app, nginx) |
Returns: Log output as text.
Example prompt: “Show me the logs for my-api” or “Get the last 50 nginx logs from my-app”
Catalog
list_presets
List available pod presets.
Parameters: None
| Preset | Stack |
|---|
static | Nginx |
php | PHP 8.3 + Nginx |
nodejs | Node.js 20 |
python | Python 3.12 |
Example prompt: “What presets are available?“
list_plans
List available pricing plans.
Parameters: None
Returns: Array of plans with slug, name, CPU, memory, storage, and price.
Example prompt: “What plans do you have?“
list_regions
List available deployment regions.
Parameters: None
Returns: Array of regions with slug and server count.
Example prompt: “What regions can I deploy to?”