Build and publish full-stack web and mobile apps on Floot from any MCP client. Building is free.
Abgeleitet aus den Transporten, die dieser Eintrag deklariert (streamable-http). Ein Client, der hier nicht steht, ist damit nicht ausgeschlossen — Forge kann ihn nur nicht bestätigen.
Die Verifizierung bestätigt die Identität des Publishers (die Inhaberschaft am Repo), nicht die Sicherheit des Codes. Der Sicherheits-Scan deckt bekannte CVEs und verdächtige Installationsskripte ab.
Aus einem echten MCP-Handshake initialize → tools/list gegen den deklarierten Endpunkt gelesen. Es wurde nie ein Tool aufgerufen — tools/list ist der lesende Introspektionsaufruf, den das Protokoll dafür vorsieht. Es spiegelt wider, was der Server in diesem Moment angeboten hat; ein gehosteter Endpunkt ist an keine Version gebunden und kann sich ohne Ankündigung ändern.
https://mcp.floot.com/mcp45 Tools · 383 mssearchSearch your Floot projects and their code. Returns result ids usable with fetch. For richer options, list_projects enumerates projects and search_code does code-level search.Search your Floot projects and their code. Returns result ids usable with fetch. For richer options, list_projects enumerates projects and search_code does code-level search.
| Parameter | Typ | Beschreibung |
|---|---|---|
| query* | string | — |
fetchFetch a search result by id: a project overview ('<projectId>') or a file ('<projectId>:<path>'). For direct access to a known file or project, read_file/list_files give more detail.Fetch a search result by id: a project overview ('<projectId>') or a file ('<projectId>:<path>'). For direct access to a known file or project, read_file/list_files give more detail.
| Parameter | Typ | Beschreibung |
|---|---|---|
| id* | string | — |
list_projectsList your Floot projects (id, name, last-updated, whether an app icon is set), most recently updated first. name_filter is a case-insensitive substring match on the stored name, which is often not the name the user uses for a project — on a small account a filter that matches nothing returns the wh…List your Floot projects (id, name, last-updated, whether an app icon is set), most recently updated first. name_filter is a case-insensitive substring match on the stored name, which is often not the name the user uses for a project — on a small account a filter that matches nothing returns the wh…
| Parameter | Typ | Beschreibung |
|---|---|---|
| limit | integer | — |
| name_filter | string | — |
list_resourcesList the env vars a project's code can use and the resources behind them: (1) resources CONNECTED to the project — usable as process.env.<NAME> in endpoint code now; (2) the owner's other account-level credentials — reusable, but not usable in code until connected; (3) everything Floot can add. Cal…List the env vars a project's code can use and the resources behind them: (1) resources CONNECTED to the project — usable as process.env.<NAME> in endpoint code now; (2) the owner's other account-level credentials — reusable, but not usable in code until connected; (3) everything Floot can add. Cal…
| Parameter | Typ | Beschreibung |
|---|---|---|
| projectId* | string | — |
| query | string | — |
list_filesList a Floot project's virtual file tree with sizes, plus its dependencies, current version (pass the version to write tools as expected_version), and current project metadata — title, description, app icon (iconUrl), splash screen, mobile app id, SSR, iOS Info.plist overrides, share target (iOS +…List a Floot project's virtual file tree with sizes, plus its dependencies, current version (pass the version to write tools as expected_version), and current project metadata — title, description, app icon (iconUrl), splash screen, mobile app id, SSR, iOS Info.plist overrides, share target (iOS +…
| Parameter | Typ | Beschreibung |
|---|---|---|
| projectId* | string | — |
read_fileRead a file from a Floot project (cat -n style). Paths follow the item scheme: components/Name.tsx, components/Name.module.css, helpers/Name.tsx, pages/name.tsx, pages/name.pageLayout.tsx, endpoints/route_POST.ts, endpoints/route_POST.schema.ts, static/file.txt, base.css. Use offset/limit for large…Read a file from a Floot project (cat -n style). Paths follow the item scheme: components/Name.tsx, components/Name.module.css, helpers/Name.tsx, pages/name.tsx, pages/name.pageLayout.tsx, endpoints/route_POST.ts, endpoints/route_POST.schema.ts, static/file.txt, base.css. Use offset/limit for large…
| Parameter | Typ | Beschreibung |
|---|---|---|
| projectId* | string | — |
| path* | string | — |
| offset | integer | — |
| limit | integer | — |
| diagnostics | string | — |
| include_references | boolean | — |
read_filesRead MULTIPLE files from a Floot project in ONE call — much cheaper than repeated read_file (the whole project is loaded once, one round-trip). Prefer this whenever you need several files together (e.g. an endpoint + its .schema.ts + the hook that calls it, or orienting in a feature). Pass up to 20…Read MULTIPLE files from a Floot project in ONE call — much cheaper than repeated read_file (the whole project is loaded once, one round-trip). Prefer this whenever you need several files together (e.g. an endpoint + its .schema.ts + the hook that calls it, or orienting in a feature). Pass up to 20…
| Parameter | Typ | Beschreibung |
|---|---|---|
| projectId* | string | — |
| paths* | array | — |
| limit | integer | — |
| diagnostics | string | — |
| include_references | boolean | — |
search_codeSearch a Floot project's files (string or regex) with optional glob filters (e.g. ['components/*', 'endpoints/**']). Returns file:line excerpts plus filename matches; capped at 40 results.Search a Floot project's files (string or regex) with optional glob filters (e.g. ['components/*', 'endpoints/**']). Returns file:line excerpts plus filename matches; capped at 40 results.
| Parameter | Typ | Beschreibung |
|---|---|---|
| projectId* | string | — |
| query* | string | — |
| glob | array | — |
| regex | boolean | — |
get_guidesFloot documentation for agents. Call with no arguments to list available guides. Pass `topic` for one guide (e.g. topic:'floot-overview') or `topics` (an array of ids) to fetch several at once. floot-overview explains how Floot projects work — read it before your first code change. Skill guides tha…Floot documentation for agents. Call with no arguments to list available guides. Pass `topic` for one guide (e.g. topic:'floot-overview') or `topics` (an array of ids) to fetch several at once. floot-overview explains how Floot projects work — read it before your first code change. Skill guides tha…
| Parameter | Typ | Beschreibung |
|---|---|---|
| topic | string | — |
| topics | array | — |
| projectId | string | — |
get_guideCompatibility alias of get_guides — the identical tool under its common misspelling. Prefer get_guides; see it for full usage.Compatibility alias of get_guides — the identical tool under its common misspelling. Prefer get_guides; see it for full usage.
| Parameter | Typ | Beschreibung |
|---|---|---|
| topic | string | — |
| topics | array | — |
| projectId | string | — |
write_fileprivilegiertCreate or fully overwrite a file in a Floot project. Content is written literally. Paths must follow the item scheme (see read_file); invalid paths are rejected with the rule they broke. Pass expected_version (from list_files/read_file) to detect concurrent edits. Writing components/Name.module.css…Create or fully overwrite a file in a Floot project. Content is written literally. Paths must follow the item scheme (see read_file); invalid paths are rejected with the rule they broke. Pass expected_version (from list_files/read_file) to detect concurrent edits. Writing components/Name.module.css…
| Parameter | Typ | Beschreibung |
|---|---|---|
| projectId* | string | — |
| path* | string | — |
| content* | string | — |
| expected_version | integer | — |
edit_fileprivilegiertReplace old_string with new_string in a project file. old_string must match the current content exactly (including whitespace) and be unique unless replace_all is set. Prefer this over write_file for changes to existing files.Replace old_string with new_string in a project file. old_string must match the current content exactly (including whitespace) and be unique unless replace_all is set. Prefer this over write_file for changes to existing files.
| Parameter | Typ | Beschreibung |
|---|---|---|
| projectId* | string | — |
| path* | string | — |
| old_string | string | — |
| new_string | string | — |
| old_str | string | — |
| new_str | string | — |
| replace_all | boolean | — |
| expected_version | integer | — |
delete_fileprivilegiertDelete a project file. Deleting an item's main code file (e.g. components/Foo.tsx) removes the whole item including its css/tests; deleting an aux file (e.g. Foo.module.css) only clears that part.Delete a project file. Deleting an item's main code file (e.g. components/Foo.tsx) removes the whole item including its css/tests; deleting an aux file (e.g. Foo.module.css) only clears that part.
| Parameter | Typ | Beschreibung |
|---|---|---|
| projectId* | string | — |
| path* | string | — |
| expected_version | integer | — |
remove_dependencyprivilegiertRemove npm packages from a Floot project's dependency record (record-only; nothing runs).Remove npm packages from a Floot project's dependency record (record-only; nothing runs).
| Parameter | Typ | Beschreibung |
|---|---|---|
| projectId* | string | — |
| packages* | array | — |
create_projectCreate a new Floot project (pre-seeded with the shared component library) and return its id. `initial_prompt` is the USER'S ORIGINAL REQUEST verbatim — it grounds the project (served back as <project-instructions> in list_files) and is preserved for the record; don't paraphrase it away. The result…Create a new Floot project (pre-seeded with the shared component library) and return its id. `initial_prompt` is the USER'S ORIGINAL REQUEST verbatim — it grounds the project (served back as <project-instructions> in list_files) and is preserved for the record; don't paraphrase it away. The result…
| Parameter | Typ | Beschreibung |
|---|---|---|
| name* | string | — |
| initial_prompt* | string | The user's original request that started this project, verbatim. |
apply_patchprivilegiertApply a V4A patch to a Floot project — create, update, and delete multiple files in ONE atomic operation. Format: "*** Begin Patch" envelope with "*** Add File: path" (+ prefixed lines), "*** Update File: path" (hunks: optional "@@ anchor" locator, space-prefixed context, -/+ lines, optional "*** E…Apply a V4A patch to a Floot project — create, update, and delete multiple files in ONE atomic operation. Format: "*** Begin Patch" envelope with "*** Add File: path" (+ prefixed lines), "*** Update File: path" (hunks: optional "@@ anchor" locator, space-prefixed context, -/+ lines, optional "*** E…
| Parameter | Typ | Beschreibung |
|---|---|---|
| projectId* | string | — |
| patch* | string | — |
| expected_version | integer | — |
get_logsYour FIRST step when debugging any runtime problem — a 500, a failed request, a blank page, or 'it doesn't work' from the user. Call this before theorizing from an error message alone. Reads the project's runtime logs. source 'server' (default): the dev backend's request logs from the last hour — m…Your FIRST step when debugging any runtime problem — a 500, a failed request, a blank page, or 'it doesn't work' from the user. Call this before theorizing from an error message alone. Reads the project's runtime logs. source 'server' (default): the dev backend's request logs from the last hour — m…
| Parameter | Typ | Beschreibung |
|---|---|---|
| projectId* | string | — |
| source | string | — |
| limit | integer | — |
| log_reference_id | string | — |
typecheckTypecheck the project (incremental tsc on the project VM). Type errors don't block the app from running.Typecheck the project (incremental tsc on the project VM). Type errors don't block the app from running.
| Parameter | Typ | Beschreibung |
|---|---|---|
| projectId* | string | — |
| paths | array | — |
run_testsRun the project's Jasmine spec files (helpers/*.spec.tsx) headlessly on the project VM (jsdom — no browser needed). Frontend AND backend code is testable: specs may render components (@testing-library/react) or import endpoint handlers/backend helpers and call them directly. Limits: fetch throws in…Run the project's Jasmine spec files (helpers/*.spec.tsx) headlessly on the project VM (jsdom — no browser needed). Frontend AND backend code is testable: specs may render components (@testing-library/react) or import endpoint handlers/backend helpers and call them directly. Limits: fetch throws in…
| Parameter | Typ | Beschreibung |
|---|---|---|
| projectId* | string | — |
| paths | array | — |
add_dependencyAdd npm packages to the project (validated against Floot's supported set — rejected packages get a supported alternative named; some versions are pinned/substituted). Avoid node-gyp/native packages (exception: sharp is supported, auto-pinned), WASM modules, and packages bundling large binaries (e.g…Add npm packages to the project (validated against Floot's supported set — rejected packages get a supported alternative named; some versions are pinned/substituted). Avoid node-gyp/native packages (exception: sharp is supported, auto-pinned), WASM modules, and packages bundling large binaries (e.g…
| Parameter | Typ | Beschreibung |
|---|---|---|
| projectId* | string | — |
| packages* | array | — |
run_code_in_vmRun a Node.js snippet on the project's compute VM (headless — no browser needed). The project's npm dependencies are importable; network access works, so you can call the project's /_api/* endpoints (get_preview_url → apiBaseUrl). ESM by default; bare require() snippets run as CJS. Returns stdout+s…Run a Node.js snippet on the project's compute VM (headless — no browser needed). The project's npm dependencies are importable; network access works, so you can call the project's /_api/* endpoints (get_preview_url → apiBaseUrl). ESM by default; bare require() snippets run as CJS. Returns stdout+s…
| Parameter | Typ | Beschreibung |
|---|---|---|
| projectId* | string | — |
| code* | string | — |
| timeout_seconds | integer | — |
run_code_in_browserRun a TypeScript snippet inside the RUNNING APP's preview document in the user's open Floot editor (`document`/`window` ARE the live app's DOM — query `document` directly; do NOT look for a preview iframe, there is none from the snippet's point of view). This is the CANONICAL way to read the live a…Run a TypeScript snippet inside the RUNNING APP's preview document in the user's open Floot editor (`document`/`window` ARE the live app's DOM — query `document` directly; do NOT look for a preview iframe, there is none from the snippet's point of view). This is the CANONICAL way to read the live a…
| Parameter | Typ | Beschreibung |
|---|---|---|
| projectId* | string | — |
| code* | string | A TypeScript module that exports a default async function returning a string; that string is the tool result. Runs at the project root, so import other files b… |
navigate_previewPoint the user's OPEN Floot preview at a page URL, a component's examples, or a page's examples — use it to SHOW the user what you just built ("here's the new dashboard page", "here's the Button component's states"), and pair it with screenshot_preview to see the result yourself. targetType "page"…Point the user's OPEN Floot preview at a page URL, a component's examples, or a page's examples — use it to SHOW the user what you just built ("here's the new dashboard page", "here's the Button component's states"), and pair it with screenshot_preview to see the result yourself. targetType "page"…
| Parameter | Typ | Beschreibung |
|---|---|---|
| projectId* | string | — |
| targetType* | string | — |
| path | string | For targetType "page": the URL path to navigate to, starting with "/" — query and hash allowed, e.g. "/user/123?tab=settings#top". |
| name | string | The item name without folder prefix or extension, exactly as list_files shows it. For targetType "component" a component — e.g. "HeroSection". For targetType "… |
screenshot_previewCapture a screenshot of the user app. Call it whenever you want to SEE what the app currently looks like (layout, styling, rendered state) or want to debug the app.Capture a screenshot of the user app. Call it whenever you want to SEE what the app currently looks like (layout, styling, rendered state) or want to debug the app.
| Parameter | Typ | Beschreibung |
|---|---|---|
| projectId* | string | — |
get_current_contextWhat the user is looking at RIGHT NOW in their open Floot editor: the active page/component, the preview element they selected (mapped to source file:line), the preview device size, whether they drew a screenshot annotation for you, whether they REVERTED recent changes (undoing edits — re-read befo…What the user is looking at RIGHT NOW in their open Floot editor: the active page/component, the preview element they selected (mapped to source file:line), the preview device size, whether they drew a screenshot annotation for you, whether they REVERTED recent changes (undoing edits — re-read befo…
| Parameter | Typ | Beschreibung |
|---|---|---|
| projectId* | string | — |
view_annotationView a screenshot annotation the user drew on the app preview (annotationId comes from get_current_context). Returns the annotated image — the user's drawings/text point at what they mean. Annotations expire after ~1 day.View a screenshot annotation the user drew on the app preview (annotationId comes from get_current_context). Returns the annotated image — the user's drawings/text point at what they mean. Annotations expire after ~1 day.
| Parameter | Typ | Beschreibung |
|---|---|---|
| projectId* | string | — |
| annotationId* | string | — |
get_job_statusPoll a pending tool call by its jobId. Each poll either returns the final result (succeeded/failed/cancelled), or reports the call as still running — call it again until you get the result. Failed calls return their stored error message. A jobId belongs to exactly ONE task: it never blocks other to…Poll a pending tool call by its jobId. Each poll either returns the final result (succeeded/failed/cancelled), or reports the call as still running — call it again until you get the result. Failed calls return their stored error message. A jobId belongs to exactly ONE task: it never blocks other to…
| Parameter | Typ | Beschreibung |
|---|---|---|
| jobId* | string | — |
| wait_seconds | integer | — |
rename_fileprivilegiertRename one or more items and automatically rewrite every file that imports them. Use item names WITHOUT extensions (e.g. {from:'components/OldName', to:'components/NewName'}). Preferred over delete+create — preserves content and fixes importers. Same type only. Pass several renames to apply them at…Rename one or more items and automatically rewrite every file that imports them. Use item names WITHOUT extensions (e.g. {from:'components/OldName', to:'components/NewName'}). Preferred over delete+create — preserves content and fixes importers. Same type only. Pass several renames to apply them at…
| Parameter | Typ | Beschreibung |
|---|---|---|
| projectId* | string | — |
| renames* | array | — |
| expected_version | integer | — |
copy_fileCopy one or more items to new names (e.g. {from:'components/Card', to:'components/BigCard'}). Item names without extensions; same type only. Importers of the source are left unchanged. Pass several copies to apply them in one call.Copy one or more items to new names (e.g. {from:'components/Card', to:'components/BigCard'}). Item names without extensions; same type only. Importers of the source are left unchanged. Pass several copies to apply them in one call.
| Parameter | Typ | Beschreibung |
|---|---|---|
| projectId* | string | — |
| copies* | array | — |
| expected_version | integer | — |
query_databaseRun a READ-ONLY SQL query against the project's Postgres database (SELECT, EXPLAIN, etc.). Writes are rejected — use execute_sql for those. Returns JSON: `{rows, rowCount, command, truncated?}` (or `{results: [...]}` for multi-statement queries). Pass `database` only if the project has more than on…Run a READ-ONLY SQL query against the project's Postgres database (SELECT, EXPLAIN, etc.). Writes are rejected — use execute_sql for those. Returns JSON: `{rows, rowCount, command, truncated?}` (or `{results: [...]}` for multi-statement queries). Pass `database` only if the project has more than on…
| Parameter | Typ | Beschreibung |
|---|---|---|
| projectId* | string | — |
| query* | string | — |
| database | string | — |
execute_sqlprivilegiertRun a WRITE SQL statement against the project's Postgres database — CREATE/ALTER TABLE, INSERT, UPDATE, DELETE, DROP, migrations. Destructive statements are allowed but your MCP client will show the user the SQL and ask them to approve it (they can allow once or for the session). Schema-changing st…Run a WRITE SQL statement against the project's Postgres database — CREATE/ALTER TABLE, INSERT, UPDATE, DELETE, DROP, migrations. Destructive statements are allowed but your MCP client will show the user the SQL and ask them to approve it (they can allow once or for the session). Schema-changing st…
| Parameter | Typ | Beschreibung |
|---|---|---|
| projectId* | string | — |
| query* | string | — |
| database | string | — |
| no_transaction | boolean | Run the statement without a wrapping transaction — required for VACUUM, CREATE INDEX CONCURRENTLY, and other statements Postgres rejects inside a transaction b… |
pull_database_schemaIntrospect the database and write a typed schema helper the app uses for queries (kysely on current projects; some legacy projects use drizzle or snake_case kysely — the pull matches whatever the project already uses). Usually NOT needed after execute_sql — schema-changing statements re-pull automa…Introspect the database and write a typed schema helper the app uses for queries (kysely on current projects; some legacy projects use drizzle or snake_case kysely — the pull matches whatever the project already uses). Usually NOT needed after execute_sql — schema-changing statements re-pull automa…
| Parameter | Typ | Beschreibung |
|---|---|---|
| projectId* | string | — |
| database | string | — |
| helper_name | string | — |
create_checkpointCreate a NAMED checkpoint — a labeled restore point the user sees in the project's Checkpoints panel and can revert to later. All file/dependency changes since the previous checkpoint are grouped under it. Call this AFTER completing a coherent unit of work (a feature, a fix, a requested change set)…Create a NAMED checkpoint — a labeled restore point the user sees in the project's Checkpoints panel and can revert to later. All file/dependency changes since the previous checkpoint are grouped under it. Call this AFTER completing a coherent unit of work (a feature, a fix, a requested change set)…
| Parameter | Typ | Beschreibung |
|---|---|---|
| projectId* | string | — |
| title* | string | — |
| description | string | — |
update_project_metadataUpdate project settings (current values appear at the top of list_files). Keys: title (2-100 chars), description, iconUrl, splashUrl, mobileAppId, enableSSR (boolean), flootAiDisallowed (boolean — true opts the project out of @floot/ai), and iOS Info.plist purpose strings (NS…UsageDescription — set…Update project settings (current values appear at the top of list_files). Keys: title (2-100 chars), description, iconUrl, splashUrl, mobileAppId, enableSSR (boolean), flootAiDisallowed (boolean — true opts the project out of @floot/ai), and iOS Info.plist purpose strings (NS…UsageDescription — set…
| Parameter | Typ | Beschreibung |
|---|---|---|
| projectId* | string | — |
| updates | object | Flat metadata fields (see the tool description). |
| shareTarget | object | Share-sheet target config (iOS Share Extension + Android share sheet). Omit to leave unchanged; { enabled: false } removes it. |
| nativeSystemBars | object | Native system-bars config. Omit to leave unchanged; { mode: 'inset' } with no color restores the default. |
| serverMemoryMb | — | Memory (MB) of the project's server Lambda, 512–4096. EXPERT SETTING: only on an explicit user request to change the server memory (see the tool description fo… |
generate_imageGenerate AI image assets directly into the project. Each image is written to the project's own asset storage and registered in its asset manifest; the tool returns the project-relative asset paths (/_cdn/static/...), which only resolve on the app's own domain — reference them in code or set one as…Generate AI image assets directly into the project. Each image is written to the project's own asset storage and registered in its asset manifest; the tool returns the project-relative asset paths (/_cdn/static/...), which only resolve on the app's own domain — reference them in code or set one as…
| Parameter | Typ | Beschreibung |
|---|---|---|
| projectId* | string | — |
| images* | array | — |
upload_assetprivilegiertUpload a binary asset (image, font, audio, …) to the project's hosted storage. This uploads bytes you actually hold — a file you generated, downloaded, or read yourself. Chat attachments don't qualify: the user's attachments never reach MCP servers (you see attached images through vision only; ther…Upload a binary asset (image, font, audio, …) to the project's hosted storage. This uploads bytes you actually hold — a file you generated, downloaded, or read yourself. Chat attachments don't qualify: the user's attachments never reach MCP servers (you see attached images through vision only; ther…
| Parameter | Typ | Beschreibung |
|---|---|---|
| projectId* | string | — |
| file_name* | string | — |
| content_type | string | Required unless `file` is set (in that mode the type is derived from the downloaded bytes; pass this only as a hint). |
| size_bytes | integer | Required unless `file` is set. Exact byte count of the file, as measured from the file itself (e.g. stat/ls -l). With content_base64 it must equal the decoded… |
| content_base64 | string | The file's bytes, base64-encoded (≤3 MB decoded). When set, the upload completes in this call. |
| file | object | ChatGPT only: a file from this conversation (e.g. a generated image). The ChatGPT host fills download_url/file_id when you reference the file; the values are h… |
request_user_uploadprivilegiertShow the user an inline upload card so they can hand you a file from their device (image/font/audio/…) — it lands in the project's hosted assets and the card gives you the hosted publicUrl. This is the path for any file the user has: an image they attached in this chat (attachments never reach MCP…Show the user an inline upload card so they can hand you a file from their device (image/font/audio/…) — it lands in the project's hosted assets and the card gives you the hosted publicUrl. This is the path for any file the user has: an image they attached in this chat (attachments never reach MCP…
| Parameter | Typ | Beschreibung |
|---|---|---|
| projectId* | string | — |
| description | string | Shown in the card — what you're asking for, e.g. "the logo image you attached". |
card_upload_assetprivilegiertInternal bridge for the upload card (not for agents — use request_user_upload / upload_asset). phase 'presign' mints the PUT URL for the picked file; phase 'complete' verifies the object landed and finishes the request_user_upload call with the publicUrl.Internal bridge for the upload card (not for agents — use request_user_upload / upload_asset). phase 'presign' mints the PUT URL for the picked file; phase 'complete' verifies the object landed and finishes the request_user_upload call with the publicUrl.
| Parameter | Typ | Beschreibung |
|---|---|---|
| phase* | string | — |
| jobId* | string | — |
| projectId* | string | — |
| file_name | string | — |
| content_type | string | — |
| size_bytes | integer | — |
provision_resourceProvision a Floot-managed backend resource for the project — fully server-side (Floot mints all secrets; no keys to paste). Also seeds the working code for it. Available:
- database — A Floot-managed Postgres database (Neon). FLOOT_DATABASE_URL is set for the app.
- auth — Email/password + session…Provision a Floot-managed backend resource for the project — fully server-side (Floot mints all secrets; no keys to paste). Also seeds the working code for it. Available: - database — A Floot-managed Postgres database (Neon). FLOOT_DATABASE_URL is set for the app. - auth — Email/password + session…
| Parameter | Typ | Beschreibung |
|---|---|---|
| projectId* | string | — |
| resource* | string | — |
request_external_resourceRequest the USER'S OWN external credential for this project — their OpenAI or Anthropic API key, an external Postgres connection string, or any other service's key (type GENERIC, e.g. Stripe/Resend — name the env vars via secret_env_vars; a var the user can only produce LATER, like a webhook signin…Request the USER'S OWN external credential for this project — their OpenAI or Anthropic API key, an external Postgres connection string, or any other service's key (type GENERIC, e.g. Stripe/Resend — name the env vars via secret_env_vars; a var the user can only produce LATER, like a webhook signin…
| Parameter | Typ | Beschreibung |
|---|---|---|
| projectId* | string | — |
| type* | string | — |
| name | string | Display name for GENERIC requests, e.g. 'Stripe'. |
| instructions | string | Why the key is needed / where the user can find it — shown to the user in the dialog. |
| secret_env_vars | array | GENERIC only: the env var name(s) the secret(s) should be exposed as (default RESOURCE_API_KEY). Every var listed here is a REQUIRED field in the connect dialo… |
| optional_env_vars | array | GENERIC only: env vars the user may leave blank at connect time and fill in later — e.g. a webhook signing secret that only exists after the webhook endpoint i… |
get_publish_statusRead-only publish snapshot for a project: published (true/false, with the live URL when published), customDomains (the user's own domains attached to the project — apex and www are listed separately; empty when none), paid (the workspace owner has a paid plan, which allows removing the Floot badge)…Read-only publish snapshot for a project: published (true/false, with the live URL when published), customDomains (the user's own domains attached to the project — apex and www are listed separately; empty when none), paid (the workspace owner has a paid plan, which allows removing the Floot badge)…
| Parameter | Typ | Beschreibung |
|---|---|---|
| projectId* | string | — |
publish_appPublish the app to production — call for the first publish, to publish again after changes the user wants live, and to set up a custom domain. Omit domain and the user gets the publish form in the editor. Pass mobile: true whenever the user mentions iOS, Android, TestFlight, App Store, Google Play,…Publish the app to production — call for the first publish, to publish again after changes the user wants live, and to set up a custom domain. Omit domain and the user gets the publish form in the editor. Pass mobile: true whenever the user mentions iOS, Android, TestFlight, App Store, Google Play,…
| Parameter | Typ | Beschreibung |
|---|---|---|
| projectId* | string | — |
| mobile | boolean | Set true whenever the request mentions iOS, Android, TestFlight, App Store, Google Play, Play Store, a native or mobile app, or a phone build — they all mean a… |
| domain_type | string | Omit for the floot subdomain (shows the publish form in the editor when domain is omitted). 'custom_domain' for domain setup — a paid-plan feature (get_publish… |
| domain | string | floot_subdomain only: subdomain label (lowercase, digits, hyphens, max 40). Omit to show the user the publish form instead; on a published app a different subd… |
| include_made_with_floot | boolean | false removes the 'Made with Floot' badge (paid plans only — fails for free accounts). Omit to keep the current setting. |
| add_another | boolean | custom_domain only: the project ALREADY has a custom domain and the user has explicitly asked for an ADDITIONAL one. Without it, a custom_domain call on a proj… |
unpublish_appTake the published app offline and release its subdomain — destructive, confirm with the user first. Details: get_guides('publishing').Take the published app offline and release its subdomain — destructive, confirm with the user first. Details: get_guides('publishing').
| Parameter | Typ | Beschreibung |
|---|---|---|
| projectId* | string | — |
cancel_requestWithdraw a pending request you created — a credential request from request_external_resource, a custom-domain setup request from publish_app, or an open screenshot job from screenshot_preview (jobId from that tool). Only pending requests can be cancelled — completed ones are final. Use when the use…Withdraw a pending request you created — a credential request from request_external_resource, a custom-domain setup request from publish_app, or an open screenshot job from screenshot_preview (jobId from that tool). Only pending requests can be cancelled — completed ones are final. Use when the use…
| Parameter | Typ | Beschreibung |
|---|---|---|
| projectId* | string | — |
| jobId* | string | — |
get_preview_urlShow the user a live preview card and return the preview link. On an EXISTING project this is typically called EARLY, before the first change, so the user watches edits live from the start; the result is informational and a working session normally continues past it. Do NOT call it right after crea…Show the user a live preview card and return the preview link. On an EXISTING project this is typically called EARLY, before the first change, so the user watches edits live from the start; the result is informational and a working session normally continues past it. Do NOT call it right after crea…
| Parameter | Typ | Beschreibung |
|---|---|---|
| projectId* | string | — |
45 von 45 Tools haben eine Beschreibung veröffentlicht.
Tool-Namen und -Beschreibungen stammen vom Publisher und werden wortgetreu als inerter Text angezeigt. Es sind die Zeichenketten, die ein MCP-Client an ein Modell übergibt, deshalb prüft Forge sie auf Prompt-Injection-Muster — jeder Befund erscheint oben beim Sicherheits-Scan. „Privilegiert“ ist ein Schlagwort-Treffer im Tool-Namen, keine Prüfung dessen, was das Tool tut: ein harmlos klingender Name kann trotzdem alles tun.
Build and publish full-stack web and mobile apps on Floot from any MCP client. Building is free.
+ 5 weitere bei diesem Eintrag beobachtet.
Verlinkte Namen öffnen den Forge-Index aller Einträge, bei denen dieses Tool beobachtet wurde. Alle indexierten Tools durchsuchen.
Dieser Eintrag veröffentlicht kein npm-Paket, daher hat Forge keinen Abhängigkeitsbaum dafür. Das ist eine Lücke in der Abdeckung — keine Aussage, dass er keine Abhängigkeiten hat.