@sota-io/mcp

MCP serverDatabases & data

EU-native PaaS for AI agents, deploy web apps with one sentence, managed Postgres, GDPR by default.

Available today. Use it from your connected AI after setup.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Then ask your AI: use @sota-io/mcp to create account

Install @sota-io/mcp

The server’s own address, for the clients that take one directly. Or connect ahel onceand every client you use reads it from one address, with the account kept on ahel rather than in each client’s config.

  • Claude Code

    claude mcp add --transport http --scope user sota-io-mcp 'https://mcp.sota.io/mcp'

    Run it once in your project, then open /mcp to approve any sign-in the server asks for.

  • Claude Desktop

    https://mcp.sota.io/mcp

    Add a custom connector in Settings, paste this address, and approve the sign-in.

  • Cursor

    cursor://anysphere.cursor-deeplink/mcp/install?name=sota-io-mcp&config=eyJ1cmwiOiJodHRwczovL21jcC5zb3RhLmlvL21jcCJ9

    Open the link and Cursor adds the server at that address.

  • ChatGPT

    https://mcp.sota.io/mcp

    In Settings, enable Developer mode, create an MCP app, and paste this address. Your plan and workspace must allow custom apps.

  • Codex

    codex mcp add sota-io-mcp --url 'https://mcp.sota.io/mcp'

    Run it once, then sign in with codex mcp login sota-io-mcp if the server asks for an account.

From the project's README

As published by sota-deploy/mcp-server in README.md.

MCP server for sota.io — deploy web apps via AI agents.

Two transports

Since v1.4.0 this package ships two transports:

  • sota-mcp (stdio, default) — for Claude Code, Cursor, Windsurf, and any MCP client that spawns a local process. Pass your SOTA_API_KEY via env var.
  • sota-mcp-http (Streamable HTTP) — for self-hosting the remote endpoint that powers mcp.sota.io (used by Claude Desktop and Claude.ai web). Reads SUPABASE_JWT_SECRET, DATABASE_URL, etc. — most users do not need this; it's the same code that runs on mcp.sota.io if you want to host your own.

Most users want the stdio transport.

One-click install for Claude Desktop / Claude.ai web

If you use Claude Desktop or Claude.ai (Pro / Max / Team / Enterprise plan), the easiest install is not this npm package — it's the hosted remote endpoint at mcp.sota.io. Click here:

Add to Claude →

OAuth handles auth. New users can sign up entirely inside Claude via the create_account tool — no browser tab switch.

See https://sota.io/docs/integrations/claude.

Quick Start (stdio — Claude Code, Cursor, Windsurf, …)

  1. Get an API key from sota.io/dashboard/settings
  2. Configure your IDE
  3. Ask your AI: "Deploy my app to sota.io"

Installation

No install needed — run directly with npx:

npx -y @sota-io/mcp

Or install globally:

npm install -g @sota-io/mcp
sota-mcp

Configuration

Claude Code

CLI method:

claude mcp add sota -- npx -y @sota-io/mcp

Then set your API key in the shell environment:

export SOTA_API_KEY=sota_your_api_key_here

Manual JSON (.claude/settings.json):

{
  "mcpServers": {
    "sota": {
      "command": "npx",
      "args": ["-y", "@sota-io/mcp"],
      "env": {
        "SOTA_API_KEY": "sota_your_api_key_here"
      }
    }
  }
}

Claude Desktop

Edit claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "sota": {
      "command": "npx",
      "args": ["-y", "@sota-io/mcp"],
      "env": {
        "SOTA_API_KEY": "sota_your_api_key_here"
      }
    }
  }
}

Cursor

Create .cursor/mcp.json in your project root:

{
  "mcpServers": {
    "sota": {
      "command": "npx",
      "args": ["-y", "@sota-io/mcp"],
      "env": {
        "SOTA_API_KEY": "sota_your_api_key_here"
      }
    }
  }
}

Windsurf

Edit ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "sota": {
      "command": "npx",
      "args": ["-y", "@sota-io/mcp"],
      "env": {
        "SOTA_API_KEY": "sota_your_api_key_here"
      }
    }
  }
}

Tools

ToolDescriptionParameters
deployDeploy an appproject_id, directory?
get-logsGet build/runtime logsproject_id, deployment_id?
set-envSet environment variableproject_id, key, value
get-envList environment variablesproject_id
rollbackRollback to previous deploymentproject_id
get-statusGet deployment statusproject_id
list-projectsList all projects(none)
create-projectCreate a new projectname
delete-projectDelete a project permanentlyproject_id
add-domainAdd custom domain to projectproject_id, domain
list-domainsList custom domainsproject_id
get-domainGet domain details and DNS statusproject_id, domain_id
remove-domainRemove custom domainproject_id, domain_id

deploy

