Tools provided
Tools the agent exposes — your AI client calls them automatically when it needs them.
- create_app — Create a new application from a natural language prompt. The AI generates a complete web app with pages, components, styling, and data models. Returns a job_id - poll get_job_status to track progress. When the job is done, the app is ready.write
- agency_create_client — Agency mode only. Create or update a client record for an account-level agent. This does not create a verified Fine Structure user account and does not transfer ownership.write
- agency_list_clients — Agency mode only. List client records and app handoff status for the authenticated agent.writeidempotent
- agency_create_client_app — Agency mode only. Create a new app owned by the agent, start generation, and create a claim link for the client. Ownership transfers only when the invited client logs in with the same email and accepts the claim link.write
- agency_create_claim_link — Agency mode only. Create a client claim link for an existing app owned by the agent. The client must log in with the invited email before ownership transfers.write
- agency_get_claim_status — Agency mode only. Inspect one handoff status without exposing the raw claim token.writeidempotent
- update_app — Update an existing application with a new prompt. The AI modifies the app based on your instructions. Creates a Saved Version before the update. Returns a job_id - poll get_job_status to track progress.write
- publish_app — Publish an app - freeze current state and make it live at a URL. Also configures whether the public URL is open, app-login gated, private, or inferred from the app.writeopen internet
- get_platform_guide — Return a machine-readable Fine Structure / FSe2 guide for AI agents. Call this at the start of an MCP session to learn app files, entities, safe edit workflows, validation, publishing, A/B testing, secrets, and platform rules.writeidempotent
- get_recommended_workflow — Return the recommended MCP tool sequence for a task type. Use this before creating apps, editing files, seeding data, publishing, setting up A/B tests, restoring versions, or configuring secrets/integrations.writeidempotent
- get_job_status — Poll the status of an async generation job. Use this after create_app or update_app to know when the job is done. Returns status ('running' or 'done'), progress events, and result summary when complete.writeidempotent
- get_app_status — Get app overview: files, published state, URL, active jobs.writeidempotent
- get_app_links — Return editor, preview, published path, subdomain, and custom-domain links plus whether each works for anonymous visitors, app users, or Studio users based on publish and auth settings.writeidempotent
- list_app_domains — List an app's platform path, subdomain, and configured custom domain with verification, SSL, primary-domain, redirect, publish, and login-gating status.writeidempotent
- set_app_subdomain — Set or clear the app platform subdomain - the '<subdomain>.<base domain>' host Fine Structure already serves the app on. Runs the same ownership, format, reserved-name and uniqueness checks as the Studio subdomain field because it calls the same model function. Replacing a subdomain takes effect immediately and creates NO redirect: the previous name stops resolving to this app and is released for anyone to claim. Pass an empty subdomain to clear it. For a domain the user owns, use add_custom_domdestructiveopen internet
- check_subdomain_available — Check whether a platform subdomain can be claimed before calling set_app_subdomain. Returns available plus a status of available, invalid, reserved, taken, current, or empty, with the exact reason. Pass app_id (an app you own) to have that app's own current subdomain reported as 'current' instead of 'taken'.writeidempotent
- add_custom_domain — Attach or replace the app custom domain through the same Fine Structure Studio custom-domain flow. Returns exact DNS verification and routing records for the user to configure at their DNS provider.destructiveopen internet
- get_domain_verification — Return the exact DNS records and instructions required to verify and route the app custom domain.writeidempotent
- check_domain_verification — Check Fine Structure custom-domain verification and SSL status for the configured custom domain, then save the latest status.writeopen internet
- set_primary_domain — Set which app host should be treated as primary for generated links and custom-domain redirects.writeopen internet
- remove_custom_domain — Remove the configured custom domain from the app and clean up the platform-side hostname registration when possible.destructiveopen internet
- get_domain_ssl_status — Return SSL/certificate status and pending certificate validation DNS records for the app custom domain.writeidempotentopen internet
- configure_domain_redirects — Configure custom-domain redirect policy: primary domain, optional www/root redirect, and HTTPS enforcement.writeopen internet
- list_apps — List applications owned by the authenticated user, newest activity first. Returns up to `limit` apps per call plus the total count; page with `offset` when the account has more.writeidempotent
- get_app_files — Get the file tree for an app with paths and byte sizes.writeidempotent
- read_app_file — Read one source file from an app's virtual filesystem. Paths follow the Fine Structure app file API, documented at https://finestructure.ai/api/mcp/docs.writeidempotent
- read_app_files — Read several source files from an app's virtual filesystem. Paths follow the Fine Structure app file API, documented at https://finestructure.ai/api/mcp/docs.writeidempotent
- write_app_file — Create or replace one file in an app's virtual filesystem. Creates a Saved Version before changing content. Paths and file model follow the Fine Structure app file API, documented at https://finestructure.ai/api/mcp/docs.write
- patch_app_file — Patch one file by replacing exact text. Safer than full overwrite for targeted edits. Creates a Saved Version before changing content. Paths follow the Fine Structure app file API, documented at https://finestructure.ai/api/mcp/docs.write
- rename_app_file — Rename or move one app source file atomically. Internally stages an upsert at new_path and a delete at old_path, validates the resulting app state, and creates a Saved Version before applying.write
- get_app_detail — Deep introspection of an app: entities, pages, settings, integrations, environment variables, and file structure. Use this to understand what an app contains before updating it.writeidempotent
- get_entities — Get all entity (data model) schemas for an app, with record counts. Each entity has fields, types, and relationships.writeidempotent
- query_entity — Query app data records for one entity with optional exact-match filters.writeidempotent
- seed_entity — Compatibility tool for starter-record creation. Inserts directly for the authenticated app owner; by default it only seeds an empty entity (skip_if_not_empty).write
- create_entity_records — Create/insert records in one app entity. Executes directly for the authenticated app owner and returns the created record ids.write
- update_entity_record — Compatibility tool that updates one record by ID. Executes directly for the authenticated app owner.destructive
- update_entity_records — Update exact records. Select explicit record_ids or exact-match filters and provide shared changes, or provide per-record updates. Executes directly for the authenticated app owner; expected_count aborts the write on a mismatch.destructive
- delete_entity_records — Delete exact records by ID or exact-match filters. Executes directly for the authenticated app owner; pass expected_count as a safety check to abort on a mismatch.destructive
- get_pages — Get all pages in an app with their file paths and sizes.writeidempotent
- get_errors — Get recent runtime errors for an app (last 20). Useful for diagnosing issues before updating.writeidempotent