You're viewing a demo portfolio

Join the waitlist
PRSM
This tool is no longer present in the server's latest manifest. Showing the last observed version (server version 0.1.0).

manage_app

Inactive

Tool of io.github.butterbase-ai/mcp

declared in 0.1.0

Manage app lifecycle: list, delete, pause/resume, get config, update access mode, secure, update CORS, clone, find templates, and migrate regions. Actions: - "list": List all backend apps with basic metadata (no app_id needed) - "delete": Delete an app and ALL its resources permanently (IRREVERSIBLE) - "pause": Pause or resume all data-plane traffic for an app (kill-switch) - "get_config": Get detailed configuration for an app including CORS, storage settings, and metadata - "set_visibility": Toggle the app's template visibility between "public" and "private" - "update_access_mode": Toggle an app's access mode between "public" and "authenticated" - "secure": Lock down an app: sets access_mode to "authenticated" and optionally enables RLS user isolation - "update_cors": Update CORS allowed origins to control which frontend domains can access your API - "preview_clone_env_vars": Preview which env vars a source app's functions need before cloning. Returns { functions: [{ fn_name, keys, conventions }] }. Call this before clone to decide what to supply via env_var_values or auto_mint_api_key. - "clone": Create a clone of a public app. Returns { job_id, pending_env_vars }. The dest app is a fresh empty-DB app owned by the caller. Source must be public and have a repo snapshot. Supply env_var_values and/or auto_mint_api_key to pre-fill function env vars; pending_env_vars lists keys still needing values. - "get_clone_job": Look up the status of a previously-started clone job. Returns { status, dest_app_id?, error_message? }. - "find_templates": Search public templates by name, region, sort order, and pagination. Returns paginated list of public app templates. - "set_clone_webhook": Set or clear a webhook that fires when someone clones this app. Pass webhook_url + webhook_secret to configure, or clear_webhook: true to remove. - "link_substrate": Link this app to the caller's substrate. Once linked, the app's deployed functions receive ctx.substrate and its actions/entities flow into the caller's substrate ledger. - "unlink_substrate": Unlink this app from substrate. ctx.substrate stops being injected; in-flight actions are unaffected. - "set_substrate_autopropagate": Toggle per-event auto-mirroring of app activity into the linked owner's substrate. Currently supports 'users' (signup / email-verified / user-deleted). Requires the app to already be linked via 'link_substrate'. - "move": Migrate an app to a different region. Returns migration_id + initial status "queued". - "move_status": Get the current status of an in-progress migration. - "teardown_source_replica": After a completed move, decommission the retained source-region replica. Parameters by action: list: { action: "list" } delete: { action: "delete", app_id } pause: { action: "pause", app_id, paused, reason? } get_config: { action: "get_config", app_id } set_visibility: { action: "set_visibility", app_id, visibility, listed? } update_access_mode: { action: "update_access_mode", app_id, access_mode } secure: { action: "secure", app_id, tables? } update_cors: { action: "update_cors", app_id, allowed_origins } preview_clone_env_vars: { action: "preview_clone_env_vars", source_app_id } clone: { action: "clone", source_app_id, name?, region?, env_var_values?, auto_mint_api_key? } get_clone_job: { action: "get_clone_job", job_id } find_templates: { action: "find_templates", q?, region?, sort?, limit?, offset? } set_clone_webhook: { action: "set_clone_webhook", app_id, webhook_url, webhook_secret } or { action: "set_clone_webhook", app_id, clear_webhook: true } link_substrate: { action: "link_substrate", app_id } unlink_substrate: { action: "unlink_substrate", app_id } set_substrate_autopropagate: { action: "set_substrate_autopropagate", app_id, users? } move: { action: "move", app_id, dest_region } move_status: { action: "move_status", app_id, migration_id } teardown_source_replica: { action: "teardown_source_replica", migration_id } Common errors: - RESOURCE_NOT_FOUND: App doesn't exist, verify app_id with action: "list" - AUTH_INVALID_API_KEY: Check your API key is set correctly

Parameters schema