Deploy an application to sota.io. Creates a tar.gz archive of the specified directory and uploads it.

ParameterTypeRequiredDescription
project_idstringYesProject ID to deploy to
directorystringNoDirectory to deploy (defaults to current working directory)
"Deploy my app in the current directory to sota.io"

get-logs

Get build and runtime logs for a deployment. If no deployment_id is provided, returns logs for the latest deployment.

ParameterTypeRequiredDescription
project_idstringYesProject ID to get logs for
deployment_idstringNoSpecific deployment ID (defaults to latest)
"Show me the build logs for my sota.io project"

set-env

Set an environment variable for a project.

ParameterTypeRequiredDescription
project_idstringYesProject ID
keystringYesEnvironment variable name (e.g., DATABASE_URL)
valuestringYesEnvironment variable value
"Set DATABASE_URL on my project to postgres://localhost/mydb"

get-env

List environment variables for a project.

ParameterTypeRequiredDescription
project_idstringYesProject ID
"Show all environment variables for my project"

rollback

Rollback a project to its previous deployment. This swaps the container image without rebuilding.

ParameterTypeRequiredDescription
project_idstringYesProject ID to rollback
"Roll back my app to the previous version"

get-status

Get the current deployment status for a project, including URL and recent deployment history.

ParameterTypeRequiredDescription
project_idstringYesProject ID to check status for
"What's the status of my sota.io deployment?"

list-projects

List all projects on your sota.io account.

No parameters required.

"List my sota.io projects"

create-project

Create a new project on sota.io. The project slug is auto-generated from the name (lowercase, hyphens, max 63 chars) and used as the subdomain ({slug}.sota.io). For example, "My API" becomes my-api.sota.io.

ParameterTypeRequiredDescription
namestringYesName for the new project
"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.

ParameterTypeRequiredDescription
project_idstringYesProject ID to delete
"Delete my sota.io project abc123"

add-domain

Add a custom domain to a project. Returns DNS instructions for pointing the domain.

ParameterTypeRequiredDescription
project_idstringYesProject ID
domainstringYesDomain name (e.g., "example.com" or "app.example.com")
"Add example.com as a custom domain to my project"

list-domains

List all custom domains for a project.

ParameterTypeRequiredDescription
project_idstringYesProject ID
"Show all custom domains for my project"

get-domain

Get domain details including DNS verification status and SSL state.

ParameterTypeRequiredDescription
project_idstringYesProject ID
domain_idstringYesDomain ID
"Check the DNS status of my custom domain"

remove-domain

Remove a custom domain from a project.

ParameterTypeRequiredDescription
project_idstringYesProject ID
domain_idstringYesDomain ID to remove
"Remove the custom domain from my project"

Environment Variables

VariableRequiredDefaultDescription
SOTA_API_KEYYes—API key with sota_ prefix. Create at sota.io/dashboard/settings
SOTA_API_URLNohttps://api.sota.ioAPI base URL

Troubleshooting

"npx: command not found"

Problem: Your IDE doesn't inherit the shell PATH where nvm/fnm is loaded.

Fix: Use the absolute path to npx. Find it with:

which npx
# Example output: /Users/you/.nvm/versions/node/v22.0.0/bin/npx

Then update your MCP config to use the absolute path:

{
  "mcpServers": {
    "sota": {
      "command": "/Users/you/.nvm/versions/node/v22.0.0/bin/npx",
      "args": ["-y", "@sota-io/mcp"],
      "env": {
        "SOTA_API_KEY": "sota_your_api_key_here"
      }
    }
  }
}

"SOTA_API_KEY environment variable is required"

Problem: The API key is not set in your MCP configuration.

Fix: Add the env block to your MCP server config. Shell environment variables do not automatically pass to MCP servers — the env block in the config is required:

{
  "env": {
    "SOTA_API_KEY": "sota_your_api_key_here"
  }
}

Connection refused or timeout errors

Problem: Network issue or wrong API URL.

Fix: Check your internet connection. If you're using a custom API URL, verify SOTA_API_URL is set correctly. The default is https://api.sota.io.

License

MIT

Links

Tools it offers (14)

What this server listed when ahel dialed its public endpoint in Sep 2026, with no key and no account of yours. The names are the server’s own.

  • create_account
  • list-projects
  • create-project
  • delete-project
  • deploy
  • get-logs
  • set-env
  • get-env
  • rollback
  • get-status
  • add-domain
  • list-domains
  • get-domain
  • remove-domain

Signals

Last commit
May 2026
Advanced
Delivery
mcp MCP server → your ahel connector (mcp.ahel.ai) → your AI.
Item type
mcp-server
Key
io-sota-mcp
Source
github.com/sota-deploy/mcp-server
Hosted endpoint
https://mcp.sota.io/mcp