Supero
Build multi-tenant apps over MCP. Schemas, CRUD, deploys — access control enforced server-side.
Connect it
Settings → Connectors → Add custom connector
URL: https://api.supero.dev/mcp/v1/messagesSettings → Apps & Connectors → Advanced → Developer mode
Create connector with URL: https://api.supero.dev/mcp/v1/messages{
"mcpServers": {
"supero": {
"url": "https://api.supero.dev/mcp/v1/messages",
"headers": {
"X-API-Key": "<YOUR_X_API_KEY>"
}
}
}
}claude mcp add --transport http supero https://api.supero.dev/mcp/v1/messages --header "X-API-Key: <value>"{
"servers": {
"supero": {
"type": "http",
"url": "https://api.supero.dev/mcp/v1/messages",
"headers": {
"X-API-Key": "<YOUR_X_API_KEY>"
}
}
}
}64 tools, verified live
crud_searchread-onlySearch/list objects of any type in the current domain. Use schema_list first to discover available object types. System types: project, tenant, user_account, api_key, connector, audit_log, schema_registry, client_sdk, connector_execution, connector_plugin. Domain types vary per domain (e.g. customer, invoice, appointment, vehicle).
crud_getread-onlyGet a specific object by UUID from the current domain.
crud_createCreate a new object in the current domain. Use schema_list to see available types and their fields.
crud_updatecan modifyUpdate an existing object in the current domain.
crud_deletecan modifyDelete an object from the current domain.
schema_listread-onlyList all existing schemas in the current domain.
schema_getread-onlyGet full details of a specific schema by UUID. Returns the complete schema definition including all attributes and metadata.
schema_validateread-onlyValidate schemas before saving. Checks for conflicts with existing schemas, circular dependencies, reserved names, and parent_type correctness. Always validate before saving!
schema_savecan modifySave/upload schemas to the domain. Schemas are validated before saving. Returns list of successfully saved schemas with their UUIDs. IMPORTANT: Pass FLAT schema objects directly — do NOT wrap in schema_content. The tool handles schema_type detection and wrapping automatically. Required fields: name, parent_type, prefix, plural_name, attributes, description. Supported attribute types: 'string
schema_deletecan modifyDelete a schema from the domain. Use with caution.
schema_list_projectread-onlyList schemas linked to the current project.
schema_updatecan modifyUpdate an existing schema definition.
project_link_schemasLink schemas to a project. Accepts schema UUIDs or names.
sdk_generatecan modifyGenerate client SDKs for the domain's schemas.
sdk_statusread-onlyCheck SDK generation request status.
sdk_listread-onlyList available SDKs for the current domain.
sdk_downloadread-onlyGet download URL for an SDK.
rbac_get_my_accessread-onlyGet current user's role, permissions, and scope.
rbac_check_permissionread-onlyCheck if the current user has a specific permission.
apikey_get_scoperead-onlyGet the scope and permissions of the current API key.
connector_runcan modifyTrigger a manual connector sync execution.
connector_cancelcan modifyCancel a running connector execution.
connector_statusread-onlyGet connector status and recent executions.
connector_enableEnable a connector for scheduling.
connector_disableDisable a connector.
connector_discoverTrigger schema/metadata discovery for a connector.
connector_discover_statusread-onlyGet discovery execution status.
connector_discover_resultsread-onlyGet discovery results.
connector_test_configread-onlyTest a connector configuration.
connector_testread-onlyTest an existing connector's connectivity.
connector_pluginsread-onlyList available connector plugins.
build_get_skillsread-onlyFetch a Supero build reference. doc='skills' (default, the spec you MUST follow) | 'components' (the real pre-built SDK component/global catalog — read so you don't reinvent UI) | 'rubric' (the rich-app quality checklist — what 'stunning' means) | 'landing' (compact landing-page derivation + quality bar — MANDATORY read for public-facing apps) | 'integrations' (the EXACT services.* wrapper→service
build_get_examplesread-onlyFetch a COMPLETE, production-quality reference app (schemas.py + config.py + setup.py + ui/app.js) to copy patterns from — the single biggest lever for app quality. archetype='index' (default) lists the available archetypes with per-file byte sizes; pick the one closest to your app ('commerce-marketplace' | 'service-booking' | 'ops-dashboard' | 'multitenant-portal' | 'saas-billing') and fetch it B
build_planread-onlyPLAN FIRST — turn a one-line app idea into an explicit BUILD CHECKLIST before you author anything, so a thin prompt doesn't silently skip what expert builders add (this is exactly why first-draft apps miss detail pages, tenant pickers, seed data). Deterministic, no LLM: it detects the app's VERTICAL and returns the authentic page structure + terminology for that domain, which entities need a full
build_get_service_contractread-onlyFetch the AUTHORITATIVE contract for a transactional/stateful platform service (cart, order, payment, booking, appointment, membership, approval, document_signature, recurring_plan, inventory, task, ticket, loyalty_points, rental, comment, attachment, feedback, notification, product, service, customer, workflows). Returns the service's state machine (initial_state + transitions), its operations (o
build_whoamiread-onlyResolve your API key's scope: role (domain_admin/project_admin), domain, whether you can create projects, and your plan. Call this to decide the flow.
build_list_projectsread-onlyList projects you can build into (uuid, name, schema_namespace, live_url).
build_get_projectread-onlyGet one project's details: schema_namespace (use this EXACT value as the `namespace` literal on every schema dict), last published version, AND the captured `project_intent` — the brief (project_description/summary), the discovered data model (entities/central_entity/relationships/status_workflows), and the landing intent (public_landing_view). BUILD TO THIS — it's the authoritative app spec the u
build_create_projectCreate a NEW project (domain-admin keys only; plan-gated). Mints the project's schema_namespace + an API key (returned ONCE). Use for a fresh app.
build_update_projectcan modifyUpdate a project's metadata (display_name, description, show_public, live_url).
build_set_project_modecan modifySet a project's build mode. 'dev' (default) allows COMPLETE REPLACE (wipe data, keep credentials); 'live' protects it. Switch to dev before replacing, to live when it's in production.
build_replace_projectcan modifyDESTRUCTIVE (DOMAIN-admin keys only): completely replace a DEV-mode project's app — wipes its data (retains credentials, API keys, namespace, tenant). Refused if mode='live'. Requires confirm_project_name to match. If you pass files, they are VALIDATED before any wipe (a bad bundle is a no-op) and published after; otherwise wipe-only, then call build_publish.
build_validateValidate a locally-authored bundle against the live platform BEFORE publishing. AST-only (your code is never executed). Checks manifest, syntax, import-safety, config exports, schema validity, and namespace==project schema_namespace.
build_publishPackage + upload your authored bundle and record a version under the project. Returns version_uuid + file_id + download_url. Runs build_validate first unless force=true. Provide files as {relative_path: content}.
build_stage_bundleread-onlyPUB-1a: get the out-of-band UPLOAD endpoint for a LARGE app bundle that won't fit inline (the model's max OUTPUT tokens cap `files`/`files_b64gz`, so big apps otherwise have to be truncated/minified). Upload a gzip(json {path:content}) blob to the returned URL with your OWN key, then pass the returned file_id as `files_ref` to build_validate / build_publish / build_doctor. Bundle size then no long
build_get_bundleread-onlyFetch the CURRENT (or a given) PUBLISHED bundle: the file list + a signed download_url, or ONE file's content inline via file=. For ANY change request on an existing app, START from this bundle and modify it — re-authoring from scratch silently drops the hand-authored ui/app.js and every prior fix.
build_deploycan modifyDeploy a published version. target='cloud_ephemeral' (managed Cloud Run, ~30m throwaway preview; requires platform enablement; the default when cloud deploy is enabled) or 'local' (hand the user the bundle to run with the project's own key). For a PERMANENT public URL, use build_go_live instead.
build_deploy_statusread-onlyPoll a cloud deploy started by build_deploy or build_go_live. Pass the poll_url it returned. Reports elapsed_s since launch; a launch still pending after ~5 minutes should be treated as failed.
build_logsread-onlyFetch recent Cloud Run logs for a project's deployed app — THE tool for diagnosing a failed/stalled cloud deploy or a crashing app (startup-probe timeouts, tracebacks, 'container failed to start on PORT'). Read-only; rate-limited per domain.
build_go_livecan modifyPERMANENT deploy: promote a published version to a PERMANENT public URL at <service>.supero.live (managed Cloud Run) — unlike build_deploy(target='cloud_ephemeral'), which is a ~30-min throwaway. If version_uuid/file_id are omitted, the latest published version for the project is used. Returns public_url + poll_url; poll with build_deploy_status until live, then build_smoke_test the public_url. bu
build_teardowncan modifyTear down a project's live deployment — BOTH the permanent (build_go_live) app and the ephemeral preview — DELETEing the managed Cloud Run services and freeing their URLs. Idempotent: a project with nothing deployed returns stopped=true. ONLY manages Supero-hosted apps — a project deployed to your own AWS/GCP is refused, not silently reported stopped. Check `stopped`: false means the teardown was
build_list_capabilitiesread-onlyList the platform's available services/integrations from the LIVE catalog (email, sms, slack, ai, stripe_checkout, google_oauth, push_notification, …) — so the intake's 'which connections/integrations?' question is accurate and you never guess a service id. Returns each service's exact catalog `service_id` (use it verbatim in config.py `services` — e.g. 'stripe_checkout', NOT 'stripe'), category,
build_recommend_integrationsread-onlyRECOMMEND which concrete provider integrations this app needs, and WHY — the deterministic Step-2 intelligence the web wizard uses, now over MCP. Pass the app `description` + the platform `service_ids` it will use (e.g. ['cart','order']); returns GROUPED, TIERED suggestions (required/recommended/optional) with the default option flagged — e.g. cart/checkout → a payment gateway (REQUIRED; stripe_ch
build_configure_servicescan modifyConfigure a service's keys for the project so an integration works at deploy (e.g. wire SendGrid for email, a Stripe TEST key for checkout). TEST/SANDBOX keys ONLY. Keys with a clear live marker (Stripe sk_live_… / Razorpay rzp_live_…) are auto-refused, but most providers give NO test-vs-live signal — so for EVERY provider send test/sandbox keys only and use the admin panel for production secrets
build_doctorPREFLIGHT a bundle BEFORE publish/deploy — catches the silent deploy-killers build_validate does NOT: missing #supero-preloader removal (app stuck on a spinner forever), heavy startup seed (Cloud Run port-bind timeout → 'container failed to start'), reserved field names like status/state (silently dropped), namespace collisions (ambiguous reads), and services needing elevated import permission. Ru
build_smoke_testread-onlyVERIFY a DEPLOYED app actually works (not just 'running'). HTTP-checks the live URL: root loads with a title, app.js is your bundle (not a stub) and dismisses the boot splash, config.js namespace matches the project; optionally logs in and reads an entity to confirm data + no namespace ambiguity. Pass url= (from build_deploy_status) or poll_url=. THE post-deploy gate — run it after every deploy.
build_e2e_testcan modifyRun the FULL behavioural test suite against a PUBLISHED bundle in the project's OWN already-deployed app (no throwaway project is created) — auth/RBAC/multi-tenant, CRUD round-trips, workflows + event emission, services, aggregates, real-browser UI. WRITE-SAFE: on a DEV project the write suites create + delete only their OWN test records (your real data stays read-only); a LIVE project is auto-res
build_e2e_test_statusread-onlyPoll an e2e run started by build_e2e_test. While running, returns status only. When complete, returns a compact report: verdict (honest — never 'healthy' if a core suite couldn't run), per-suite pass/fail/warn/skip, findings with layer + fix hint, what was/wasn't covered, and next_steps that say which findings to fix vs. report. On failure it carries a cause.
build_list_data_sourcesread-onlyList the external DATA SOURCE types an app can connect to — its own Postgres/MySQL/MSSQL/Oracle/MongoDB, any REST API, or a Snowflake/BigQuery/Redshift/Databricks/ClickHouse/Fabric warehouse — plus the curated public-API catalog. Read this to offer a 'connect your own data' option. Flow: build_connect_data_source → build_discover_source → build_bind_data_source. See build_get_skills(doc='connector
build_connect_data_sourceCreate a data connector to an EXTERNAL source the app owner controls (their own database, a REST API, or a warehouse). Returns a connector_id. Does NOT bind schemas yet — run build_discover_source then build_bind_data_source. Credentials are sent to the platform and NEVER echoed back; prefer read-only DB creds / the Key Store for production. Requires a domain- or project-admin API key.
build_discover_sourceDiscover a connector's schema: trigger discovery, wait, and return the source streams (names, columns, primary keys), AI-inferred Supero schemas, field mappings, and a suggested namespace. Run AFTER build_connect_data_source and BEFORE build_bind_data_source (a live bind's `source` MUST equal a discovered stream name).
build_bind_data_sourcecan modifyBind source streams to the app's schemas. mode='live_read' (default: read-only BYODB / warehouse), 'live_readwrite' (BYODB read+write — DOMAIN-ADMIN only), or 'sync' (copy into SuperoDB). For live modes, discovery must have run and each binding's `source` must match a discovered stream; the bind VERIFIES the live mapping materialized. Bound live schemas are read/written via ORDINARY app CRUD — not
build_run_data_sourcecan modifyTrigger a SYNC RUN on a data connector and return the run id. MCP-created connectors are trigger:manual, so a mode='sync' binding copies NO rows until a run executes — call this after build_bind_data_source (and again whenever the source data changes). Live-read/warehouse bindings don't need runs (they read the source directly).
build_list_bound_schemasread-onlyClassify this project's schemas: which are connector-backed vs app-authored, and each one's access mode (sync | live-ro | live-rw | warehouse). Use it so you DON'T render create/edit UI for read-only live sources (live-ro/warehouse) or regenerate/overwrite connector-discovered schemas.
Alternatives in Developer Tools
Compare →RNRelease Notes IndexA
Release notes and changelogs from across the web, indexed for agents. Also via CLI and REST API.
CDclassifier.devA
Sort up to 1,000 texts into your own labels with a calibrated confidence per answer. No API key.
HOHonchoA
Memory that reasons: continual learning for stateful agents. Better context, fewer tokens.
MOMobilerunA
Control real Android and iOS devices with LLM agents — tap, swipe, type, automate flows.
DMDocs MCPA
Remote MCP server for Tandem docs, install guides, SDKs, workflows, and agent setup help.
SHShipSwiftA
40+ production-ready SwiftUI recipes for building full-stack iOS apps via MCP.