{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "action"
  ],
  "properties": {
    "q": {
      "type": "string",
      "description": "Optional for \"find_templates\". Search query to filter templates by name."
    },
    "name": {
      "type": "string",
      "description": "Optional for \"clone\". A name for the new app; defaults to `Clone of <source_app_id>`."
    },
    "sort": {
      "enum": [
        "recent",
        "popular"
      ],
      "type": "string",
      "description": "Optional for \"find_templates\". Sort order: \"recent\" or \"popular\". Defaults to \"recent\"."
    },
    "limit": {
      "type": "integer",
      "description": "Optional for \"find_templates\". Max results per page (default 20)."
    },
    "users": {
      "type": "boolean",
      "description": "Optional for \"set_substrate_autopropagate\". true to mirror user signup / email-verified / user-deleted events into the substrate; false to disable. At least one toggle key must be provided."
    },
    "action": {
      "enum": [
        "list",
        "delete",
        "pause",
        "get_config",
        "update_access_mode",
        "secure",
        "update_cors",
        "set_visibility",
        "preview_clone_env_vars",
        "clone",
        "get_clone_job",
        "find_templates",
        "set_clone_webhook",
        "link_substrate",
        "unlink_substrate",
        "set_substrate_autopropagate",
        "move",
        "move_status",
        "teardown_source_replica"
      ],
      "type": "string",
      "description": "The action to perform"
    },
    "app_id": {
      "type": "string",
      "description": "The app ID (e.g. app_abc123def456). Required for all actions except \"list\"."
    },
    "job_id": {
      "type": "string",
      "description": "Required for \"get_clone_job\"."
    },
    "listed": {
      "type": "boolean",
      "description": "Optional for \"set_visibility\". When false and visibility=public, app is clonable by direct ID but not in /v1/templates."
    },
    "offset": {
      "type": "integer",
      "description": "Optional for \"find_templates\". Pagination offset (default 0)."
    },
    "paused": {
      "type": "boolean",
      "description": "Required for \"pause\". true to pause; false to resume."
    },
    "reason": {
      "type": "string",
      "maxLength": 500,
      "description": "Optional for \"pause\". Human-readable reason; surfaced in 503 responses while paused."
    },
    "region": {
      "type": "string",
      "description": "Optional for \"clone\". The region for the new app; defaults to the source app's region."
    },
    "tables": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "table_name",
          "user_column"
        ],
        "properties": {
          "table_name": {
            "type": "string",
            "description": "Table name to enable user isolation on"
          },
          "user_column": {
            "type": "string",
            "description": "Column storing the user ID (e.g. \"user_id\", \"author_id\")"
          },
          "public_read_column": {
            "type": "string",
            "description": "Optional boolean column (e.g. \"is_published\"). Creates SELECT policies so all users can read rows where this column is true."
          }
        },
        "additionalProperties": false
      },
      "description": "Optional for \"secure\". Tables to enable RLS user isolation on. Omit to only toggle access_mode."
    },
    "visibility": {
      "enum": [
        "private",
        "public"
      ],
      "type": "string",
      "description": "Required for \"set_visibility\". Template visibility."
    },
    "access_mode": {
      "enum": [
        "public",
        "authenticated"
      ],
      "type": "string",
      "description": "Required for \"update_access_mode\". \"public\" allows anonymous access, \"authenticated\" requires end-user JWT or API key."
    },
    "dest_region": {
      "type": "string",
      "description": "Required for \"move\". Target region slug (e.g. \"us-west-2\")."
    },
    "webhook_url": {
      "type": "string",
      "format": "uri",
      "description": "Required for \"set_clone_webhook\" (unless clear_webhook is true). HTTPS URL to receive clone event POST requests."
    },
    "migration_id": {
      "type": "string",
      "description": "Required for \"move_status\" and \"teardown_source_replica\". The migration ID returned by action: \"move\"."
    },
    "clear_webhook": {
      "type": "boolean",
      "description": "Optional for \"set_clone_webhook\". Pass true to remove the clone webhook instead of setting one."
    },
    "source_app_id": {
      "type": "string",
      "description": "Required for \"clone\" and \"preview_clone_env_vars\". The id of the public app to clone."
    },
    "env_var_values": {
      "type": "object",
      "description": "Optional for \"clone\". Per-function env var values: { fn_name: { KEY: \"value\" } }. Use preview_clone_env_vars to see what keys the source needs.",
      "additionalProperties": {
        "type": "object",
        "additionalProperties": {
          "type": "string"
        }
      }
    },
    "webhook_secret": {
      "type": "string",
      "maxLength": 256,
      "minLength": 16,
      "description": "Required for \"set_clone_webhook\" (unless clear_webhook is true). Secret used to sign the HMAC-SHA256 webhook payload (16–256 characters)."
    },
    "allowed_origins": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uri"
      },
      "minItems": 1,
      "description": "Required for \"update_cors\". Array of allowed origin URLs (e.g. [\"http://localhost:3000\", \"https://myapp.com\"])"
    },
    "auto_mint_api_key": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "fn_name",
          "key"
        ],
        "properties": {
          "key": {
            "type": "string"
          },
          "fn_name": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "description": "Optional for \"clone\". Keys to auto-mint a scoped bb_sk_* into, typically [{ fn_name: \"agent-chat\", key: \"BUTTERBASE_API_KEY\" }]."
    }
  },
  "additionalProperties": false
}

What this tool wraps· 0 endpoints

min confidence0.700.50

No endpoints wrapped at confidence ≥ 0.70.

Parent server

io.github.butterbase-ai/mcp

https://github.com/butterbase-ai/butterbase-oss

1/7 registries
View full server →
manage_app — io.github.butterbase-ai/mcp — PRSM MCP