Supero
by supero-platform · remote · no sign-in to list tools · v2.0.0 · published by GitHub user supero-platform
Build multi-tenant apps over MCP. Schemas, CRUD, deploys — access control enforced server-side.
64 tools: 18 can delete or cancel things, 1 do something that can't be undone, 18 change things and 27 only read.
Scanned Oct 21, 2026
- Deletes or cancels18Claude Code: deny: see these tools
- Can't be undone1Claude Code: ask: see these tools
- Changes things18Claude Code: ask: see these tools
- Only reads27Claude Code: allow: see these tools
5 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http supero https://api.supero.dev/mcp/v1/messages --header 'X-API-Key: <your-x-api-key>'Findings
Matches of fixed checks, with the text they matched.
- Warnbuild_validate
The server marks "build_validate" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}; The name "build_validate" says "validate": a word for reading.
The server marks "build_deploy_status" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The name "build_deploy_status" says "deploy": a word for a change.
The description mentions "credentials".
What this check looks forMatched text
description: "...llows COMPLETE REPLACE (wipe data, keep credentials); 'live' protects it. Switch to dev bef..."
The description mentions "credentials".
What this check looks forMatched text
description: "...project's app — wipes its data (retains credentials, API keys, namespace, tenant). Refused..."
The description mentions "Credentials".
What this check looks forMatched text
description: "...ver_source then build_bind_data_source. Credentials are sent to the platform and NEVER echo..."
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
64 tools
Deletes or cancels 18Claude Code: deny
build_bind_data_sourceBind source streams to the app's schemas.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Bind 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 — nothing goes in the bundle.
Annotations the server declares
- readOnlyHint: false
- title: Build: Bind Data Source
- destructiveHint: true
- idempotentHint: false
build_configure_servicesConfigure a service's keys for the project so an integration works at deploy (e.g.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Configure 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 (a deep link is returned). Never put a real secret through this tool/chat. Reacts to the live permission result; secret values are never echoed.
Annotations the server declares
- readOnlyHint: false
- title: Build: Configure Services
- destructiveHint: true
- idempotentHint: false
build_deployDeploy a published version.No findings
Why it is in this group
- The name "build_deploy" says "deploy": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Deploy 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.
Annotations the server declares
- readOnlyHint: false
- title: Build: Deploy
- destructiveHint: true
- idempotentHint: false
build_e2e_testRun 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-trip…No findings
Why it is in this group
- The description's first verb is "run": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Run 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-restricted to read-only suites so production data is never mutated. This is the deep complement to build_smoke_test ('loads + reads one row'); it proves the app actually WORKS. COSTS A FULL RUN (~2-4 min of real compute) — a PRE-DELIVERY gate, NOT a per-edit check; run it after build_validate + build_doctor pass, on a deployed + seeded project. ASYNC: returns a run_id; poll build_e2e_test_status. Findings are layer-attributed so you know which are yours to fix (app/config) vs. report (platform/sdk). Requires platform enablement.
Annotations the server declares
- readOnlyHint: false
- title: Build: E2E Test
- destructiveHint: true
- idempotentHint: false
build_go_livePERMANENT 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…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it PERMANENT 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. build_teardown removes it. Requires a domain- or project-admin API key + platform cloud-deploy enablement.
Annotations the server declares
- readOnlyHint: false
- title: Build: Go Live
- destructiveHint: true
- idempotentHint: false
build_replace_projectDESTRUCTIVE (DOMAIN-admin keys only): completely replace a DEV-mode project's app — wipes its data (retains credentials, API keys, namespace, tenant).1 finding
Why it is in this group
- The name "build_replace_project" says "replace": a word for a change.
- The server marks it destructive (destructiveHint: true).
Findings
- Info
The description mentions "credentials".
What this check looks forMatched text
description: "...project's app — wipes its data (retains credentials, API keys, namespace, tenant). Refused..."
Description, as the server wrote it DESTRUCTIVE (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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- title: Build: Replace Project
- idempotentHint: true
build_run_data_sourceTrigger a SYNC RUN on a data connector and return the run id.No findings
Why it is in this group
- The name "build_run_data_source" says "run": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Trigger 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).
Annotations the server declares
- readOnlyHint: false
- title: Build: Run Data Source
- destructiveHint: true
- idempotentHint: false
build_set_project_modeSet a project's build mode.1 finding
Why it is in this group
- The name "build_set_project_mode" says "set": a word for a change.
- The server marks it destructive (destructiveHint: true).
Findings
- Info
The description mentions "credentials".
What this check looks forMatched text
description: "...llows COMPLETE REPLACE (wipe data, keep credentials); 'live' protects it. Switch to dev bef..."
Description, as the server wrote it Set 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.
Annotations the server declares
- readOnlyHint: false
- title: Build: Set Project Mode
- destructiveHint: true
- idempotentHint: true
build_teardownTear 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.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Tear 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 INCOMPLETE and the app may still be serving (and billing) — re-run it, do not report success. Requires a domain- or project-admin API key.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- title: Build: Teardown
- idempotentHint: true
build_update_projectUpdate a project's metadata (display_name, description, show_public, live_url).No findings
Why it is in this group
- The name "build_update_project" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Update a project's metadata (display_name, description, show_public, live_url).
Annotations the server declares
- readOnlyHint: false
- title: Build: Update Project
- destructiveHint: true
- idempotentHint: true
connector_cancelCancel a running connector execution.No findings
Why it is in this group
- The name "connector_cancel" says "cancel": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Cancel a running connector execution.
Annotations the server declares
- title: Connector: Cancel
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
connector_runTrigger a manual connector sync execution.No findings
Why it is in this group
- The name "connector_run" says "run": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Trigger a manual connector sync execution.
Annotations the server declares
- title: Connector: Run
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
crud_deleteDelete an object from the current domain.No findings
Why it is in this group
- The name "crud_delete" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Delete an object from the current domain.
Annotations the server declares
- title: Delete Object
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
crud_updateUpdate an existing object in the current domain.No findings
Why it is in this group
- The name "crud_update" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Update an existing object in the current domain.
Annotations the server declares
- title: Update Object
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
schema_deleteDelete a schema from the domain.No findings
Why it is in this group
- The name "schema_delete" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Delete a schema from the domain. Use with caution.
Annotations the server declares
- title: Schema: Delete
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
schema_saveSave/upload schemas to the domain.No findings
Why it is in this group
- The name "schema_save" says "save": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Save/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' for text, 'float' for decimal numbers (NOT 'number'), 'integer' for whole numbers, 'boolean' for true/false. Optionally pass project_uuid to auto-link saved schemas to a project. Example: { "schemas": [{ "name": "product", "description": "Product catalog entry", "parent_type": "tenant", "prefix": "prd", "plural_name": "products", "attributes": [ {"name": "title", "type": "string", "required": true}, {"name": "price", "type": "float"}, {"name": "stock", "type": "integer"} ] }] }
Annotations the server declares
- title: Schema: Save
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
schema_updateUpdate an existing schema definition.No findings
Why it is in this group
- The name "schema_update" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Update an existing schema definition.
Annotations the server declares
- title: Schema: Update
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
sdk_generateGenerate client SDKs for the domain's schemas.No findings
Why it is in this group
- The name "sdk_generate" says "generate": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Generate client SDKs for the domain's schemas.
Annotations the server declares
- title: SDK: Generate
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
Can't be undone 1Claude Code: ask
build_publishPackage + upload your authored bundle and record a version under the project.No findings
Why it is in this group
- The name "build_publish" says "publish": a word for a change that another call does not undo.
Description, as the server wrote it Package + 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}.
Annotations the server declares
- readOnlyHint: false
- title: Build: Publish
- destructiveHint: false
- idempotentHint: false
Changes things 18Claude Code: ask
build_connect_data_sourceCreate a data connector to an EXTERNAL source the app owner controls (their own database, a REST API, or a warehouse).1 finding
Why it is in this group
- The description's first verb is "create": a word for a change.
Findings
- Info
The description mentions "Credentials".
What this check looks forMatched text
description: "...ver_source then build_bind_data_source. Credentials are sent to the platform and NEVER echo..."
Description, as the server wrote it Create 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.
Annotations the server declares
- readOnlyHint: false
- title: Build: Connect Data Source
- destructiveHint: false
- idempotentHint: false
build_create_projectCreate a NEW project (domain-admin keys only; plan-gated).No findings
Why it is in this group
- The name "build_create_project" says "create": a word for a change.
Description, as the server wrote it Create 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.
Annotations the server declares
- readOnlyHint: false
- title: Build: Create Project
- destructiveHint: false
- idempotentHint: false
build_deploy_statusPoll a cloud deploy started by build_deploy or build_go_live.1 finding
Why it is in this group
- The name "build_deploy_status" says "deploy": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "build_deploy_status" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The name "build_deploy_status" says "deploy": a word for a change.
Description, as the server wrote it Poll 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.
Annotations the server declares
- readOnlyHint: true
- title: Build: Deploy Status
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 na…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Discover 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).
Annotations the server declares
- readOnlyHint: false
- title: Build: Discover Source
- destructiveHint: false
- idempotentHint: false
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 star…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it PREFLIGHT 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. Run it after build_validate and before build_publish.
Annotations the server declares
- readOnlyHint: false
- title: Build: Doctor
- destructiveHint: false
- idempotentHint: false
build_planPLAN 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 …No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it PLAN 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 DETAIL PAGE, the multi-tenant login pattern (picker + tenant=''), seed guidance, and which build_get_examples to copy. Call it right after build_get_skills and BEFORE authoring.
Annotations the server declares
- readOnlyHint: true
- title: Build: Plan
build_recommend_integrationsRECOMMEND which concrete provider integrations this app needs, and WHY — the deterministic Step-2 intelligence the web wizard uses, now over MCP.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it RECOMMEND 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_checkout default, paypal/razorpay offered), customer-facing apps → transactional email, appointments+reminders → sms. Options are drawn ONLY from the LIVE installed manifests, so it can't suggest a provider you don't have. PRESCRIPTIVE complement to build_list_capabilities (which is descriptive): call this so you don't OMIT a needed integration; use build_list_capabilities for a service's exact id + config fields.
Annotations the server declares
- readOnlyHint: true
- title: Build: Recommend Integrations
build_smoke_testVERIFY a DEPLOYED app actually works (not just 'running').No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it VERIFY 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.
Annotations the server declares
- readOnlyHint: true
- title: Build: Smoke Test
build_stage_bundlePUB-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 …No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it PUB-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 longer depends on any token cap.
Annotations the server declares
- readOnlyHint: true
- title: Build: Stage Bundle
build_validateValidate a locally-authored bundle against the live platform BEFORE publishing.1 finding
Why it is in this group
- The name "build_validate" says "validate": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "build_validate" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}; The name "build_validate" says "validate": a word for reading.
Description, as the server wrote it Validate 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.
Annotations the server declares
- readOnlyHint: false
- title: Build: Validate
- destructiveHint: false
- idempotentHint: false
connector_disableDisable a connector.No findings
Why it is in this group
- The name "connector_disable" says "disable": a word for a change.
Description, as the server wrote it Disable a connector.
Annotations the server declares
- title: Connector: Disable
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
connector_discoverTrigger schema/metadata discovery for a connector.No findings
Why it is in this group
- The description's first verb is "trigger": a word for a change.
Description, as the server wrote it Trigger schema/metadata discovery for a connector.
Annotations the server declares
- title: Connector: Discover
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
connector_enableEnable a connector for scheduling.No findings
Why it is in this group
- The name "connector_enable" says "enable": a word for a change.
Description, as the server wrote it Enable a connector for scheduling.
Annotations the server declares
- title: Connector: Enable
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
connector_testTest an existing connector's connectivity.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Test an existing connector's connectivity.
Annotations the server declares
- title: Connector: Test
- readOnlyHint: true
connector_test_configTest a connector configuration.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Test a connector configuration.
Annotations the server declares
- title: Connector: Test Config
- readOnlyHint: true
crud_createCreate a new object in the current domain.No findings
Why it is in this group
- The name "crud_create" says "create": a word for a change.
Description, as the server wrote it Create a new object in the current domain. Use schema_list to see available types and their fields.
Annotations the server declares
- title: Create Object
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
project_link_schemasLink schemas to a project.No findings
Why it is in this group
- The name "project_link_schemas" says "link": a word for a change.
Description, as the server wrote it Link schemas to a project. Accepts schema UUIDs or names.
Annotations the server declares
- title: Link Schemas to Project
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
rbac_check_permissionCheck if the current user has a specific permission.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Check if the current user has a specific permission.
Annotations the server declares
- title: RBAC: Check Permission
- readOnlyHint: true
Only reads 27Claude Code: allow
apikey_get_scopeGet the scope and permissions of the current API key.No findings
Why it is in this group
- The name "apikey_get_scope" says "get": a word for reading.
Description, as the server wrote it Get the scope and permissions of the current API key.
Annotations the server declares
- title: Get API Key Scope
- readOnlyHint: true
build_e2e_test_statusPoll an e2e run started by build_e2e_test.No findings
Why it is in this group
- The name "build_e2e_test_status" says "status": a word for reading.
Description, as the server wrote it Poll 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.
Annotations the server declares
- readOnlyHint: true
- title: Build: E2E Test Status
build_get_bundleFetch the CURRENT (or a given) PUBLISHED bundle: the file list + a signed download_url, or ONE file's content inline via file=.No findings
Why it is in this group
- The name "build_get_bundle" says "get": a word for reading.
Description, as the server wrote it Fetch 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.
Annotations the server declares
- readOnlyHint: true
- title: Build: Get Bundle
build_get_examplesFetch 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.No findings
Why it is in this group
- The name "build_get_examples" says "get": a word for reading.
Description, as the server wrote it Fetch 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 BEFORE authoring your UI. These are real 'stunning' apps; mirror how they compose the SDK components, art-direct the landing page, and structure schemas. Optional file= to fetch just one file ('schemas.py' | 'config.py' | 'setup.py' | 'ui/app.js'). Responses are PAGED (~32KB/section): when the header says more:true, fetch the next section with offset=<next_offset> — never re-fetch from 0.
Annotations the server declares
- readOnlyHint: true
- title: Build: Get Examples
build_get_projectGet 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 …No findings
Why it is in this group
- The name "build_get_project" says "get": a word for reading.
Description, as the server wrote it Get 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 user already gave; don't re-ask or ignore it.
Annotations the server declares
- readOnlyHint: true
- title: Build: Get Project
build_get_service_contractFetch the AUTHORITATIVE contract for a transactional/stateful platform service (cart, order, payment, booking, appointment, membership, approval, document_signature, recurring_plan…No findings
Why it is in this group
- The name "build_get_service_contract" says "get": a word for reading.
Description, as the server wrote it Fetch 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 (op ids + input fields + resulting state), the base schemas + mandatory fields you must supply, AND the platform's DEFAULT UI SCHEMAS for that service — the bulletproof reference for building a correct, sophisticated transactional UI. ALWAYS call this for any service your app `extends` BEFORE authoring its UI — do not guess op names, states, or mandatory fields from prose. service_id='index' (default) lists all services.
Annotations the server declares
- readOnlyHint: true
- title: Build: Get Service Contract
build_get_skillsFetch a Supero build reference.No findings
Why it is in this group
- The name "build_get_skills" says "get": a word for reading.
Description, as the server wrote it Fetch 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_id→args map for email/sms/stripe/ai/etc.) | 'web' / 'transactional' / 'workflows' / 'mobile' / 'services' (deep companion docs) | 'e2e_testing'. Returns the doc + a content version + the SDK floor to pin. Read 'skills' FIRST, then 'components' + a matching build_get_examples before you author UI. Docs are PAGED (~32KB/section): when the header says more:true, fetch the next section with offset=<next_offset> — never re-fetch from 0.
Annotations the server declares
- readOnlyHint: true
- title: Build: Get Skills
build_list_bound_schemasClassify this project's schemas: which are connector-backed vs app-authored, and each one's access mode (sync | live-ro | live-rw | warehouse).No findings
Why it is in this group
- The name "build_list_bound_schemas" says "list": a word for reading.
Description, as the server wrote it Classify 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.
Annotations the server declares
- readOnlyHint: true
- title: Build: List Bound Schemas
build_list_capabilitiesList 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 conn…No findings
Why it is in this group
- The name "build_list_capabilities" says "list": a word for reading.
Description, as the server wrote it List 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, whether it needs a key, and YOUR connection's service permissions (can_import / can_configure). Descriptive — what EXISTS, never what to use. Pass service_id for one service's config fields.
Annotations the server declares
- readOnlyHint: true
- title: Build: List Capabilities
build_list_data_sourcesList 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…No findings
Why it is in this group
- The name "build_list_data_sources" says "list": a word for reading.
Description, as the server wrote it List 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='connectors').
Annotations the server declares
- readOnlyHint: true
- title: Build: List Data Sources
build_list_projectsList projects you can build into (uuid, name, schema_namespace, live_url).No findings
Why it is in this group
- The name "build_list_projects" says "list": a word for reading.
Description, as the server wrote it List projects you can build into (uuid, name, schema_namespace, live_url).
Annotations the server declares
- readOnlyHint: true
- title: Build: List Projects
build_logsFetch 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 f…No findings
Why it is in this group
- The name "build_logs" says "log": a word for reading.
Description, as the server wrote it Fetch 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.
Annotations the server declares
- readOnlyHint: true
- title: Build: Logs
build_whoamiResolve your API key's scope: role (domain_admin/project_admin), domain, whether you can create projects, and your plan.No findings
Why it is in this group
- The name "build_whoami" says "whoami": a word for reading.
Description, as the server wrote it Resolve 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.
Annotations the server declares
- readOnlyHint: true
- title: Build: Whoami
connector_discover_resultsGet discovery results.No findings
Why it is in this group
- The description's first verb is "get": a word for reading.
Description, as the server wrote it Get discovery results.
Annotations the server declares
- title: Connector: Discover Results
- readOnlyHint: true
connector_discover_statusGet discovery execution status.No findings
Why it is in this group
- The name "connector_discover_status" says "status": a word for reading.
Description, as the server wrote it Get discovery execution status.
Annotations the server declares
- title: Connector: Discover Status
- readOnlyHint: true
connector_pluginsList available connector plugins.No findings
Why it is in this group
- The description's first verb is "list": a word for reading.
Description, as the server wrote it List available connector plugins.
Annotations the server declares
- title: Connector: Plugins
- readOnlyHint: true
connector_statusGet connector status and recent executions.No findings
Why it is in this group
- The name "connector_status" says "status": a word for reading.
Description, as the server wrote it Get connector status and recent executions.
Annotations the server declares
- title: Connector: Status
- readOnlyHint: true
crud_getGet a specific object by UUID from the current domain.No findings
Why it is in this group
- The name "crud_get" says "get": a word for reading.
Description, as the server wrote it Get a specific object by UUID from the current domain.
Annotations the server declares
- title: Get Object
- readOnlyHint: true
crud_searchSearch/list objects of any type in the current domain.No findings
Why it is in this group
- The name "crud_search" says "search": a word for reading.
Description, as the server wrote it Search/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).
Annotations the server declares
- title: Search Objects
- readOnlyHint: true
rbac_get_my_accessGet current user's role, permissions, and scope.No findings
Why it is in this group
- The name "rbac_get_my_access" says "get": a word for reading.
Description, as the server wrote it Get current user's role, permissions, and scope.
Annotations the server declares
- title: RBAC: Get My Access
- readOnlyHint: true
schema_getGet full details of a specific schema by UUID.No findings
Why it is in this group
- The name "schema_get" says "get": a word for reading.
Description, as the server wrote it Get full details of a specific schema by UUID. Returns the complete schema definition including all attributes and metadata.
Annotations the server declares
- title: Schema: Get
- readOnlyHint: true
schema_listList all existing schemas in the current domain.No findings
Why it is in this group
- The name "schema_list" says "list": a word for reading.
Description, as the server wrote it List all existing schemas in the current domain.
Annotations the server declares
- title: Schema: List
- readOnlyHint: true
schema_list_projectList schemas linked to the current project.No findings
Why it is in this group
- The name "schema_list_project" says "list": a word for reading.
Description, as the server wrote it List schemas linked to the current project.
Annotations the server declares
- title: Schema: List Project
- readOnlyHint: true
schema_validateValidate schemas before saving.No findings
Why it is in this group
- The name "schema_validate" says "validate": a word for reading.
Description, as the server wrote it Validate schemas before saving. Checks for conflicts with existing schemas, circular dependencies, reserved names, and parent_type correctness. Always validate before saving!
Annotations the server declares
- title: Schema: Validate
- readOnlyHint: true
sdk_downloadGet download URL for an SDK.No findings
Why it is in this group
- The description's first verb is "get": a word for reading.
Description, as the server wrote it Get download URL for an SDK.
Annotations the server declares
- title: SDK: Download
- readOnlyHint: true
sdk_listList available SDKs for the current domain.No findings
Why it is in this group
- The name "sdk_list" says "list": a word for reading.
Description, as the server wrote it List available SDKs for the current domain.
Annotations the server declares
- title: SDK: List
- readOnlyHint: true
sdk_statusCheck SDK generation request status.No findings
Why it is in this group
- The name "sdk_status" says "status": a word for reading.
Description, as the server wrote it Check SDK generation request status.
Annotations the server declares
- title: SDK: Status
- readOnlyHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 2.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http supero https://api.supero.dev/mcp/v1/messages --header 'X-API-Key: <your-x-api-key>'Run in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__supero__crud_search",
"mcp__supero__crud_get",
"mcp__supero__schema_list",
"mcp__supero__schema_get",
"mcp__supero__schema_validate",
"mcp__supero__schema_list_project",
"mcp__supero__sdk_status",
"mcp__supero__sdk_list",
"mcp__supero__sdk_download",
"mcp__supero__rbac_get_my_access",
"mcp__supero__apikey_get_scope",
"mcp__supero__connector_status",
"mcp__supero__connector_discover_status",
"mcp__supero__connector_discover_results",
"mcp__supero__connector_plugins",
"mcp__supero__build_get_skills",
"mcp__supero__build_get_examples",
"mcp__supero__build_get_service_contract",
"mcp__supero__build_whoami",
"mcp__supero__build_list_projects",
"mcp__supero__build_get_project",
"mcp__supero__build_get_bundle",
"mcp__supero__build_logs",
"mcp__supero__build_list_capabilities",
"mcp__supero__build_e2e_test_status",
"mcp__supero__build_list_data_sources",
"mcp__supero__build_list_bound_schemas"
],
"ask": [
"mcp__supero__crud_create",
"mcp__supero__project_link_schemas",
"mcp__supero__rbac_check_permission",
"mcp__supero__connector_enable",
"mcp__supero__connector_disable",
"mcp__supero__connector_discover",
"mcp__supero__connector_test_config",
"mcp__supero__connector_test",
"mcp__supero__build_plan",
"mcp__supero__build_create_project",
"mcp__supero__build_validate",
"mcp__supero__build_publish",
"mcp__supero__build_stage_bundle",
"mcp__supero__build_deploy_status",
"mcp__supero__build_recommend_integrations",
"mcp__supero__build_doctor",
"mcp__supero__build_smoke_test",
"mcp__supero__build_connect_data_source",
"mcp__supero__build_discover_source"
],
"deny": [
"mcp__supero__crud_update",
"mcp__supero__crud_delete",
"mcp__supero__schema_save",
"mcp__supero__schema_delete",
"mcp__supero__schema_update",
"mcp__supero__sdk_generate",
"mcp__supero__connector_run",
"mcp__supero__connector_cancel",
"mcp__supero__build_update_project",
"mcp__supero__build_set_project_mode",
"mcp__supero__build_replace_project",
"mcp__supero__build_deploy",
"mcp__supero__build_go_live",
"mcp__supero__build_teardown",
"mcp__supero__build_configure_services",
"mcp__supero__build_e2e_test",
"mcp__supero__build_bind_data_source",
"mcp__supero__build_run_data_source"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as supero. Review it before you use it.
