Staticbot
Deploy websites, migrate app backends, and run continuous sync with explicit approval gates.
Connector by bitfiction · GitHub account verified by the MCP Registry
Chalk Labs
Need help deploying Staticbot?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/bitfiction-staticbot
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 26, 2026.
- Tools
- 50 read · 24 write · 20 delete · 1 not yet classified
- Secrets
- 1 (API keys, tokens or passwords)
- Install scripts
- None found
- Runs as
- Node.js package
Tools by what they do 95
Read from the source code; the running server may list different tools.
Read 50 · Look things up without changing anything.
download_packageget_account_statusget_app_secretsget_auto_deploy_infoget_auto_deploy_settingsget_clean_target_planget_connected_projectget_connected_project_operationsget_deploymentget_migrationget_migration_deploymentsget_migration_discovery_report
Show 38 more tools
get_migration_discovery_revisionget_migration_execution_revisionsget_migration_handoff_reportget_migration_job_historyget_migration_jobsget_migration_live_commit_checkget_migration_live_siteget_migration_overviewget_migration_preview_evidenceget_stackget_supabase_project_statusget_sync_runget_sync_run_jobsget_sync_schema_gapsget_templateget_website_scanlist_aws_hosting_targetslist_base44_appslist_cloudflare_hosting_targetslist_connected_project_previewslist_connected_projectslist_deploymentslist_github_repositorieslist_integration_instanceslist_migration_discovery_revisionslist_migrationslist_pending_actionslist_platform_updateslist_rollback_versionslist_source_repositorieslist_stack_template_updateslist_stackslist_supabase_organizationslist_supabase_projectslist_supabase_regionslist_sync_runslist_templatespreflight_cloudflare_hosting
Write 24 · Create, change, send or run things.
adopt_stack_template_updatecheck_platform_updatescreate_deploymentcreate_migrationcreate_migration_previewcreate_stackcreate_supabase_projectcreate_templatedismiss_platform_updateinspect_migration_sourcepause_migrationrecheck_dns_verification
Show 12 more tools
recheck_migration_gateresume_migrationretry_migration_jobretry_sync_runscan_websiteset_connected_project_sync_modeset_migration_gating_levelset_migration_live_sitesetup_connected_project_webhookstart_deploymenttrigger_syncupdate_auto_deploy_settings
Delete 20 · Delete, drop, revoke or wipe things.
apply_platform_updatesbuild_connected_project_previewchoose_backend_switchoverchoose_data_import_methodchoose_frontend_deployclean_migration_targetcomplete_migration_jobconfirm_migrationconfirm_sync_rundisable_connected_project_webhookpush_dns_to_cloudflareredeploy_website
Show 8 more tools
reset_connected_project_webhookresolve_schema_gaprollback_websiteskip_migration_jobskip_sync_runswitch_connected_project_live_branchsync_connected_project_to_livevalidate_function_url
Not yet classified 1 · We could not tell from the name and description.
dispatch
Secrets and settings it asks for
Secrets: values you paste in that let it act as you.
STATICBOT_API_KEY
Network hosts it talks to 7
app.staticbot.dev· found in codedevelopers.openai.com· found in codegithub.com· found in codegitlab.com· found in codejson.schemastore.org· found in codeparity.example.invalid· found in codestaticbot.dev· found in code
Tools (95)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
adopt_stack_template_updateMove a stack onto the newest version of one of its infrastructure templates, keeping its config overrides. This deploys nothing: live infrastructure changes only when the infrastructure is redeployed afterwards. Ask the user before adopting, and suggest previewing with a plan on the latest version first. Get `templateId` from list_stack_template_updates.
apply_platform_updatescan change or delete dataApply selected platform updates. First show the user each update's whatApplyingDoes and get their explicit approval; a required update is not approval. It changes the customer's backend, or commits to Staticbot's branches and opens pull requests on the customer's. Returns the sync run to follow.
build_connected_project_previewcan change or delete dataBuild or refresh the project's live-tracking branch preview. Inspect get_connected_project_operations and obtain explicit approval first: this can provision preview infrastructure and replace an existing preview. A queued response is not success; monitor list_connected_project_previews and get_deployment. This does not itself approve or promote production.
check_platform_updatesRe-run a connected project's platform-update checks. IMPORTANT: this also starts applying any AUTOMATIC update that is needed, as the daily check would. Tell the user that before calling it. GATED updates keep waiting for approval.
choose_backend_switchovercan change or delete dataChoose how to handle backend switchover in Phase 7. Call when MANUAL_CHOOSE_BACKEND_SWITCHOVER is READY. IMPORTANT: You MUST present these options to the user and ask them to choose before calling this tool. Four `choice` values are supported (use the literal string in your `choice` arg): 1. 'switch-fully-to-supabase' (method='auto') — Staticbot opens a GitHub PR that replaces ALL Supabase env vars (URL, anon key) in the repo with the migrated target's values. After the PR is merged, BOTH the source platform's previews AND production use the new Supabase. This is the 'I'm leaving Lovable/Bas…
choose_data_import_methodcan change or delete dataChoose how to import data in Phase 3. Call this when a MANUAL_CHOOSE_DATA_IMPORT_METHOD job is READY. IMPORTANT: You MUST present these options to the user and ask them to choose before calling this tool: 1. 'automated' (recommended) — Staticbot deploys an edge function, exports data, imports to target, copies storage, migrates secrets/cron/auth. Fully automated. 2. 'manual' — User exports data from Lovable and imports via Supabase SQL editor themselves. Do NOT pick an option without asking the user first. When the source check (PROBE_SOURCE) already deployed and verified the export funct…
choose_frontend_deploycan change or delete dataChoose how to handle frontend deployment in Phase 8 (Next Steps). Call when MANUAL_CHOOSE_FRONTEND_DEPLOY is READY. IMPORTANT: You MUST present these options to the user and ask them to choose before calling this tool: 1. 'continuous-sync' (method='continuous-sync', choice='setup-continuous-sync') — Sets up automatic GitHub-to-target sync. Every push to the repo automatically deploys to the new Supabase. Recommended for most users. 2. 'staticbot' (method='staticbot', choice='deploy-with-staticbot') — Deploy the frontend with Staticbot. Staticbot analyzes the repository and selects the supp…
clean_migration_targetcan change or delete dataDestructively clean conflicting objects from a Supabase Cloud migration target before execution starts. Call get_clean_target_plan first and take confirmProjectRef from its response — it reports the live state and whether cleanup is even available. DATABASE deletes user-created database objects, Supabase migration history, and existing authentication users/sessions while preserving Storage. STORAGE empties and deletes every Storage bucket and file while preserving database/auth data. PROJECT performs both cleanups. This cannot be undone. Before calling, get the migration, present the exact sco…
complete_migration_jobcan change or delete dataComplete a manual job that requires user action. Used for jobs with type MANUAL_SYNC_LOVABLE, MANUAL_SYNC_BASE44, MANUAL_EXPORT_DATA, MANUAL_IMPORT_DATA, etc. The job must be in READY status. For MANUAL_SYNC_LOVABLE / MANUAL_SYNC_BASE44 you normally do NOT need this tool: ask the user to open their Lovable project and paste 'deploy staticbot edge function' into the Lovable AI chat (Base44: sync the project from GitHub). Staticbot detects the deployed function and completes the step by itself within about 15 seconds — poll get_migration, or call validate_function_url to check immediately (a rea…
confirm_migrationcan change or delete dataApprove the exact reviewed discovery plan, resolve a pre-flight strategy choice, or resume an already approved, execution-compatible migration. Initial execution writes tables and data to the target: first fetch get_migration_discovery_report, present its findings, unknown coverage, proposed work and approvalBlockers, obtain the user's explicit approval, then send that report's revisionId as approvedRevisionId. On a stale-plan 409, fetch and present the updated report and ask again; never substitute a revision automatically. With gateChoice, this records the strategy and returns to review at e…
confirm_sync_runcan change or delete dataConfirm a sync run that is PAUSED_FOR_REVIEW. Destructive database migrations (DROP TABLE, ALTER COLUMN) pause the sync for review before applying. Optionally skip the destructive migrations instead of applying them. WARNING: skipDestructive is PERMANENT, not a deferral. The run still completes, so the next sync diffs from this run's commit and the skipped migrations are never re-applied — they stay in the repo, absent from the live database, and nothing reports the divergence. Later migrations that assume the change will fail with errors that look unrelated. The API returns 400 unless acknowl…
create_deploymentCreate a new deployment for a stack. This prepares the deployment but does NOT start it — call start_deployment next. Default type is APPLY (creates real resources). Use PLAN for a dry-run preview. For an AWS-hosted stack, call list_aws_hosting_targets with the stackId first and pass the selected option's exact `value` as targetAccountId. That value DECIDES infrastructure ownership: the managed value means Staticbot-managed hosting and a customer account value means customer-managed hosting. Never invent an account id or send infrastructureOwnership. Do not set cloudflareChoice or cloudflare…
create_migrationCreate a new migration. Starts a multi-phase pipeline: Discovery → DB Migration → Data Import → Edge Functions → Storage Buckets → Auth Config → Backend Switchover → Preview & Verify → Continuous Sync → Download → Follow-ups. Two delivery modes via targetType: • SUPABASE_CLOUD (default) — Staticbot applies the migration end-to-end against a managed Supabase project you own. Requires targetSupabaseProjectRef plus the Supabase integration instance. • SUPABASE_SELF_HOSTED — Staticbot runs discovery + data export, then produces a downloadable AES-256-encrypted zip the user applies to their se…
create_migration_previewTrigger (or retrieve) a preview deployment for a migration. The preview builds the migrated app on Staticbot's infrastructure so the customer can verify it works before finalising backend switchover. Optional mode: 'light' (fast, single SOFTWARE job) or 'full'.
create_stackCreate a new infrastructure stack from a template. A stack ties a template to a domain and becomes deployable. Call list_templates first to find the right templateId. Staticbot analyzes the template's repository and owns the hosting decision: static sites route to the supported AWS static target, SSR/full-stack apps route to the supported Cloudflare Workers target. Report the returned `hostingWorkload`, `deploymentTarget`, and `infrastructureOwnership` fields to the user. **Never invent a provider or an account.** Cloudflare alone accepts an account-placement default during stack creation bec…
Show 80 more tools
create_supabase_projectCreate a new project directly inside the customer's selected Supabase organization. This changes an external account, consumes a project slot, and may affect the customer's Supabase billing. Before calling, use list_supabase_organizations and list_supabase_regions, present the exact project name, organization, and region, and obtain the user's explicit confirmation. Staticbot generates and encrypts the database password; it is intentionally never returned through MCP. Provisioning is asynchronous: after creation, call get_supabase_project_status with the returned id until healthy=true. Do not …
create_templateCreate a new template by scanning a source repository (GitHub or GitLab). Auto-detects platforms, env vars, and builders. Both public and private repositories are supported through the organization's connected Staticbot source-control integration. Before asking the user for a URL, call list_source_repositories and use an unambiguous repository match from the current client/project context, passing that repository's integrationInstanceId as sourceControlIntegrationInstanceId — with several accounts connected, only that one's token can read the repo, and omitting it makes a private repository lo…
disable_connected_project_webhookcan change or delete dataClear the repository's webhook configuration and request upstream deletion; pushes stop triggering its Staticbot automation. First inspect get_connected_project_operations and show every affected project and the template count sharing the repository webhook. Obtain explicit approval for that scope before confirmed=true. Copy webhook.repositoryConfigId to expectedRepositoryConfigId; do not invent it. On changed-target 409 inspect and ask again. This supports GitHub only, and agency client projects must use the source project's webhook. Secrets remain server-side. Reset and disable use best-effo…
dismiss_platform_updateDismiss an OPTIONAL platform update when the user asks to decline it. Required updates cannot be dismissed.
dispatchdownload_packageread-onlyFetch the downloadable migration package for a migration. Returns a presigned URL to the AES-256-encrypted zip plus the password to extract it. Availability: • SUPABASE_SELF_HOSTED: this is the delivery mechanism. The user unzips with the password, runs Claude Code against the folder, and follows the bundled CLAUDE.md to apply the migration to their self-hosted Supabase. • SUPABASE_CLOUD: this is a portable backup of the applied migration (re-applicable to any Supabase later). The package is ready once the GENERATE_PACKAGE job is COMPLETED — check via get_migration_jobs first. Calling be…
get_account_statusread-onlySTART HERE for deployment, migration and sync. For a public website check, scan_website can run directly before any integrations are connected. This account check answers in one request who the credential belongs to, which integrations are connected, what the plan allows, and what is actually outstanding — so you never propose work whose prerequisites are missing. Read `pendingAction` and follow it, exactly as you would follow a migration's pendingAction: • CONNECT_SOURCE_CONTROL / CONNECT_DATABASE — deployment/migration prerequisites are missing. Give the user the `url` and stop; do not pro…
get_app_secretsread-onlyWhich secrets (API keys for third-party services — Stripe, OpenAI, AWS and the like) a migrated app uses, which already have a value, what the app uses each for, and where a saved value is applied — names and states only, never a value. Pass connectedProjectId for a project (the app after go-live), migrationId for a migration, or stackId for a stack that deploys a migrated app (its preview, or a hosted version, including ones Continuous Sync minted). A project's answer is per ENVIRONMENT — what its deployments run against (the Supabase project and its values). An environment is not a pipeline …
get_auto_deploy_inforead-onlyCheck whether Automatic Updates are available for a deployment and inspect its GitHub webhook state. Returns fields including `available`, `webhookConfigured`, `canSetupWebhook`, and `isGithubRepo`. Automatic Updates do not apply to preview stacks.
get_auto_deploy_settingsread-onlyGet the automatic-update flags for a deployment. `autoDeployLatestWebsite` controls whether a new website template version is deployed automatically; `autoDeployLatestInfra` is reserved for infrastructure updates.
get_clean_target_planread-onlyInspect a destructive target cleanup BEFORE asking the user to authorize it. Always call this immediately before presenting cleanup, and never rely on the targetConflictReport from an earlier get_migration: that is a snapshot taken at discovery, while this is the current state of the target. Returns `available` (cleanup is only possible before execution starts, and only for Supabase Cloud targets) with `unavailableReason` when it is not, the exact `confirmationProjectRef` the user must approve, `countsAvailable` plus live per-scope `rows` describing what each of DATABASE, STORAGE and PROJECT w…
get_connected_projectread-onlyGet details of a connected project including sync mode, webhook status, linked migration, and deployment.
get_connected_project_operationsread-onlyInspect a connected project's current builder/live branch targets, effective permissions, and repository webhook scope, including other projects/templates sharing that webhook. Read this before proposing a preview build, live-branch switch, sync-to-live or webhook change. Permission flags are role permissions; feature flags and current workflow state can still block an action. Reading does not fetch Git or change a repository, webhook or deployment. Contains no webhook secret.
get_deploymentread-onlyGet the status of a deployment and the per-domain DNS state. Poll this for progress. Statuses: CREATED → PENDING → IN_PROGRESS → WAITING → COMPLETED (or FAILED). **Response fields you should always read:** - `status` — pipeline state. - `dns` — per-domain DNS state, populated once Terraform emits a state snapshot. Present regardless of `status`; check it on every poll, not just on WAITING. - `requiredAction` — legacy; only set when `status=WAITING` and there are records to add. Prefer `dns`. **For each entry in `dns`, read `action` and behave as follows:** - `NO_ACTION` — registrar NS alread…
get_migrationread-onlyGet detailed migration state and next-action context. Use get_migration_overview for routine status polling; this detailed tool remains available whenever the full context is needed. Get the current status and phase breakdown of a migration. The response includes all migration phases (Discovery, DB Migration, Data Import, Edge Functions, Storage Buckets, Auth Config, Backend Switchover, Preview & Verify, Continuous Sync, Download, Follow-ups) with their individual statuses, plus sourceType (LOVABLE_SUPABASE / BOLT_SUPABASE / FIREBASE / BASE44_SUPABASE / BASE44_NATIVE), targetType (SUPABASE_CLO…
get_migration_deploymentsread-onlyList all AWS deployments associated with a migration's infrastructure stack. Migrations that deploy to AWS (self-hosted Supabase) create deployments for the infrastructure provisioning.
get_migration_discovery_reportread-onlyRead the migration's discovery report and its revisionId. Present source coverage (including unknown or partial areas), findings, proposed work and approvalBlockers before asking the user to approve initial execution. Reading may retain a proposal but never starts migration or records approval. Send the exact reviewed revisionId as approvedRevisionId to confirm_migration only after explicit approval. A stale-plan 409 needs a fresh report and a new approval; never approve a changed revision automatically. Inspect sourceInspection.supported/available/inProgress/reason: optional inspect_migration…
get_migration_discovery_revisionread-onlyRead a retained, sanitized discovery report by revisionId, including its recorded approval. Historical reports are read-only evidence, not a current approval candidate: use get_migration_discovery_report to review the current plan before confirm_migration. Missing historical reports return an error and must not be reconstructed or replaced silently. Reading never refreshes the source or changes execution.
get_migration_execution_revisionsread-onlyRead retained, sanitized migration execution revisions. A discovery proposal or legacy baseline is not proof of approval; get_migration_discovery_report identifies the approved report. Opaque code, SQL and credentials are withheld. Reading never starts work or activates a replacement plan.
get_migration_handoff_reportread-onlyRead the sanitized Markdown handoff report: source inventory, gaps, manual actions, AI remediation prompts, names-only secret checklist, current execution/job-attempt evidence, preview and generated cron activation SQL when available. Optional revisionId selects retained discovery evidence; execution evidence still describes current execution, not a historical execution snapshot. Share this concrete checklist with the customer. Reading does not approve, retry, deploy or activate anything. Migrated schedules are staged inactive. At cutover the customer reviews and runs the exact guarded activat…
get_migration_job_historyread-onlyRead retained, sanitized job attempts and amendments, newest payload versions first, including deleted queue jobs. Use the oldest returned payloadVersion as the exclusive beforeVersion cursor for another page. Missing historical evidence remains unknown; credentials and opaque SQL/code bodies are withheld. Reading never retries or repairs work.
get_migration_jobsread-onlyGet all jobs for a migration. Jobs are the individual work units within each phase (e.g. 'migrate_schema', 'import_data', 'deploy_edge_function_X'). Use this to understand what's happening at a granular level, diagnose failures, or find a jobId for retry/skip. For IN_PROGRESS long-running jobs (e.g. CALL_EXPORT_TO_TARGET on multi-table sources), each job's `progressMessage` field carries a human-readable subtitle like "Exporting table 'startups' (8/10)" so you can report concrete progress without waiting for completion. Each job also carries `skipGuard`: null means it is freely skippable, non-…
get_migration_live_commit_checkread-onlyRead the latest retained comparison of a migration's deployed live commit with its configured repository and branch. Report verdict, needsAttention, checkedAt and message. UNKNOWN or null means missing evidence, never a successful match. Reading does not perform a fresh Git probe or modify a branch; do not present retained evidence as a new live verification.
get_migration_live_siteread-onlyRead the migration's stored live-site scan. A null result means no live URL has been checked. For QUEUED/RUNNING wait pollAfterMs and read again; failures are terminal. This reads the migration-linked scan rather than a standalone website check. Returns the customer summary without raw scripts, extracted credentials or contact history. Does not start target migration writes.
get_migration_overviewread-onlyRead a lightweight migration overview. Prefer this for routine status polling; respect pollAfterMs (0 means stop) and compare version to detect overview changes. Returns phase/job counts, a bounded list of jobs needing attention, saved discovery report metadata/blockers, executionCompatibility, and independent preview status. No inventory, SQL, job inputs/outputs or history is loaded. No source probe, report capture, approval or writes occur. The saved report summary is not a current approval candidate. Before acting or explaining a waiting choice, read get_migration and, as appropriate, get_m…
get_migration_preview_evidenceread-onlyRead the backend's deterministic migration preview evidence: what worked, what failed and what remains unverified, from deployment, HTTP checks, browser rendering and restore audits. Call before claiming a migrated preview works. Preserve unverified findings as unknown, never as passes. Reading does not create a preview, start a scan, approve or resume work. Available even when migration execution is locked.
get_stackread-onlyGet details of a stack including its templates and config overrides. Every override key is listed; values are returned for location-shaped keys (URLs, regions, names, branches) and "[REDACTED]" for credential-shaped ones.
get_supabase_project_statusread-onlyRead the lifecycle state of a Supabase project created or selected through Staticbot. After create_supabase_project, poll this tool until healthy=true before using the project as a migration target. A transitioning state means wait; it is not permission to create another project. Stop and report the returned state if unavailable=true.
get_sync_runread-onlyGet details of a specific sync run including status, source and target repository versions, summary of changes, and error information. Use the returned version fields when explaining or reviewing the diff; do not infer them. Statuses: PENDING → IN_PROGRESS → COMPLETED/FAILED. Destructive migrations cause PAUSED_FOR_REVIEW.
get_sync_run_jobsread-onlyGet all jobs for a sync run. Jobs are the individual work units (e.g. apply_migration, deploy_edge_function, frontend_deploy). Use this to diagnose sync failures at the job level.
get_sync_schema_gapsread-onlyList SQL migrations that continuous sync was asked to apply to this project's live database and never applied — a run failed and was never retried, or the work was skipped — where the diff window has since moved past them, so no future sync will re-offer them. Each entry means the file exists in the repo and is missing from the database. An empty list is the healthy case. Report these to the user; do NOT try to re-apply them automatically — replaying months-old DDL against a live database is the user's decision.
get_templateread-onlyGet details of a template including its backend-classified configuration variables. Each entry has `key`, `configured` (whether a value is set at all), and sanitized `value`. Staticbot never returns credential values, so read `configured` to tell "withheld" apart from "not set". For migrations, follow `migrationAction`, `collectionStage`, `sensitivity`, `resolution`, `integration`, and `migrationHint`; do not infer meaning or safety from prefixes. Include a configOverride only when `migrationEditable=true`. `migrationBackendDerived=true` means Staticbot derives the value from target state and …
get_website_scanread-onlyRead a website scan belonging to the current Staticbot workspace. Use the exact scan.id returned by scan_website. Poll QUEUED/RUNNING scans using pollAfterMs; COMPLETED, FAILED and REJECTED are terminal. Explain detection limits and failures without inventing results. Returns the customer summary without raw scripts, extracted credentials or contact history. Does not fetch the target website again or start any migration or deployment.
inspect_migration_sourceQueue deeper source inspection before discovery-plan approval or execution. First read get_migration_discovery_report and get_migration: stop if executionCompatibility.locked is true. Offer inspection only when sourceInspection.supported and sourceInspection.available are true; if inProgress, poll instead of duplicating it, otherwise explain reason. This commits the source helper to the source repository and deploys it to the source account, or asks the customer to sync it manually. Obtain explicit authorization for those source changes and send authorizeHelperDeployment=true; reading a report…
list_aws_hosting_targetsread-onlyUse this when an existing stack's deploymentTarget is AWS_STATIC and you need to choose which AWS account will own its next deployment. Call it with that stack's stackId before create_deployment because managed-account eligibility and the current selection are stack-specific. Render the response; do not derive or repair it: - `managed` is the Staticbot-hosted option. It can be null; when null, do not offer it. - `customerOptions` contains ready-to-render `label`s and opaque `value`s for connected customer accounts. - `notices` explains why an option is absent or unusable. Surface every notice…
list_base44_appsread-onlyList the Base44 apps a connected Base44 integration can migrate. Call this before create_migration for any BASE44_NATIVE migration: a Base44 personal access token is scoped to a WORKSPACE and reaches every app in it, so the integration alone does not identify which app to migrate. Pass the chosen app's `id` as create_migration's `base44AppId`. Ask the user which app when more than one is returned — never guess, and never assume the first or the most recently edited one is meant. Migrating the wrong app is not cheaply reversible. An empty list means the token cannot see any apps: usually a toke…
list_cloudflare_hosting_targetsread-onlyList the Cloudflare accounts this app can be hosted in: Staticbot's managed account (the default) plus any Cloudflare account the user has connected. Call this before create_stack or create_deployment for a Cloudflare Workers / SSR app whenever the user has a connected Cloudflare account and might want the Worker deployed into it rather than hosted by Staticbot. Read the response, do not compute from it: - `managed` is the Staticbot-hosted option. It is always present and always valid. - `customerOptions` lists the user's own accounts — each with a ready-to-render `label` and the `value` you …
list_connected_project_previewsread-onlyList every tracked branch preview for a connected project, including the preview deployment ID, raw deployment status, preview URL, and dashboard status URL. Always use deploymentStatus to distinguish builds in progress from FAILED, ABORTED, or COMPLETED previews; hasPreview only means preview resources exist.
list_connected_projectsread-onlyList all connected projects. Connected projects sync changes from a GitHub repo to a target Supabase instance and optional Staticbot deployment. After a migration completes, enable continuous sync to keep the target up-to-date with Lovable, Bolt, Base44, or Firebase changes.
list_deploymentsread-onlyList all deployments. Optionally filter by stackId. Each deployment represents one execution of a stack's infrastructure.
list_github_repositoriesread-onlyDeprecated — use list_source_repositories, which serves GitHub and GitLab through one tool. Lists the public and private GitHub repositories accessible through a connected Staticbot GitHub integration: call list_integration_instances first, then pass the selected GitHub instance ID here. Returns a flat array whose repository URL field is `htmlUrl`. Never claim that Staticbot requires a public repository.
list_integration_instancesread-onlyList all connected integrations for the organization. Each instance has a 'type' field identifying whether it is 'supabase', 'github', 'base44', etc. Use the instance with type='supabase' as supabaseIntegrationInstanceId, type='github' as githubIntegrationInstanceId, and type='base44' as sourceIntegrationInstanceId (for BASE44_NATIVE migrations) when calling create_migration. To resolve a repository, call list_source_repositories instead — it covers every connected source-control account in one call and reports which account each repository is hosted in. Use this tool for the supabase/base44 i…
list_migration_discovery_revisionsread-onlyList retained discovery report revisions, newest first, with revisionId, revisionNumber, approval time and active status. Use the oldest returned revisionNumber as the exclusive beforeRevision cursor for another page. Reading never queries the source, approves or starts work. Legacy reports that were not retained remain unknown; do not fabricate them.
list_migrationsread-onlyList all migrations. Optionally filter by status. Migrations orchestrate moving a full project (database, auth, storage, edge functions) from a source platform (Lovable, Bolt, Firebase, Base44) to target Supabase infrastructure.
list_pending_actionsread-onlyList the workspace's open pending actions, newest first: for example a required platform update waiting for approval, or a pull request Staticbot opened that needs merging. Tell the user about actionable items; never apply a platform update without their confirmation.
list_platform_updatesread-onlyList a connected project's post-migration platform updates: what each fixes, its policy (AUTOMATIC, GATED, OPTIONAL), the versions it affects, what its last check found, what applying does (whatApplyingDoes), and which branches run on the migrated backend.
list_rollback_versionsread-onlyList the recent commit-pinned website template versions that are valid rollback targets for a deployment, newest first. Use only a returned `templateId` with rollback_website; do not infer a target from a commit SHA or version label.
list_source_repositoriesread-onlyList all public and private repositories accessible through the organization's connected Staticbot source-control integrations — GitHub and GitLab. Call this whenever a workflow needs a repository, with NO arguments: it covers every connected account in one call. An organization can connect several accounts on the same provider, and passing one instance ID narrows the listing to that account, which hides the others' repositories — only do that when the user has already chosen an account. The response is { sources[], repositories[] }. Each repository has `fullName`, `webUrl`, `private`, `descri…
list_stack_template_updatesread-onlyList newer versions of a stack's infrastructure templates (for example a Staticbot-published update to the built-in AWS static-website infrastructure). Empty when the stack already uses the newest version of each. Each entry carries the current `templateId` to pass to adopt_stack_template_update, the current and latest versions, and a `message` to relay to the user.
list_stacksread-onlyList all infrastructure stacks. A stack groups one or more templates with a domain assignment. Each stack can have multiple deployments.
list_supabase_organizationsread-onlyList the Supabase organizations accessible through a connected Supabase integration instance. Call this before create_supabase_project and present the organization names to the user. Use the selected organization's id unchanged as organizationId. Do not guess an organization when more than one is available.
list_supabase_projectsread-onlyList all Supabase projects accessible through a connected Supabase integration instance. Returns project name, reference ID, region, and status. Use the project's id field as targetSupabaseProjectRef when creating a migration. Only ACTIVE_HEALTHY projects can be used as targets. Present the list and let the user choose an existing target, or offer to create a customer-owned project with create_supabase_project.
list_supabase_regionsread-onlyList the regions Staticbot supports when creating a customer-owned Supabase project. Call this before create_supabase_project and use the user's selected region id unchanged. When the user has not expressed a location preference, explain the available choices rather than silently choosing one.
list_sync_runsread-onlyList sync run history for a connected project. Each sync run represents one execution of the sync pipeline — applying migrations, deploying edge functions, and rebuilding the frontend.
list_templatesread-onlyList available templates (slim response: id, name, category, repoLink). Use get_template to see full details including config variables. Templates feed both hosting and migration. Reuse an exact repository match when one exists; otherwise create a new template from the repository resolved through list_source_repositories. Ask the user to choose only when multiple existing templates or repositories are plausible — and when two repositories share a name, show which account each is hosted in (sourceLabel) so the choice is meaningful.
pause_migrationPause a running migration. The current in-progress job will finish, but no new jobs will be started. Use resume_migration to continue later.
preflight_cloudflare_hostingread-onlyCheck that a hosting choice and hostname can actually be deployed, before create_stack or create_deployment. Read-only: it never creates, deletes or takes over anything. It answers for the managed choice too, so call it the same way whichever option the user picked. **How to use the result:** - `ok: true` — deployable. Report `connectionLabel`, and `hostname` / `workerName` when present. `note` may add useful context (for example that an apex hostname is supported). - `ok: false` — **do not create anything.** Show the user `blockingMessage` verbatim; it names the exact collision and what to f…
push_dns_to_cloudflarecan change or delete dataPush a deployment's certificate-validation and website-routing DNS records into the customer's linked Cloudflare zone. This is an external DNS write, although it is idempotent and never changes nameservers or mail records. First call get_deployment and select the exact dns item whose action is OFFER_CLOUDFLARE_PUSH; pass the deployment response's id as deploymentId and that DNS item's domainId as domainId. Present the intended action and obtain the user's authorization before calling. Do not infer a domain ID, use this for MANUAL_RECORDS_AT_REGISTRAR, or describe it as DNS delegation. Present …
recheck_dns_verificationAsk Cloudflare to retry custom-hostname domain-control validation for a Cloudflare Workers deployment, then return refreshed certificate and hostname-routing status. Call this after DNS records were published or when the user explicitly asks to recheck verification. This action does not write DNS records or change nameservers. A null result means the deployment has no applicable Cloudflare custom hostname. Surface verificationErrors and do not report the domain live unless both customHostnameStatus and hostnameStatus are active.
recheck_migration_gateRun a pre-flight gate's re-check action: the enabled action in get_migration.preFlightGate.actions whose ID is RECHECK_EXPORT, RECHECK_OFFICIAL_EXPORT, RECHECK_CAPACITY or RECHECK_TARGET_EMPTY. These never go to confirm_migration, which refuses them. A re-check only queues a fresh measurement: it does not confirm or start the migration, and the migration stays paused. Each assumes the user fixed something outside Staticbot first, so ask them to do that and confirm it is done before calling: RECHECK_EXPORT / RECHECK_OFFICIAL_EXPORT — they created a Cloud Data export in their Lovable project (St…
redeploy_websitecan change or delete dataRebuild and redeploy the static website component. By default it redeploys the currently pinned template version; set `useLatest=true` to pull the latest version first. Returns the worker job ID; poll get_deployment to track progress.
reset_connected_project_webhookcan change or delete dataReplace the repository's GitHub webhook and rotate its internal secret; this affects push-triggered automation. First inspect get_connected_project_operations and show every affected project and the template count sharing the repository webhook. Obtain explicit approval for that scope before confirmed=true. Copy webhook.repositoryConfigId to expectedRepositoryConfigId; do not invent it. On changed-target 409 inspect and ask again. This supports GitHub only, and agency client projects must use the source project's webhook. Secrets remain server-side. Reset and disable use best-effort upstream d…
resolve_schema_gapcan change or delete dataResolve a MANUAL_REVIEW_SCHEMA_GAP gate: the source database has objects the repository's migration files don't declare. The gate's inputData.summary.builder_chat_prompt (get_migration_jobs) is the prompt the user pastes into their AI builder so it adds them. IMPORTANT: You MUST present these options to the user and ask them to choose before calling: 1. 'reprepare' — once the builder has pushed the missing migration files: Staticbot re-reads the source branch at its newest commit, re-runs discovery and rebuilds the plan. This replaces the approved plan, so the migration returns to CONFIRM an…
resume_migrationResume a migration that is PAUSED_BY_USER or PAUSED_FOR_USER_ACTION. Use this after the user has completed the required manual step (e.g. DNS configuration, backend switchover review).
retry_migration_jobRetry a failed migration job, or a skipped one whose `retryableAfterSkip` is true. It will be reset to READY and picked up by the worker again. A skipped SQL file can be retried while the migration is paused: it runs first, and whatever step is failing then runs again after it; retry one skipped file at a time. Use get_migration_jobs first to find the job's ID, error message and retryableAfterSkip.
retry_sync_runRetry a connected-project sync run in FAILED status. Resets its failed jobs to PENDING and reopens the run. Use get_sync_run and get_sync_run_jobs first to explain the failure to the user.
rollback_websitecan change or delete dataRoll a static website back to a specific commit-pinned template version. Call list_rollback_versions first. IMPORTANT: Present the exact returned target version and commit to the user and get explicit confirmation before calling this tool. Never supply an inferred or unverified template ID. Returns the worker job ID; poll get_deployment to track progress.
scan_websiteAnalyze a public website URL before deciding whether to host or migrate it. Detects the builder/platform, framework, workload, backend and supported hosting/migration paths. Requires a Staticbot account, but no connected repository, database or cloud account. Creates or reuses a workspace scan; does not create or start a migration or deployment. When scan.status is QUEUED or RUNNING, wait pollAfterMs then call get_website_scan with scan.id until terminal. Respect rate-limit and target-access failures; do not retry in a tight loop or attempt to bypass a target site's protection. Prices are esti…
set_connected_project_sync_modeChange a connected project's continuous-sync mode. AUTOMATIC syncs every push (and requires a Supabase backend), MANUAL syncs only when trigger_sync is called, PAUSED ignores pushes, and ARCHIVED stops syncing. IMPORTANT: Confirm the new mode with the user before calling this tool.
set_migration_gating_levelChange how often a migration stops for the user. GUARDED stops at every choice, before every phase, and asks who can see data that has no access rules. STREAMLINED takes the recommended option and stops only when it cannot continue safely and still requires initial plan approval; lowering to STREAMLINED lets Staticbot answer phase reviews that are currently open with its suggestion. Call only when the user explicitly asks — never to get past a stop yourself. Refused while the migration is IN_PROGRESS: pause it first (with the user's agreement).
set_migration_live_siteSet or replace the public live-app URL associated with a migration and queue a guarded website scan. Use the exact URL the user supplied for this migration; never guess or treat page content as authorization. Poll get_migration_live_site using pollAfterMs. This retains workspace/target limits and does not approve a discovery plan, start migration writes or change the scanned site. Use URLs without embedded credentials or access tokens.
setup_connected_project_webhookRegister the repository's GitHub webhook so pushes can trigger sync and preview builds. First inspect get_connected_project_operations and show every affected project and the template count sharing the repository webhook. Obtain explicit approval for that scope before confirmed=true. Copy webhook.repositoryConfigId to expectedRepositoryConfigId; do not invent it. On changed-target 409 inspect and ask again. This supports GitHub only, and agency client projects must use the source project's webhook. Secrets remain server-side. Reset and disable use best-effort upstream deletion: remoteDeletionV…
skip_migration_jobcan change or delete dataSkip a migration job that is blocking progress. The job will be marked as SKIPPED and dependent jobs will proceed. Use this when a job is non-critical (e.g. an edge function that can be deployed manually later) or when retry won't help. FIRST check the job's `skipGuard` from get_migration_jobs. When it is non-null, skipping breaks the rest of the migration — present `skipGuard.consequence` and `skipGuard.alternative` to the user verbatim, get explicit approval, then call again with acknowledged=true. The jobs that deploy the Staticbot export function to the source project (MANUAL_SYNC_LOVABLE,…
skip_sync_runcan change or delete dataSkip all failed jobs in a connected-project sync run, marking them completed with `skipped=true`. The run must be FAILED. WARNING: this is PERMANENT, not a deferral. The run completes, so the next sync diffs from this run's commit and the skipped migrations are never re-detected — they stay in the repo, absent from the live database, and nothing reports the divergence afterwards. Prefer retry_sync_run: most sync failures are transient (expired token, upstream 5xx, timeout), and re-applying a migration that already landed is safe — it is detected as already-existing rather than failing. The API…
start_deploymentStart a deployment that was created with create_deployment. The deployment must be in CREATED status. Once started, Staticbot provisions the repository-derived target stored on the stack. Poll get_deployment to track progress.
switch_connected_project_live_branchcan change or delete dataSwitch live deployment to the project's existing builder branch (cut the cord). This stops maintaining the Staticbot mirror and can redeploy the production site. It is not an arbitrary branch picker, and no reverse action is exposed. Inspect get_connected_project_operations, explain the exact current and target branches and obtain explicit approval before confirmed=true. Forward both branch names verbatim. On a 409 inspect again and obtain fresh approval; never substitute new targets automatically. A branch switch can succeed while redeployment fails: report the returned message and redeployed…
sync_connected_project_to_livecan change or delete dataCheck and merge the migration preview branch onto the project's live mirror branch, creating the mirror if missing. This can write Git commits and trigger builds. Inspect project operations and branch previews first; explain the preview-to-live merge and obtain explicit approval. Forward the inspected live and builder branch names; a 409 requires fresh inspection and approval. The backend refuses merging into the builder branch and retains its feature/eligibility guards. A 202 may return an already-running runId: monitor get_sync_run/get_sync_run_jobs rather than queueing another action or cla…
trigger_syncTrigger a manual sync for a connected project. Detects changes since the last sync (new database migrations, edge function updates, frontend changes) and applies them to the target Supabase instance and the project's Staticbot-selected deployment target.
update_auto_deploy_settingsUpdate automatic-update flags for a deployment. Omitted fields keep their current values. IMPORTANT: Confirm the requested settings with the user before calling this tool.
validate_function_urlcan change or delete dataCheck that the Staticbot export edge function is reachable, and COMPLETE its sync step when it is. Use after the user pasted 'deploy staticbot edge function' into the Lovable AI chat (Base44: synced from GitHub). The function URL is in the MANUAL_SYNC_LOVABLE / MANUAL_SYNC_BASE44 job's inputData (function_url), or derive it as https://{sourceProjectRef}.supabase.co/functions/v1/{functionName}. Returns {status: 'ok'|'error', message, completed}. completed=true means the step is done — by this call or because Staticbot already detected the deployment — so do NOT call complete_migration_job after…
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Last commit
- Oct 22, 2026 (8 days ago)
- Last release
- Oct 5, 2026 (25 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
io.github.bitfiction/staticbot- Version
- 1.8.2
- Auth
- API key
- Packages
- npm @staticbot/mcp
- License
- MIT
- Repository
- github.com/bitfiction/staticbot-mcp
- First seen
- Oct 24, 2026
- Last checked
- Oct 25, 2026
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get Staticbot running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
Staticbot MCP server. Agent Mart. https://agentmart.dev/connectors/bitfiction-staticbot (last updated 2026-10-25)