MCP Tools
The @sota-io/mcp (source) server exposes 13 tools for deploying and managing web applications. AI agents invoke these tools automatically based on natural language prompts.
Overview
| Tool | Description | Parameters |
|---|---|---|
deploy | Deploy an app from a directory | project_id, directory? |
get-logs | Get build/runtime logs | project_id, deployment_id? |
set-env | Set environment variable | project_id, key, value |
get-env | List environment variables | project_id |
rollback | Rollback to previous deployment | project_id |
get-status | Get deployment status and history | project_id |
list-projects | List all projects | (none) |
create-project | Create a new project | name |
delete-project | Delete a project permanently | project_id |
add-domain | Add a custom domain with DNS instructions | project_id, domain |
list-domains | List all custom domains | project_id |
get-domain | Get domain details with DNS instructions | project_id, domain_id |
remove-domain | Remove a custom domain | project_id, domain_id |
deploy
Deploy an application to sota.io. Creates a tar.gz archive of the specified directory and uploads it. Excludes .git, node_modules, .env, and .DS_Store automatically.
| Parameter | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | Project ID to deploy to |
directory | string | No | Directory to deploy (defaults to current working directory) |
Example prompt: "Deploy my app in the current directory to sota.io"
Returns the deployment ID, status, and live URL.
get-logs
Get build and runtime logs for a deployment. If no deployment_id is provided, returns logs for the latest deployment.
| Parameter | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | Project ID to get logs for |
deployment_id | string | No | Specific deployment ID (defaults to latest) |
Example prompt: "Show me the build logs for my last sota.io deployment"
set-env
Set an environment variable for a project. The variable is encrypted at rest and injected into the container on next deployment.
| Parameter | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | Project ID |
key | string | Yes | Environment variable name (e.g., DATABASE_URL) |
value | string | Yes | Environment variable value |
Example prompt: "Set DATABASE_URL on my project to postgres://localhost/mydb"
get-env
List all environment variables for a project.
| Parameter | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | Project ID |
Example prompt: "Show all environment variables for my project"
rollback
Rollback a project to its previous deployment. This swaps the container image without rebuilding — instant rollback.
| Parameter | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | Project ID to rollback |
Example prompt: "Roll back my app to the previous version"
get-status
Get the current deployment status for a project, including the live URL and recent deployment history.
| Parameter | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | Project ID to check status for |
Example prompt: "What's the status of my sota.io deployment?"
Returns current deployment info (ID, status, URL, framework) and up to 4 recent deployments.
list-projects
List all projects on your sota.io account.
No parameters required.
Example prompt: "List my sota.io projects"
Returns project names, slugs, and IDs.
create-project
Create a new project on sota.io. The project slug is auto-generated from the name and used as the subdomain ({slug}.sota.io).
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Name for the new project |
Example prompt: "Create a new sota.io project called my-api"
delete-project
Delete a project and all its deployments from sota.io. This action is permanent and cannot be undone.
| Parameter | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | Project ID to delete |
Example prompt: "Delete my sota.io project abc123"
add-domain
Add a custom domain to a project. Returns DNS instructions for configuring at your registrar. Supports apex domains (A record to 23.88.45.28) and subdomains (CNAME to {slug}.sota.io). SSL is automatically provisioned via Let's Encrypt after DNS verification.
| Parameter | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | Project ID to add the domain to |
domain | string | Yes | Domain name (e.g., app.example.com or example.com) |
Example prompt: "Add app.example.com as a custom domain to my sota.io project"
Returns the domain info (ID, status) and DNS setup instructions (record type, name, value).
list-domains
List all custom domains for a project with their statuses (pending, verified, active).
| Parameter | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | Project ID to list domains for |
Example prompt: "Show all custom domains on my sota.io project"
Returns domain names, statuses, and IDs. Use get-domain with a domain ID for full details.
get-domain
Get details of a custom domain including its current status and DNS setup instructions. Domain statuses: pending (DNS not yet configured), verified (DNS confirmed, SSL provisioning), active (live with HTTPS).
| Parameter | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | Project ID |
domain_id | string | Yes | Domain ID (use list-domains to find the ID) |
Example prompt: "Check the status of my custom domain on sota.io"
remove-domain
Remove a custom domain from a project. This removes the domain mapping and its SSL certificate. DNS records at your registrar are not automatically removed -- clean those up manually. This action is immediate and irreversible.
| Parameter | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | Project ID |
domain_id | string | Yes | Domain ID (use list-domains to find the ID) |
Example prompt: "Remove the custom domain from my project"
Return Values
All tools return text content with structured information. On success, you get the relevant data (deployment ID, project info, logs, etc.). On failure, tools return a descriptive error message.
Error Handling
Common errors and their causes:
| Error | Cause | Fix |
|---|---|---|
SOTA_API_KEY environment variable is required | API key not configured | Add env block to MCP config |
Project not found | Invalid project ID | Use list-projects to find correct ID |
Unauthorized | Invalid or expired API key | Create a new key at Dashboard Settings |
See Also
- MCP Setup — installation and IDE configuration
- Example Workflows — real-world usage patterns
- Source Code — open source on GitHub