_ registry / mcp http-sse · checked 1h ago

sota

https://mcp.sota.io

Registry code: 106d454b4940c396

api record

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

from a public catalogue that lists it, not from the operator

endpoint
https://mcp.sota.io/mcp
protocol
http-sse ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is sota live?
Yes — it answered the hub's last check (checked 1h ago). It answered 99% of checks over the last 30 days.
Is sota free to use?
Not anonymously — it asks for a key or a login before it will serve. Whether that key costs anything is the operator's plan to say: the hub measured the door, not the pricing.
What tools does sota have?
14 tools: create-project, create_account, delete-project, remove-domain, list-domains, deploy, set-env, rollback, ….
Is sota safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
99.3%

90 days 99.5%· all time 99.5%

latency
149ms

last good check

priced tools
0

of 14 tools

_ answered our checks, 90 days 422 checks · signed record
  • degraded → live
  • live → degraded· timeout after 20000ms
  • degraded → live
  • live → degraded· timeout after 20000ms
  • degraded → live
_ what it is for
used for
  • deploy a web app
  • create a project with postgres
  • add a custom domain
  • read deployment logs
  • roll back a deployment
takes → gives
code, text → data, web pages
tools
6 reads8 changes data
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

_ what it can do 14 tools
14 auth-required 14 of 14 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • create-project changes data auth-required never probed

    Create a new project on sota.io. Each project automatically provisions: (1) a managed PostgreSQL 17 database accessible via the DATABASE_URL environment variable (auto-injected, no configuration needed), (2) PgBouncer connection pooling (pool size 20, max 100 clients), (3) automatic daily database backups with 7-day retention, (4) a live URL at https://{slug}.sota.io with automatic HTTPS via Let's Encrypt. The project slug is auto-generated from the name (lowercase, hyphens, max 63 chars) and is immutable after creation. Supported frameworks: Next.js, Node.js (Express/Fastify/Koa), Python (Flask/FastAPI/Django), or any language via custom Dockerfile. You can also add up to 5 custom domains per project with automatic HTTPS (via API: POST /v1/projects/:id/domains with {domain: "yourdomain.com"}). DNS: A record to 23.88.45.28 for apex domains, CNAME to {slug}.sota.io for subdomains. Optionally associate the project with a public git repository at create-time by passing `git_url` (and optional `git_branch`). The association is informational — it shows up in the dashboard and the `sota deploy --git` CLI flag can default to it — but does NOT enable auto-deploy-on-push yet.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "Name for the new project. A URL slug will be auto-generated (e.g. \"My Cool App\" becomes my-cool-app.sota.io)"
        },
        "git_url": {
          "type": "string",
          "description": "Optional git repository URL to associate with this project (https://, git://, ssh://, or git@host:path). Informational only — does not trigger an automatic deploy."
        },
        "git_branch": {
          "type": "string",
          "description": "Optional branch name (defaults to the repository default branch when omitted). Only meaningful when `git_url` is also set."
        }
      },
      "additionalProperties": false
    }
    arguments 22 lines
  • create_account changes data auth-required never probed

    Sign up for a brand-new sota.io account from inside Claude — no browser, no copy-paste. Two-step flow: STEP 1: Call with just `email`. We send a 6-digit confirmation code to that email. STEP 2: Call again with `email` + `code`. We verify, create the account on the Free tier (3 projects, EU-hosted, no credit card), generate a sota.io API key, and return it to you. After Step 2 you'll get back a key like `sota_…`. **Save it in a safe place** — you'll need it for any subsequent sota.io tool call in Claude (or you can use it with the sota CLI). It is shown ONCE and never recoverable. sota.io is an EU-native PaaS hosted in Germany — GDPR-compliant by default, no CLOUD Act exposure. Disposable / throwaway email addresses are not accepted; use a real address.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "email"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "The 6-digit code from the confirmation email. Provide on the second call to complete signup. Omit on the first call."
        },
        "email": {
          "type": "string",
          "format": "email",
          "description": "A real email address. We send the confirmation code here. Throwaway / disposable email services are blocked."
        }
      },
      "additionalProperties": false
    }
    arguments 19 lines
  • delete-project changes data auth-required never probed

    Delete a project and all its deployments from sota.io. This action is PERMANENT and irreversible. It removes the project, all deployments, the managed PostgreSQL database, environment variables, and webhooks. The project slug will become available again after deletion.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "project_id"
      ],
      "properties": {
        "project_id": {
          "type": "string",
          "description": "Project ID (UUID) to delete. Use list-projects to find the ID"
        }
      },
      "additionalProperties": false
    }
    arguments 14 lines
  • remove-domain changes data auth-required never probed

    Remove a custom domain from a sota.io project. This removes the domain mapping and its SSL certificate. The DNS records at your registrar are NOT automatically removed — clean those up manually. This action is immediate and irreversible.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "project_id",
        "domain_id"
      ],
      "properties": {
        "domain_id": {
          "type": "string",
          "description": "Domain ID (UUID). Use list-domains to find the ID"
        },
        "project_id": {
          "type": "string",
          "description": "Project ID (UUID). Use list-projects to find the ID"
        }
      },
      "additionalProperties": false
    }
    arguments 19 lines
  • list-domains reads auth-required 1h ago

    List all custom domains for a sota.io project. Shows domain name, status (pending/verified/active), and ID for each domain. Use get-domain with a domain ID to see DNS instructions and full details.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "project_id"
      ],
      "properties": {
        "project_id": {
          "type": "string",
          "description": "Project ID (UUID) to list domains for. Use list-projects to find the ID"
        }
      },
      "additionalProperties": false
    }
    arguments 14 lines
  • deploy changes data auth-required never probed

    Deploy an application to sota.io. The platform auto-detects your framework and builds a Docker image automatically: - Next.js: Detected via next.config.js/ts. Add output: 'standalone' to next.config for optimal builds. - Node.js: Detected via package.json with a "start" script. Works with Express, Fastify, Koa, Hapi, etc. - Python: Detected via requirements.txt or pyproject.toml. Works with Flask, FastAPI, Django. - Custom Dockerfile: If a Dockerfile exists in the project root, it takes priority over auto-detection. Use this for Go, Rust, Java, or any other language. The EXPOSE directive in the Dockerfile is used to detect the app port automatically. THREE WAYS to supply the source code — pick EXACTLY ONE: 1. **files** (inline source from AI): Pass a map of relative paths to UTF-8 text content. Best when you've just generated a small app in this conversation and want to deploy it without any filesystem step. Up to 200 files, 10 MB total. Include the framework manifest (package.json, requirements.txt, or Dockerfile) so auto-detection works. 2. **git_url** (clone a public repo): Pass an https://, git://, ssh://, or git@host:path URL. We shallow-clone it (--depth=1 --single-branch) on the server and deploy. Optional git_branch picks a non-default branch. Only public repos are supported in v1. Max 200 MB after clone. 3. **directory** (local filesystem): Pass an absolute path. Only works when the MCP client has filesystem access (Claude Code / CLI; not Claude.ai web). Defaults to the current working directory when omitted. IMPORTANT: Your app MUST listen on the PORT environment variable. For auto-detected frameworks (Next.js, Node.js, Python) PORT is 8080. For custom Dockerfiles, the port is auto-detected from the EXPOSE directive (e.g. EXPOSE 3000 sets PORT=3000). If no EXPOSE is found, it defaults to 8080. Every project includes a managed PostgreSQL 17 database. Six environment variables are auto-injected into your container — no manual database configuration needed: DATABASE_URL (full connection string), PGHOST, PGPORT, PGUSER, PGPASSWORD, and PGDATABASE. Libraries that follow libpq conventions (node-postgres, pgx, psycopg2, Django) pick up the PG* variables automatically with no configuration. If your app needs database migrations, run them on startup. Deployments use blue-green strategy for zero downtime. The old container keeps running until the new one passes health checks (60s timeout). Use get-logs to monitor build progress. Files matching .gitignore, .git/, node_modules/, .env, and .DS_Store are excluded from the archive.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "project_id"
      ],
      "properties": {
        "files": {
          "type": "object",
          "description": "Map of relative file paths to UTF-8 text content. Use when generating an app inline (e.g. from a Claude.ai web conversation). Include a framework manifest so auto-detection works. Mutually exclusive with git_url and directory.",
          "additionalProperties": {
            "type": "string"
          }
        },
        "git_url": {
          "type": "string",
          "description": "Public git repository URL to clone (https://, git://, ssh://, or git@host:path). Mutually exclusive with files and directory."
        },
        "directory": {
          "type": "string",
          "description": "Absolute path to a local directory (only useful when the MCP client has filesystem access — e.g. Claude Code). Defaults to the current working directory when no other mode is given. Mutually exclusive with files and git_url."
        },
        "git_branch": {
          "type": "string",
          "description": "Optional branch name when using git_url. Defaults to the repository default branch."
        },
        "project_id": {
          "type": "string",
          "description": "Project ID (UUID) to deploy to. Use list-projects to find the ID."
        }
      },
      "additionalProperties": false
    }
    arguments 33 lines
  • set-env changes data auth-required never probed

    Set an environment variable for a project. Variables are encrypted at rest (AES-256-GCM) and injected at container runtime. NOTE: DATABASE_URL, PGHOST, PGPORT, PGUSER, PGPASSWORD, and PGDATABASE are all auto-injected for the managed PostgreSQL database — you do NOT need to set any of them manually. The PORT variable is auto-managed: 8080 for auto-detected frameworks (Next.js, Node.js, Python), or auto-detected from the Dockerfile EXPOSE directive for custom Dockerfile builds. IMPORTANT: Changing env vars does NOT auto-redeploy. You must call deploy or use the redeploy API endpoint to apply changes. For Next.js apps, NEXT_PUBLIC_* variables must be set BEFORE deploying since they are embedded at build time.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "project_id",
        "key",
        "value"
      ],
      "properties": {
        "key": {
          "type": "string",
          "description": "Environment variable name (e.g., STRIPE_KEY, REDIS_URL, API_SECRET). Do NOT set DATABASE_URL — it is auto-managed"
        },
        "value": {
          "type": "string",
          "description": "Environment variable value. Will be encrypted at rest"
        },
        "project_id": {
          "type": "string",
          "description": "Project ID (UUID)"
        }
      },
      "additionalProperties": false
    }
    arguments 24 lines
  • rollback changes data auth-required never probed

    Rollback a project to its previous deployment. This instantly swaps the container image without rebuilding — the previous image is reused for near-instant rollback. Uses the same blue-green strategy for zero downtime. The database is NOT rolled back (data persists across deployments). Use this when a deployment introduces bugs or breaks the app.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "project_id"
      ],
      "properties": {
        "project_id": {
          "type": "string",
          "description": "Project ID (UUID) to rollback. Use list-projects to find the ID"
        }
      },
      "additionalProperties": false
    }
    arguments 14 lines
  • add-domain changes data auth-required never probed

    Add a custom domain to a sota.io project. Each project supports up to 5 custom domains with automatic HTTPS via Let's Encrypt. Returns DNS setup instructions: for apex domains (example.com), add an A record pointing to 23.88.45.28; for subdomains (app.example.com), add a CNAME record pointing to {slug}.sota.io. Domain statuses: pending (waiting for DNS) → verified (SSL provisioning) → active (live with HTTPS). After DNS is configured, verification and SSL provisioning happen automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "project_id",
        "domain"
      ],
      "properties": {
        "domain": {
          "type": "string",
          "description": "Domain name to add (e.g. \"app.example.com\" or \"example.com\")"
        },
        "project_id": {
          "type": "string",
          "description": "Project ID (UUID) to add the domain to. Use list-projects to find the ID"
        }
      },
      "additionalProperties": false
    }
    arguments 19 lines
  • get-domain reads auth-required 15h ago

    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). If status is 'pending', configure the DNS record as shown in the instructions.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "project_id",
        "domain_id"
      ],
      "properties": {
        "domain_id": {
          "type": "string",
          "description": "Domain ID (UUID). Use list-domains to find the ID"
        },
        "project_id": {
          "type": "string",
          "description": "Project ID (UUID). Use list-projects to find the ID"
        }
      },
      "additionalProperties": false
    }
    arguments 19 lines
  • get-env reads auth-required 15h ago

    List environment variables for a project. Values are masked for security. Auto-injected variables (DATABASE_URL, PGHOST, PGPORT, PGUSER, PGPASSWORD, PGDATABASE, PORT) may not appear in this list but are always available in the container at runtime.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "project_id"
      ],
      "properties": {
        "project_id": {
          "type": "string",
          "description": "Project ID (UUID)"
        }
      },
      "additionalProperties": false
    }
    arguments 14 lines
  • get-status reads auth-required 15h ago

    Get the current deployment status for a project, including the live URL (https://{slug}.sota.io), detected framework, and recent deployment history. Deployment statuses: pending (queued), building (build in progress), built (image ready), deploying (starting container + health checks), running (live and healthy), failed (build or health check error), stopped (replaced by newer deployment). Use this to verify a deployment succeeded after calling deploy.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "project_id"
      ],
      "properties": {
        "project_id": {
          "type": "string",
          "description": "Project ID (UUID) to check status for. Use list-projects to find the ID"
        }
      },
      "additionalProperties": false
    }
    arguments 14 lines
  • get-logs reads auth-required 1h ago

    Get build and runtime logs for a deployment. If no deployment_id is provided, returns logs for the latest deployment. Use this after calling deploy to monitor build progress and diagnose failures. Logs include: framework detection output, dependency installation, build steps, container startup, and health check results. If a deployment fails, check the logs for error details — common issues include missing dependencies, build errors, or the app not listening on the correct PORT (check the PORT env var — 8080 for auto-detected frameworks, or the EXPOSE value from Dockerfile).

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "project_id"
      ],
      "properties": {
        "project_id": {
          "type": "string",
          "description": "Project ID (UUID) to get logs for"
        },
        "deployment_id": {
          "type": "string",
          "description": "Specific deployment ID (optional, defaults to latest). Use get-status to see recent deployment IDs"
        }
      },
      "additionalProperties": false
    }
    arguments 18 lines
  • list-projects reads auth-required 1h ago

    List all projects on your sota.io account. sota.io is an EU-native DevOps PaaS hosted in Germany (GDPR-compliant). Each project gets a live URL at {slug}.sota.io with automatic HTTPS, a managed PostgreSQL 17 database (DATABASE_URL auto-injected), PgBouncer connection pooling, daily backups, zero-downtime blue-green deployments, gVisor container isolation, and custom domain support (up to 5 per project with automatic HTTPS).

    mcp-tool

    {
      "type": "object",
      "properties": {}
    }
    arguments 4 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id 106d454b4940c396.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/106d454b4940c396/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/106d454b4940c396/badge.svg)](https://brick.blue/agent/106d454b4940c396?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.