Connection check
verified live · 20h ago
fine-structure
Build and host full-stack apps from a prompt, with agents that reach you on WhatsApp and email.
Tools
84
GitHub stars
—
Installs / wk
—
Licence
—
Transport
streamable-http
Last checked
20h ago
Tools & capabilities
84 toolsRead from the running server on 20h ago.
add_custom_domain
can modify data
app_id*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 t… 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.
add_file_change
path*app_id*contentfile_typeoperationchange_set_id*
Stage one file upsert or delete inside a change set. Does not modify the live app until apply_change_set. Paths follow the Fine Structure app file API, documented at https://finest… Stage one file upsert or delete inside a change set. Does not modify the live app until apply_change_set. Paths follow the Fine Structure app file API, documented at https://finestructure.ai/api/mcp/docs.
agency_create_claim_link
noteapp_id*client_email*client_full_nameclaim_expires_in_dayskeep_agent_collaborator
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. 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.
agency_create_client
noteclient_email*client_full_name
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. 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.
agency_create_client_app
name*noteprompt*descriptionclient_email*client_full_name
+2
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 s… 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.
agency_get_claim_status
read-only
handoff_id*
Agency mode only. Inspect one handoff status without exposing the raw claim token. Agency mode only. Inspect one handoff status without exposing the raw claim token.
agency_list_clients
read-only
include_handoffs
Agency mode only. List client records and app handoff status for the authenticated agent. Agency mode only. List client records and app handoff status for the authenticated agent.
apply_change_set
forceapp_id*change_set_id*
Apply a staged change set to the app. Creates a Saved Version before applying. Blocks on validation errors unless force=true. Apply a staged change set to the app. Creates a Saved Version before applying. Blocks on validation errors unless force=true.
attach_agent_whatsapp
agent_id*phone_number_id*
Connect a platform WhatsApp number to one of the account's agents, so the owner can message that number and reach that agent. Requires the owner to be verified first. Take phone_nu… Connect a platform WhatsApp number to one of the account's agents, so the owner can message that number and reach that agent. Requires the owner to be verified first. Take phone_number_id from get_agent_whatsapp. A number already used by another account is still valid to connect: it answers only this owner's verified phone.
check_domain_verification
app_id*domain
Check Fine Structure custom-domain verification and SSL status for the configured custom domain, then save the latest status. Check Fine Structure custom-domain verification and SSL status for the configured custom domain, then save the latest status.
check_subdomain_available
read-only
app_idsubdomain*
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… 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'.
compare_current_to_version
read-only
app_id*snapshot_id*max_diff_chars
Compare the current app files to a Saved Version and return compact per-file diffs. Compare the current app files to a Saved Version and return compact per-file diffs.
compare_saved_versions
read-only
app_id*max_diff_charsbase_snapshot_id*target_snapshot_id*
Compare two Saved Versions and return per-file additions, removals, modifications, and compact diffs. Compare two Saved Versions and return per-file additions, removals, modifications, and compact diffs.
configure_domain_redirects
app_id*force_httpsredirect_wwwprimary_domain*
Configure custom-domain redirect policy: primary domain, optional www/root redirect, and HTTPS enforcement. Configure custom-domain redirect policy: primary domain, optional www/root redirect, and HTTPS enforcement.
configure_integration
app_id*config*provider*is_active
Store safe non-secret integration metadata for an app. Use set_secret for API keys/tokens. Store safe non-secret integration metadata for an app. Use set_secret for API keys/tokens.
confirm_owner_phone_verification
code*phone*region
Confirm the 6-digit code the owner received on WhatsApp from start_owner_phone_verification. On success the owner is verified: agents can message them, and platform numbers become… Confirm the 6-digit code the owner received on WhatsApp from start_owner_phone_verification. On success the owner is verified: agents can message them, and platform numbers become connectable.
create_ab_test
name*app_id*variants*is_activepage_name*goal_event_type
+1
Create a native Fine Structure A/B test between existing app pages. Use update_app first if a variant page still needs to be generated. Creates a Saved Version before the change. Create a native Fine Structure A/B test between existing app pages. Use update_app first if a variant page still needs to be generated. Creates a Saved Version before the change.
create_agent
namerole*app_idpersonadescription*
Create an autonomous AI agent on the user's Fine Structure account: a standing worker, not a chat session. It gets the platform's default safe tool policy and its own email address… Create an autonomous AI agent on the user's Fine Structure account: a standing worker, not a chat session. It gets the platform's default safe tool policy and its own email address, it can read and write the app database, and once the owner phone is verified (see get_agent_whatsapp) it can message its owner on WhatsApp and by email through the platform system channels. Pair it with schedule_agent_task for recurring work such as following up new leads on WhatsApp each morning, watching an app for runtime errors, or sending a weekly summary. Messaging anyone other than the verified owner requires a channel the owner connects in the Fine Structure Studio.
create_app
name*prompt*description
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_statu… 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.
create_change_set
labelapp_id*
Create a staged file change set. Add multiple file changes, validate them as one app state, then apply atomically. Create a staged file change set. Add multiple file changes, validate them as one app state, then apply atomically.
create_entity_records
app_id*entity*reasonrecords*expected_count
Create/insert records in one app entity. Executes directly for the authenticated app owner and returns the created record ids. Create/insert records in one app entity. Executes directly for the authenticated app owner and returns the created record ids.
create_entity_schema
app_id*entity*schema*indexesmetadataoverwrite
+1
Create an entity schema file in entities/<Entity>.json. Creates a Saved Version before writing. Create an entity schema file in entities/<Entity>.json. Creates a Saved Version before writing.
delete_ab_test
can modify data
app_id*test_id*
Delete a native A/B test from an app. Creates a Saved Version before the change. Delete a native A/B test from an app. Creates a Saved Version before the change.
delete_entity_records
can modify data
app_id*entity*reasonfiltersrecord_idsexpected_count
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. 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.
delete_secret
can modify data
key*app_id*
Delete one app secret by key. Delete one app secret by key.
detach_agent_whatsapp
can modify data
phone_number_id*
Disconnect the owner's WhatsApp route from a platform number. Removes only this account's route; other accounts sharing the number keep theirs. Disconnect the owner's WhatsApp route from a platform number. Removes only this account's route; other accounts sharing the number keep theirs.
discard_change_set
can modify data
app_id*change_set_id*
Discard a pending staged change set without changing app files. Discard a pending staged change set without changing app files.
get_ab_test_stats
read-only
app_id*test_id*
Get views, unique visitors, conversions, and conversion rates for an A/B test. Get views, unique visitors, conversions, and conversion rates for an A/B test.
get_agent_whatsapp
read-only
agent_id
Read the WhatsApp state of the connected account: whether the owner's phone is verified, which platform numbers they can connect, and which conversations already route to which age… Read the WhatsApp state of the connected account: whether the owner's phone is verified, which platform numbers they can connect, and which conversations already route to which agent. Call this first whenever the user asks to talk to an agent on WhatsApp, and repeat its next_step to them.
get_app_analytics
read-only
daysapp_id*
Traffic analytics for an app's published site over a chosen window: total views, unique visitors, daily series, top pages, top referrer domains and device split. Traffic analytics for an app's published site over a chosen window: total views, unique visitors, daily series, top pages, top referrer domains and device split.
get_app_detail
read-only
app_id*
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. 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.
get_app_files
read-only
app_id*
Get the file tree for an app with paths and byte sizes. Get the file tree for an app with paths and byte sizes.
get_app_links
read-only
app_id*
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 sett… 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.
get_app_security_audit
read-only
limitapp_id*
Read recent server-side security audit events for an app. Read recent server-side security audit events for an app.
get_app_security_context
read-only
app_id*audit_limit
Return safe security context for one owned app: owner id/email, Studio collaborators, generated-app members, route policies, entity policies, and recent security audit entries. Doe… Return safe security context for one owned app: owner id/email, Studio collaborators, generated-app members, route policies, entity policies, and recent security audit entries. Does not return secrets and does not grant access to other apps.
get_app_status
read-only
app_id*
Get app overview: files, published state, URL, active jobs. Get app overview: files, published state, URL, active jobs.
get_domain_ssl_status
read-only
app_id*domain
Return SSL/certificate status and pending certificate validation DNS records for the app custom domain. Return SSL/certificate status and pending certificate validation DNS records for the app custom domain.
get_domain_verification
read-only
app_id*domain
Return the exact DNS records and instructions required to verify and route the app custom domain. Return the exact DNS records and instructions required to verify and route the app custom domain.
get_entities
read-only
app_id*
Get all entity (data model) schemas for an app, with record counts. Each entity has fields, types, and relationships. Get all entity (data model) schemas for an app, with record counts. Each entity has fields, types, and relationships.
get_errors
read-only
limitapp_id*
Get recent runtime errors for an app (last 20). Useful for diagnosing issues before updating. Get recent runtime errors for an app (last 20). Useful for diagnosing issues before updating.
get_job_status
read-only
job_id*
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… 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.
get_pages
read-only
app_id*
Get all pages in an app with their file paths and sizes. Get all pages in an app with their file paths and sizes.
get_platform_guide
read-only
app_idsectionstask_type
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, publish… 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.
get_preview_url
read-only
app_id*
Return editor preview and published/public URLs for an app. Return editor preview and published/public URLs for an app.
get_recommended_workflow
read-only
goalapp_idtask_type
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 confi… 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.
inspect_preview
read-only
routeapp_id*auth_asauth_as_role
Return server-side preview context: URLs, persisted runtime/network errors, static clickable candidates, pages, and explicit live-browser availability. Return server-side preview context: URLs, persisted runtime/network errors, static clickable candidates, pages, and explicit live-browser availability.
invite_app_member
role*email*app_id*password*full_name
Provision a generated-app runtime member with a role. This does not create a Studio collaborator, and the owner role cannot be assigned. password is required: ask the account owner… Provision a generated-app runtime member with a role. This does not create a Studio collaborator, and the owner role cannot be assigned. password is required: ask the account owner which password the member should get. This tool never generates one, because a generated password would come back in the result and that is a live credential in the conversation transcript.
list_ab_tests
read-only
app_id*
List the platform A/B tests configured for an app. List the platform A/B tests configured for an app.
list_agents
read-only
app_id
List the AI agents on the user's account with id, name, role, status and FineMail address. List the AI agents on the user's account with id, name, role, status and FineMail address.
list_agent_tasks
read-only
limitstatusagent_id
List scheduled tasks for one agent (or the whole account), including schedule, status and next_run_at. List scheduled tasks for one agent (or the whole account), including schedule, status and next_run_at.
list_app_domains
read-only
app_id*
List an app's platform path, subdomain, and configured custom domain with verification, SSL, primary-domain, redirect, publish, and login-gating status. List an app's platform path, subdomain, and configured custom domain with verification, SSL, primary-domain, redirect, publish, and login-gating status.
list_app_members
read-only
app_id*
List generated-app runtime users/members for an app. This is separate from Studio project collaborators. List generated-app runtime users/members for an app. This is separate from Studio project collaborators.
list_apps
read-only
limitoffset
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. 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.
list_integrations
read-only
app_id*
List supported integrations and safe connected integration metadata for an app. Tokens/secrets are never returned. List supported integrations and safe connected integration metadata for an app. Tokens/secrets are never returned.
list_saved_versions
read-only
app_id*
List restorable Saved Versions for an app, including versions created by MCP writes. List restorable Saved Versions for an app, including versions created by MCP writes.
list_secret_keys
read-only
app_id*
List secret key names for an app. Secret values are never returned. List secret key names for an app. Secret values are never returned.
patch_app_file
path*app_id*new_text*old_text*replace_all
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,… 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.
publish_app
app_id*access_modemake_publicauth_required
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. 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.
query_entity
read-only
sortlimitapp_id*entity*offsetfilters
Query app data records for one entity with optional exact-match filters. Query app data records for one entity with optional exact-match filters.
read_app_file
read-only
path*app_id*max_chars
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. 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.
read_app_files
read-only
paths*app_id*max_chars_per_file
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. 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.
remove_app_member
can modify data
app_id*user_id*
Remove a generated-app runtime member. Remove a generated-app runtime member.
remove_custom_domain
can modify data
app_id*domain
Remove the configured custom domain from the app and clean up the platform-side hostname registration when possible. Remove the configured custom domain from the app and clean up the platform-side hostname registration when possible.
rename_app_file
forceapp_id*new_path*old_path*overwrite
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 befo… 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.
restore_file_from_version
can modify data
path*app_id*confirm*snapshot_id*
Restore one file from a Saved Version instead of restoring the entire app. Creates a Saved Version before changing the file. Paths follow the Fine Structure app file API, documente… Restore one file from a Saved Version instead of restoring the entire app. Creates a Saved Version before changing the file. Paths follow the Fine Structure app file API, documented at https://finestructure.ai/api/mcp/docs.
schedule_agent_task
title*activateagent_id*max_runsschedule*instructions*
Create a scheduled task for one of the user's agents. Supported schedule types: once (run_at ISO local time + timezone), interval (interval_minutes 5-1440), hourly, daily (time HH:… Create a scheduled task for one of the user's agents. Supported schedule types: once (run_at ISO local time + timezone), interval (interval_minutes 5-1440), hourly, daily (time HH:MM + timezone), weekly (time + timezone + days_of_week 0=Sunday..6), cron (5-field expression + timezone), manual (only runs on demand). Returns the normalized schedule and the computed next_run_at so you can read the fire time back to the user in their timezone.
seed_entity
modeapp_id*entity*reasonrecords*
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). 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).
set_app_subdomain
can modify data
app_id*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 uniquene… 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_domain instead.
set_entity_policy
can modify data
read*write*app_id*entity*
Create or update server-side read/write role policy for an app entity. Create or update server-side read/write role policy for an app entity.
set_primary_domain
app_id*domain*
Set which app host should be treated as primary for generated links and custom-domain redirects. Set which app host should be treated as primary for generated links and custom-domain redirects.
set_route_policy
can modify data
route*app_id*redirect_torequire_auth*allowed_roles*
Create or update a server-owned route policy for a generated app route. Create or update a server-owned route policy for a generated app route.
set_secret
can modify data
key*value*app_id*
Create or update one encrypted app secret. The secret value is never returned. Create or update one encrypted app secret. The secret value is never returned.
start_owner_phone_verification
can modify data
phone*region
Send a 6-digit code over WhatsApp to the ACCOUNT OWNER's own phone. This is the one-time ownership proof required before a platform number can be connected, and it also unlocks age… Send a 6-digit code over WhatsApp to the ACCOUNT OWNER's own phone. This is the one-time ownership proof required before a platform number can be connected, and it also unlocks agents messaging the owner. Ask the user for their own WhatsApp number first and send only to that. No WhatsApp Business account is involved.
update_ab_test
nameapp_id*test_id*variantsis_activepage_name
+2
Update a native A/B test, including active state, variants, traffic, and conversion goal. Creates a Saved Version before the change. Update a native A/B test, including active state, variants, traffic, and conversion goal. Creates a Saved Version before the change.
update_app
app_id*prompt*
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_sta… 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.
update_app_member_role
can modify data
role*app_id*user_id*
Update a generated-app runtime member role. This cannot assign owner and cannot change the Fine Structure account owner. Update a generated-app runtime member role. This cannot assign owner and cannot change the Fine Structure account owner.
update_entity_metadata
app_id*entity*indexesmetadatarelationships
Set relationship/index metadata on an entity schema. This stores metadata in the schema file; DB index creation is automatic where supported by the platform. Set relationship/index metadata on an entity schema. This stores metadata in the schema file; DB index creation is automatic where supported by the platform.
update_entity_record
can modify data
data*app_id*entity*reasonrecord_id*
Compatibility tool that updates one record by ID. Executes directly for the authenticated app owner. Compatibility tool that updates one record by ID. Executes directly for the authenticated app owner.
update_entity_records
can modify data
app_id*entity*reasonchangesfiltersupdates
+2
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… 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.
update_entity_schema
mergeapp_id*entity*schema*indexesmetadata
+1
Replace or shallow-merge an existing entity schema file. Creates a Saved Version before writing. Replace or shallow-merge an existing entity schema file. Creates a Saved Version before writing.
validate_app
read-only
app_id*include_runtime_errors
Run deterministic app checks: syntax, imports, routes/pages, entity schemas, missing entities, and recorded runtime errors. Run deterministic app checks: syntax, imports, routes/pages, entity schemas, missing entities, and recorded runtime errors.
validate_change_set
read-only
app_id*change_set_id*include_runtime_errors
Validate current app files plus staged change set files before applying. Validate current app files plus staged change set files before applying.
validate_entity_relationships
read-only
app_id*
Validate entity relationship metadata and *_id references against existing entity schemas. Validate entity relationship metadata and *_id references against existing entity schemas.
write_app_file
path*app_id*content*file_type