accueil / serveurs / Communication / ai.finestructure/fine-structure
ai.finestructure/fine-structure
serveur MCP (Model Context Protocol) · fine-structure-mcp 1.0.0
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que ai.finestructure/fine-structure est sûr ?
Au dernier audit MCP Hub, le serveur MCP « ai.finestructure/fine-structure » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 99 outils
- add_custom_domain≈ 170 tokens
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.
Paramètres, retour & exemple (2)
Paramètresapp_id· string · requis
The app IDdomain· string · requis
Custom domain to connect, for example example.com or app.example.com
Exemple d'appel{"name": "add_custom_domain", "arguments": {"app_id": "texte", "domain": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - add_file_change≈ 247 tokens
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.
Paramètres, retour & exemple (6)
Paramètrespath· string · requis
Virtual file pathapp_id· string · requis
The app IDcontent· string · optionnel
Complete file contents for upsertfile_type· string · optionnel
Optional file type overrideoperation· string · optionnel · upsert | deletechange_set_id· string · requis
Change set ID
Exemple d'appel{"name": "add_file_change", "arguments": {"path": "texte", "app_id": "texte", "change_set_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - agency_create_claim_link≈ 272 tokens
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.
Paramètres, retour & exemple (6)
Paramètresnote· string · optionnel
Optional internal noteapp_id· string · requis
Existing app ID owned by the agentclient_email· string · requis
Client email allowed to claim ownershipclient_full_name· string · optionnel
Optional client display nameclaim_expires_in_days· integer · optionnel
Claim link lifetime, 1-90 dayskeep_agent_collaborator· boolean · optionnel
Invite agent as editor after claim
Exemple d'appel{"name": "agency_create_claim_link", "arguments": {"app_id": "texte", "client_email": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - agency_create_client≈ 198 tokens
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.
Paramètres, retour & exemple (3)
Paramètresnote· string · optionnel
Optional internal note for the agencyclient_email· string · requis
Client email that will be allowed to claim projectsclient_full_name· string · optionnel
Optional client display name
Exemple d'appel{"name": "agency_create_client", "arguments": {"client_email": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - agency_create_client_app≈ 344 tokens
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.
Paramètres, retour & exemple (8)
Paramètresname· string · requis
Name for the app (1-100 chars)note· string · optionnel
Optional internal client/project noteprompt· string · requis
Detailed description of the app to builddescription· string · optionnel
Optional short app descriptionclient_email· string · requis
Client email allowed to claim ownershipclient_full_name· string · optionnel
Optional client display nameclaim_expires_in_days· integer · optionnel
Claim link lifetime, 1-90 dayskeep_agent_collaborator· boolean · optionnel
After claim, invite the agent back as an editor collaborator
Exemple d'appel{"name": "agency_create_client_app", "arguments": {"name": "texte", "prompt": "texte", "client_email": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - agency_get_claim_status≈ 132 tokens
Agency mode only. Inspect one handoff status without exposing the raw claim token.
Paramètres, retour & exemple (1)
Paramètreshandoff_id· string · requis
Handoff ID returned by agency_create_claim_link or agency_create_client_app
Exemple d'appel{"name": "agency_get_claim_status", "arguments": {"handoff_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - agency_list_clients≈ 123 tokens
Agency mode only. List client records and app handoff status for the authenticated agent.
Paramètres, retour & exemple (1)
Paramètresinclude_handoffs· boolean · optionnel
Include claim links status without raw tokens
Exemple d'appel{"name": "agency_list_clients", "arguments": {"include_handoffs": true}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - apply_change_set≈ 167 tokens
Apply a staged change set to the app. Creates a Saved Version before applying. Blocks on validation errors unless force=true.
Paramètres, retour & exemple (3)
Paramètresforce· boolean · optionnel
Apply even if validation has errorsapp_id· string · requis
The app IDchange_set_id· string · requis
Change set ID
Exemple d'appel{"name": "apply_change_set", "arguments": {"app_id": "texte", "change_set_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - attach_agent_whatsapp≈ 216 tokens
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.
Paramètres, retour & exemple (2)
Paramètresagent_id· string · requis
The agent that should answer on this number.phone_number_id· string · requis
phone_number_id from get_agent_whatsapp claimable_numbers.
Exemple d'appel{"name": "attach_agent_whatsapp", "arguments": {"agent_id": "texte", "phone_number_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - check_domain_verification≈ 160 tokens
Check Fine Structure custom-domain verification and SSL status for the configured custom domain, then save the latest status.
Paramètres, retour & exemple (2)
Paramètresapp_id· string · requis
The app IDdomain· string · optionnel
Optional configured custom domain. If omitted, uses the app's current custom domain.
Exemple d'appel{"name": "check_domain_verification", "arguments": {"app_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - check_subdomain_available≈ 217 tokens
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'.
Paramètres, retour & exemple (2)
Paramètresapp_id· string · optionnel
Optional ID of an app you own. When supplied, this app's own subdomain reports as 'current' instead of 'taken'.subdomain· string · requis
Subdomain label to check
Exemple d'appel{"name": "check_subdomain_available", "arguments": {"subdomain": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compare_current_to_version≈ 154 tokens
Compare the current app files to a Saved Version and return compact per-file diffs.
Paramètres, retour & exemple (3)
Paramètresapp_id· string · requis
The app IDsnapshot_id· string · requis
Saved Version snapshot IDmax_diff_chars· integer · optionnel
Exemple d'appel{"name": "compare_current_to_version", "arguments": {"app_id": "texte", "snapshot_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compare_saved_versions≈ 184 tokens
Compare two Saved Versions and return per-file additions, removals, modifications, and compact diffs.
Paramètres, retour & exemple (4)
Paramètresapp_id· string · requis
The app IDmax_diff_chars· integer · optionnelbase_snapshot_id· string · requis
Older/base snapshot IDtarget_snapshot_id· string · requis
Newer/target snapshot ID
Exemple d'appel{"name": "compare_saved_versions", "arguments": {"app_id": "texte", "base_snapshot_id": "texte", "target_snapshot_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - configure_domain_redirects≈ 214 tokens
Configure custom-domain redirect policy: primary domain, optional www/root redirect, and HTTPS enforcement.
Paramètres, retour & exemple (4)
Paramètresapp_id· string · requis
The app IDforce_https· boolean · optionnel
Redirect HTTP custom-domain requests to HTTPSredirect_www· boolean · optionnel
Redirect the www/root counterpart to primary_domainprimary_domain· string · requis
Canonical primary domain, for example example.com
Exemple d'appel{"name": "configure_domain_redirects", "arguments": {"app_id": "texte", "primary_domain": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - configure_integration≈ 194 tokens
Store safe non-secret integration metadata for an app. Use set_secret for API keys/tokens.
Paramètres, retour & exemple (4)
Paramètresapp_id· string · requis
The app IDconfig· object · requis
Safe metadata only, such as workspace/team/name/emailprovider· string · requis
Integration provider IDis_active· boolean · optionnel
Set false to disconnect this integration metadata
Exemple d'appel{"name": "configure_integration", "arguments": {"app_id": "texte", "config": {}, "provider": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - confirm_owner_phone_verification≈ 208 tokens
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.
Paramètres, retour & exemple (3)
Paramètrescode· string · requis
The 6-digit code from the WhatsApp message.phone· string · requis
The same phone number the code was sent to.region· string · optionnel
Optional ISO region hint, matching the one used when sending.
Exemple d'appel{"name": "confirm_owner_phone_verification", "arguments": {"code": "texte", "phone": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - create_ab_test≈ 357 tokens
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.
Paramètres, retour & exemple (7)
Paramètresname· string · requis
Experiment nameapp_id· string · requis
The app IDvariants· array · requis
At least two variants. Traffic must total 100.is_active· boolean · optionnel
Whether to activate the test immediatelypage_name· string · requis
Base route page that triggers the experimentgoal_event_type· string · optionnel
Optional conversion goal type: entity_create, any, form_submitgoal_event_filter· object · optionnel
Optional goal filter, for example {'entity_name': 'Lead'}
Exemple d'appel{"name": "create_ab_test", "arguments": {"name": "texte", "app_id": "texte", "variants": [], "page_name": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - create_agent≈ 375 tokens
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.
Paramètres, retour & exemple (5)
Paramètresname· string · optionnel
Agent display name (e.g. 'Lead Follow-up'). Auto-derived from role when omitted.role· string · requis
Short role label (e.g. 'sales assistant')app_id· string · optionnel
Optional app to attach the agent to; account-level when omittedpersona· string · optionnel
Optional working style and tone instructions for the agentdescription· string · requis
What this agent is responsible for, one or two sentences
Exemple d'appel{"name": "create_agent", "arguments": {"role": "texte", "description": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - create_app≈ 196 tokens
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.
Paramètres, retour & exemple (3)
Paramètresname· string · requis
Name for the app (1-100 chars)prompt· string · requis
Detailed description of the app to builddescription· string · optionnel
Optional short description
Exemple d'appel{"name": "create_app", "arguments": {"name": "texte", "prompt": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - create_change_set≈ 135 tokens
Create a staged file change set. Add multiple file changes, validate them as one app state, then apply atomically.
Paramètres, retour & exemple (2)
Paramètreslabel· string · optionnel
Optional short labelapp_id· string · requis
The app ID
Exemple d'appel{"name": "create_change_set", "arguments": {"app_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - create_entity_records≈ 224 tokens
Create/insert records in one app entity. Executes directly for the authenticated app owner and returns the created record ids.
Paramètres, retour & exemple (5)
Paramètresapp_id· string · requis
The app IDentity· string · requis
Entity namereason· string · optionnel
Why these records should be createdrecords· array · requis
Records to createexpected_count· integer · optionnel
Optional safety check; the write aborts if the record count differs
Exemple d'appel{"name": "create_entity_records", "arguments": {"app_id": "texte", "entity": "texte", "records": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - create_entity_schema≈ 215 tokens
Create an entity schema file in entities/<Entity>.json. Creates a Saved Version before writing.
Paramètres, retour & exemple (7)
Paramètresapp_id· string · requis
The app IDentity· string · requis
Entity nameschema· object · requis
JSON schema objectindexes· array · optionnelmetadata· object · optionneloverwrite· boolean · optionnelrelationships· array · optionnel
Exemple d'appel{"name": "create_entity_schema", "arguments": {"app_id": "texte", "entity": "texte", "schema": {}}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - create_platform_request≈ 449 tokens
Open a request to the Fine Structure platform team: a bug, a feature request or a question about the platform itself (not about the user's app). Use it when something in the platform blocks you instead of working around it. Give a reproduction the team can run (invoke_function / curl / the exact tool call and result), what you expected, and how the team will know it is closed. Credential-looking values are redacted. Returns request_id and a Studio URL; the team's replies, status changes and deployments come back through get_platform_request / list_platform_requests. Limits: 20 per account per day, 32 KB.
Paramètres, retour & exemple (9)
Paramètresbody· string · requis
Free text, markdown allowed: context, impact, what you triedtype· string · requis · bug | feature | questiontitle· string · requis
One line, what is wrong or missingapp_id· string · optionnel
Optional: the app where it showed upexpected· string · optionnel
What should have happenedseverity· string · optionnel · blocker | high | normal | lowacceptance· string · optionnel
How the team will know it is closedattachments· array · optionnel
Optional app file paths or log idsreproduction· string · optionnel
Steps, invoke_function calls or curl commands that reproduce it
Exemple d'appel{"name": "create_platform_request", "arguments": {"body": "texte", "type": "bug", "title": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - delete_ab_test≈ 125 tokens
Delete a native A/B test from an app. Creates a Saved Version before the change.
Paramètres, retour & exemple (2)
Paramètresapp_id· string · requis
The app IDtest_id· string · requis
A/B test ID
Exemple d'appel{"name": "delete_ab_test", "arguments": {"app_id": "texte", "test_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - delete_entity_records≈ 270 tokens
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.
Paramètres, retour & exemple (6)
Paramètresapp_id· string · requis
The app IDentity· string · requis
Entity namereason· string · optionnel
Why these records should be deletedfilters· ? · optionnel
One exact-match selector or a list of exact-match selectorsrecord_ids· array · optionnel
Exact record IDs to deleteexpected_count· integer · optionnel
Required match count safety check, when known
Exemple d'appel{"name": "delete_entity_records", "arguments": {"app_id": "texte", "entity": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - delete_secret≈ 110 tokens
Delete one app secret by key.
Paramètres, retour & exemple (2)
Paramètreskey· string · requis
Secret key nameapp_id· string · requis
The app ID
Exemple d'appel{"name": "delete_secret", "arguments": {"key": "texte", "app_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - detach_agent_whatsapp≈ 142 tokens
Disconnect the owner's WhatsApp route from a platform number. Removes only this account's route; other accounts sharing the number keep theirs.
Paramètres, retour & exemple (1)
Paramètresphone_number_id· string · requis
The number to disconnect, from get_agent_whatsapp.
Exemple d'appel{"name": "detach_agent_whatsapp", "arguments": {"phone_number_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - discard_change_set≈ 127 tokens
Discard a pending staged change set without changing app files.
Paramètres, retour & exemple (2)
Paramètresapp_id· string · requis
The app IDchange_set_id· string · requis
Change set ID
Exemple d'appel{"name": "discard_change_set", "arguments": {"app_id": "texte", "change_set_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_ab_test_stats≈ 127 tokens
Get views, unique visitors, conversions, and conversion rates for an A/B test.
Paramètres, retour & exemple (2)
Paramètresapp_id· string · requis
The app IDtest_id· string · requis
A/B test ID
Exemple d'appel{"name": "get_ab_test_stats", "arguments": {"app_id": "texte", "test_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_agent_conversation≈ 225 tokens
Read visible messages, answers and result links in an owned agent's conversation. Returns the newest page in chronological order. For older history, pass next_before_id as before_id. For new replies, omit before_id.
Paramètres, retour & exemple (4)
Paramètreslimit· integer · optionnelagent_id· string · requis
Owned agent ID from list_agents.before_id· string · optionnelconversation_id· string · requis
Conversation ID returned by these tools.
Exemple d'appel{"name": "get_agent_conversation", "arguments": {"agent_id": "texte", "conversation_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_agent_task≈ 209 tokens
Check a durable task returned by send_agent_message or list_agent_tasks. Includes the latest execution status and pending approvals, including before a run starts. Task scheduling state is separate from run outcome. Read the conversation for the actual answer; accepted/queued is not completed. Approvals must still be decided by the owner in Fine Structure.
Paramètres, retour & exemple (2)
Paramètrestask_id· string · requisagent_id· string · requis
Owned agent ID from list_agents.
Exemple d'appel{"name": "get_agent_task", "arguments": {"task_id": "texte", "agent_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_agent_whatsapp≈ 166 tokens
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.
Paramètres, retour & exemple (1)
Paramètresagent_id· string · optionnel
Optional: report only this agent's WhatsApp state.
Exemple d'appel{"name": "get_agent_whatsapp", "arguments": {"agent_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_app_analytics≈ 152 tokens
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.
Paramètres, retour & exemple (2)
Paramètresdays· integer · optionnel
Window in days (1-90, default 7)app_id· string · requis
The app ID
Exemple d'appel{"name": "get_app_analytics", "arguments": {"app_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_app_detail≈ 131 tokens
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.
Paramètres, retour & exemple (1)
Paramètresapp_id· string · requis
The app ID
Exemple d'appel{"name": "get_app_detail", "arguments": {"app_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_app_files≈ 100 tokens
Get the file tree for an app with paths and byte sizes.
Paramètres, retour & exemple (1)
Paramètresapp_id· string · requis
The app ID
Exemple d'appel{"name": "get_app_files", "arguments": {"app_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_app_links≈ 132 tokens
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.
Paramètres, retour & exemple (1)
Paramètresapp_id· string · requis
The app ID
Exemple d'appel{"name": "get_app_links", "arguments": {"app_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_app_metadata≈ 121 tokens
Read the saved public HTML-shell identity: name, description, language and image URLs/dimensions. Same settings as Studio SEO/GEO.
Paramètres, retour & exemple (1)
Paramètresapp_id· string · requis
Exemple d'appel{"name": "get_app_metadata", "arguments": {"app_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_app_security_audit≈ 118 tokens
Read recent server-side security audit events for an app.
Paramètres, retour & exemple (2)
Paramètreslimit· integer · optionnelapp_id· string · requis
The app ID
Exemple d'appel{"name": "get_app_security_audit", "arguments": {"app_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_app_security_context≈ 172 tokens
Return safe security context for one owned app: owner id/email, Studio collaborators, generated-app members, route policies, entity policies, function policies, and recent security audit entries. Does not return secrets and does not grant access to other apps.
Paramètres, retour & exemple (2)
Paramètresapp_id· string · requis
The app IDaudit_limit· integer · optionnel
Exemple d'appel{"name": "get_app_security_context", "arguments": {"app_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_app_status≈ 101 tokens
Get app overview: files, published state, URL, active jobs.
Paramètres, retour & exemple (1)
Paramètresapp_id· string · requis
The app ID
Exemple d'appel{"name": "get_app_status", "arguments": {"app_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_domain_ssl_status≈ 150 tokens
Return SSL/certificate status and pending certificate validation DNS records for the app custom domain.
Paramètres, retour & exemple (2)
Paramètresapp_id· string · requis
The app IDdomain· string · optionnel
Optional configured custom domain. If omitted, uses the app's current custom domain.
Exemple d'appel{"name": "get_domain_ssl_status", "arguments": {"app_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_domain_verification≈ 151 tokens
Return the exact DNS records and instructions required to verify and route the app custom domain.
Paramètres, retour & exemple (2)
Paramètresapp_id· string · requis
The app IDdomain· string · optionnel
Optional configured custom domain. If omitted, uses the app's current custom domain.
Exemple d'appel{"name": "get_domain_verification", "arguments": {"app_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_entities≈ 114 tokens
Get all entity (data model) schemas for an app, with record counts. Each entity has fields, types, and relationships.
Paramètres, retour & exemple (1)
Paramètresapp_id· string · requis
The app ID
Exemple d'appel{"name": "get_entities", "arguments": {"app_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_errors≈ 131 tokens
Get recent runtime errors for an app (last 20). Useful for diagnosing issues before updating.
Paramètres, retour & exemple (2)
Paramètreslimit· integer · optionnel
Max errors to return (default 20)app_id· string · requis
The app ID
Exemple d'appel{"name": "get_errors", "arguments": {"app_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_job_status≈ 146 tokens
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.
Paramètres, retour & exemple (1)
Paramètresjob_id· string · requis
The job_id returned by create_app or update_app
Exemple d'appel{"name": "get_job_status", "arguments": {"job_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_pages≈ 97 tokens
Get all pages in an app with their file paths and sizes.
Paramètres, retour & exemple (1)
Paramètresapp_id· string · requis
The app ID
Exemple d'appel{"name": "get_pages", "arguments": {"app_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_platform_guide≈ 297 tokens
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.
Paramètres, retour & exemple (3)
Paramètresapp_id· string · optionnel
Optional app ID. If provided, the guide includes a safe app context summary.sections· array · optionnel
Optional subset of guide sections to return.task_type· string · optionnel
Optional task hint, for example edit_app, direct_file_edit, seed_data, or publish_app.
Exemple d'appel{"name": "get_platform_guide", "arguments": {"app_id": "texte", "sections": [], "task_type": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_platform_request≈ 168 tokens
One platform request with its full history: team replies, status changes (open | triaged | in_progress | needs_info | deployed | wont_fix) and what was deployed (commit, time). Pass since=<ISO timestamp> to get only the events after it.
Paramètres, retour & exemple (2)
Paramètressince· string · optionnel
Optional ISO timestamp: only events after itrequest_id· string · requis
Exemple d'appel{"name": "get_platform_request", "arguments": {"request_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_preview_url≈ 102 tokens
Return editor preview and published/public URLs for an app.
Paramètres, retour & exemple (1)
Paramètresapp_id· string · requis
The app ID
Exemple d'appel{"name": "get_preview_url", "arguments": {"app_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_recommended_workflow≈ 286 tokens
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.
Paramètres, retour & exemple (3)
Paramètresgoal· string · optionnel
Optional short description of the user's goal.app_id· string · optionnel
Optional app ID. If provided, the workflow includes a safe app context summary.task_type· string · optionnel · ab_test | agency_client_app | backend_function | create_app | direct_file_edit | domain_setup | edit_app | fix_runtime_error
The task type to plan.
Exemple d'appel{"name": "get_recommended_workflow", "arguments": {"goal": "texte", "app_id": "texte", "task_type": "ab_test"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - inspect_preview≈ 206 tokens
Return server-side preview context: URLs, persisted runtime/network errors, static clickable candidates, pages, and explicit live-browser availability.
Paramètres, retour & exemple (4)
Paramètresroute· string · optionnel
Optional route to inspectapp_id· string · requis
The app IDauth_as· string · optionnel
Optional auth simulation: anonymousauth_as_role· string · optionnel
Optional app role simulation, e.g. staff/admin/customer
Exemple d'appel{"name": "inspect_preview", "arguments": {"app_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - invite_app_member≈ 278 tokens
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.
Paramètres, retour & exemple (5)
Paramètresrole· string · requis
App role, e.g. admin/staff/customeremail· string · requis
Member emailapp_id· string · requis
The app IDpassword· string · requis
The password this member signs in with, chosen by the account owner. Required, and never echoed back in the result.full_name· string · optionnel
Exemple d'appel{"name": "invite_app_member", "arguments": {"role": "texte", "email": "texte", "app_id": "texte", "password": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - invoke_function≈ 284 tokens
Run a backend function of an owned app exactly like the HTTP route and return its status and JSON. caller='owner' runs as the app owner; caller='anonymous' first evaluates the function policy as a public visitor and returns the 401/403 decision without running when access would be denied. Use it to verify a function (secrets, outbound calls, policy) before wiring it into the app.
Paramètres, retour & exemple (5)
Paramètresapp_id· string · requis
The app IDcaller· string · optionnel · owner | anonymousparams· object · optionnel
JSON body passed to the functionheaders· object · optionnel
Optional extra request headers to simulate, e.g. a webhook secret headerfunction· string · requis
Function name, e.g. probe
Exemple d'appel{"name": "invoke_function", "arguments": {"app_id": "texte", "function": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - list_ab_tests≈ 99 tokens
List the platform A/B tests configured for an app.
Paramètres, retour & exemple (1)
Paramètresapp_id· string · requis
The app ID
Exemple d'appel{"name": "list_ab_tests", "arguments": {"app_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - list_agent_conversations≈ 162 tokens
List recent visible conversations belonging to one of your agents. Use get_agent_conversation to read replies and results.
Paramètres, retour & exemple (2)
Paramètreslimit· integer · optionnelagent_id· string · requis
Owned agent ID from list_agents.
Exemple d'appel{"name": "list_agent_conversations", "arguments": {"agent_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - list_agent_tasks≈ 160 tokens
List scheduled tasks for one agent (or the whole account), including schedule, status and next_run_at.
Paramètres, retour & exemple (3)
Paramètreslimit· integer · optionnel
Max tasks to return (1-100)status· string · optionnel
Optional status filter: draft, active, paused, archivedagent_id· string · optionnel
Optional agent id filter
Exemple d'appel{"name": "list_agent_tasks", "arguments": {"limit": 1, "status": "texte", "agent_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - list_agents≈ 106 tokens
List the AI agents on the user's account with id, name, role, status and FineMail address.
Paramètres, retour & exemple (1)
Paramètresapp_id· string · optionnel
Optional filter by attached app
Exemple d'appel{"name": "list_agents", "arguments": {"app_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - list_app_domains≈ 126 tokens
List an app's platform path, subdomain, and configured custom domain with verification, SSL, primary-domain, redirect, publish, and login-gating status.
Paramètres, retour & exemple (1)
Paramètresapp_id· string · requis
The app ID
Exemple d'appel{"name": "list_app_domains", "arguments": {"app_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - list_app_members≈ 114 tokens
List generated-app runtime users/members for an app. This is separate from Studio project collaborators.
Paramètres, retour & exemple (1)
Paramètresapp_id· string · requis
The app ID
Exemple d'appel{"name": "list_app_members", "arguments": {"app_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - list_apps≈ 186 tokens
List owned and accepted Studio-shared applications, newest activity first. Returns up to `limit` apps per call plus the total count; page with `offset` when the account has more. Accepted editors can edit shared source; viewers can read it. Publishing, records, domains and security administration remain owner-only.
Paramètres, retour & exemple (2)
Paramètreslimit· integer · optionnel
Max apps to return (1-200)offset· integer · optionnel
Apps to skip, for paging
Exemple d'appel{"name": "list_apps", "arguments": {"limit": 1, "offset": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - list_integrations≈ 117 tokens
List supported integrations and safe connected integration metadata for an app. Tokens/secrets are never returned.
Paramètres, retour & exemple (1)
Paramètresapp_id· string · requis
The app ID
Exemple d'appel{"name": "list_integrations", "arguments": {"app_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - list_platform_requests≈ 257 tokens
Your account's platform requests, newest activity first. Call it at the start of a session with since=<the updated_date you last saw> to learn what changed: replies, needs_info questions to answer, deployments with their commit. Filters: app_id, status.
Paramètres, retour & exemple (5)
Paramètreslimit· integer · optionnelscope· string · optionnel · mine | all
'all' = every account (platform team only)since· string · optionnel
Optional ISO timestamp: only requests touched after it, each with changes_sinceapp_id· string · optionnel
Optional app filterstatus· string · optionnel · open | triaged | in_progress | needs_info | deployed | wont_fix
Exemple d'appel{"name": "list_platform_requests", "arguments": {"limit": 1, "scope": "mine", "since": "texte", "app_id": "texte", "status": "open"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - list_saved_versions≈ 111 tokens
List restorable Saved Versions for an app, including versions created by MCP writes.
Paramètres, retour & exemple (1)
Paramètresapp_id· string · requis
The app ID
Exemple d'appel{"name": "list_saved_versions", "arguments": {"app_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - list_secret_keys≈ 105 tokens
List secret key names for an app. Secret values are never returned.
Paramètres, retour & exemple (1)
Paramètresapp_id· string · requis
The app ID
Exemple d'appel{"name": "list_secret_keys", "arguments": {"app_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - patch_app_file≈ 236 tokens
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.
Paramètres, retour & exemple (5)
Paramètrespath· string · requis
Virtual file pathapp_id· string · requis
The app IDnew_text· string · requis
Replacement textold_text· string · requis
Exact existing text to replacereplace_all· boolean · optionnel
Replace all matches instead of the first match
Exemple d'appel{"name": "patch_app_file", "arguments": {"path": "texte", "app_id": "texte", "new_text": "texte", "old_text": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - preview_saved_version≈ 180 tokens
Prepare an isolated read-only Saved Version preview, if enabled by the deployment. Returns compiled files for an offline sandbox, never restores files or reads live records. Never execute the returned program with host credentials. Requires app access and versions:read.
Paramètres, retour & exemple (2)
Paramètresapp_id· string · requissnapshot_id· string · requis
Exemple d'appel{"name": "preview_saved_version", "arguments": {"app_id": "texte", "snapshot_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - publish_app≈ 315 tokens
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.
Paramètres, retour & exemple (4)
Paramètresapp_id· string · requis
The app ID to publishaccess_mode· string · optionnel · infer | public_open | public_auth | private | keep
Live access policy. public_open = anyone can view. public_auth = public URL opens but app login is required. private = published snapshot remains owner/collaborator-only. keep = preserve current visibility/auth settings. infer = choose from existing settings and obvious app structure.make_public· boolean · optionnel
Optional explicit override for whether published URLs are publicly reachable. Prefer access_mode when possible.auth_required· boolean · optionnel
Optional explicit override for generated-app login requirement. Prefer access_mode when possible.
Exemple d'appel{"name": "publish_app", "arguments": {"app_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - query_entity≈ 219 tokens
Query app data records for one entity with optional exact-match filters.
Paramètres, retour & exemple (6)
Paramètressort· string · optionnel
Sort field, prefix with - for descendinglimit· integer · optionnel
Max records to returnapp_id· string · requis
The app IDentity· string · requis
Entity name, for example Patientoffset· integer · optionnel
Pagination offsetfilters· object · optionnel
Exact-match field filters
Exemple d'appel{"name": "query_entity", "arguments": {"app_id": "texte", "entity": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - read_app_file≈ 176 tokens
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.
Paramètres, retour & exemple (3)
Paramètrespath· string · requis
Virtual file path, for example pages/Home.jsxapp_id· string · requis
The app IDmax_chars· integer · optionnel
Maximum content characters to return
Exemple d'appel{"name": "read_app_file", "arguments": {"path": "texte", "app_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - read_app_files≈ 181 tokens
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.
Paramètres, retour & exemple (3)
Paramètrespaths· array · requis
Virtual file paths to readapp_id· string · requis
The app IDmax_chars_per_file· integer · optionnel
Maximum characters per file
Exemple d'appel{"name": "read_app_files", "arguments": {"paths": [], "app_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - remove_app_member≈ 119 tokens
Remove a generated-app runtime member.
Paramètres, retour & exemple (2)
Paramètresapp_id· string · requis
The app IDuser_id· string · requis
Generated app user id
Exemple d'appel{"name": "remove_app_member", "arguments": {"app_id": "texte", "user_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - remove_custom_domain≈ 152 tokens
Remove the configured custom domain from the app and clean up the platform-side hostname registration when possible.
Paramètres, retour & exemple (2)
Paramètresapp_id· string · requis
The app IDdomain· string · optionnel
Optional configured custom domain. If omitted, removes the current custom domain.
Exemple d'appel{"name": "remove_custom_domain", "arguments": {"app_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - rename_app_file≈ 239 tokens
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.
Paramètres, retour & exemple (5)
Paramètresforce· boolean · optionnel
Apply even if validation reports blocking errorsapp_id· string · requis
The app IDnew_path· string · requis
New virtual file pathold_path· string · requis
Existing virtual file path to renameoverwrite· boolean · optionnel
Allow replacing an existing file at new_path
Exemple d'appel{"name": "rename_app_file", "arguments": {"app_id": "texte", "new_path": "texte", "old_path": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - reply_platform_request≈ 185 tokens
Add a reply or a finding to one of your platform requests without opening a new one, e.g. to answer a needs_info question (that reopens it).
Paramètres, retour & exemple (3)
Paramètresbody· string · requis
The answer or finding (markdown allowed, credentials are redacted)as_team· boolean · optionnel
Platform team only: reply as the team (mails the requester)request_id· string · requis
Exemple d'appel{"name": "reply_platform_request", "arguments": {"body": "texte", "request_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - restore_file_from_version≈ 210 tokens
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.
Paramètres, retour & exemple (4)
Paramètrespath· string · requis
Virtual file path to restoreapp_id· string · requis
The app IDconfirm· boolean · requissnapshot_id· string · requis
Saved Version snapshot ID
Exemple d'appel{"name": "restore_file_from_version", "arguments": {"path": "texte", "app_id": "texte", "confirm": true, "snapshot_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - schedule_agent_task≈ 411 tokens
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.
Paramètres, retour & exemple (6)
Paramètrestitle· string · requis
Short task titleactivate· boolean · optionnel
Start the schedule immediately (true) or save as draft (false)agent_id· string · requis
The agent id (from create_agent or list_agents)max_runs· integer · optionnel
Optional cap on total runs (0 = unlimited)schedule· object · requis
Schedule object, e.g. {"type":"daily","time":"08:30","timezone":"Asia/Jerusalem"} or {"type":"weekly","time":"09:00","timezone":"Asia/Jerusalem","days_of_week":[0]} or {"type":"once","run_at":"2026-08-20T09:00","timezone":"Asia/Jerusalem"}instructions· string · requis
What the agent should do on each run, written as instructions to the agent
Exemple d'appel{"name": "schedule_agent_task", "arguments": {"title": "texte", "agent_id": "texte", "schedule": {}, "instructions": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - seed_entity≈ 247 tokens
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).
Paramètres, retour & exemple (5)
Paramètresmode· string · optionnel · append | skip_if_not_empty
append always inserts; skip_if_not_empty inserts only when the entity is emptyapp_id· string · requis
The app IDentity· string · requis
Entity namereason· string · optionnel
Why these records should be createdrecords· array · requis
Records to insert
Exemple d'appel{"name": "seed_entity", "arguments": {"app_id": "texte", "entity": "texte", "records": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - send_agent_message≈ 278 tokens
Talk to an existing agent or assign it work using its normal tools, memory, permissions and team. Omit conversation_id to start a new owner conversation; supply it to continue one. Returns acceptance and a durable task_id immediately, NOT a completed answer. Poll get_agent_task and read get_agent_conversation for the actual response. Work continues after MCP disconnects. A follow-up in a busy conversation uses the normal queue. Customer conversations are readable but cannot be impersonated by this tool.
Paramètres, retour & exemple (3)
Paramètresmessage· string · requisagent_id· string · requis
Owned agent ID from list_agents.conversation_id· string · optionnel
Conversation ID returned by these tools.
Exemple d'appel{"name": "send_agent_message", "arguments": {"message": "texte", "agent_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - set_agent_owner_relay≈ 188 tokens
Set the owner's consent for one owned agent to relay reports from another owned agent (or all sources with '*'). Uses the same preference as the agent screen. Does not send a message or grant access to customer conversations.
Paramètres, retour & exemple (3)
Paramètresenabled· boolean · requissource_agent_id· string · optionnelreceiving_agent_id· string · requis
Exemple d'appel{"name": "set_agent_owner_relay", "arguments": {"enabled": true, "receiving_agent_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - set_app_metadata≈ 383 tokens
Update public HTML-shell metadata immediately, without AI, code edits, publishing or Saved Versions. Upload social_image/icon as base64 PNG/JPEG/WebP (max 5 MB, 4096px); null clears an image. Language sets HTML lang/dir and OG locale. For per-page cards, write optional seo.json and publish it; dynamic entries may read only explicitly public entity records.
Paramètres, retour & exemple (7)
Paramètresicon· ? · optionnelname· string · optionnelapp_id· string · requislanguage· string · optionnel
BCP-47 code, e.g. he, ar, en-USdescription· string · optionnelsocial_image· ? · optionnelstructured_data· string · optionnel
Optional JSON-LD JSON string; empty clears it
Exemple d'appel{"name": "set_app_metadata", "arguments": {"app_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - set_app_subdomain≈ 275 tokens
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.
Paramètres, retour & exemple (2)
Paramètresapp_id· string · requis
The app IDsubdomain· string · requis
Subdomain label: 3-32 characters, lowercase letters, digits and hyphens, no leading or trailing hyphen, not a reserved platform name. Empty string clears the subdomain.
Exemple d'appel{"name": "set_app_subdomain", "arguments": {"app_id": "texte", "subdomain": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - set_entity_policy≈ 453 tokens
Replace server-side entity access policy. Optional action rules override read/write roles and can allow public create without public read, update, or delete. Omitting rules replaces any existing action rules with read/write role behavior.
Paramètres, retour & exemple (5)
Paramètresread· array · requis
Roles allowed to read when rules are omittedrules· object · optionnel
Nonempty unconditional action/role rules. No matching rule denies access. Include owner/admin actions explicitly. Record conditions are not supported by this MCP input.write· array · requis
Roles allowed to write when rules are omittedapp_id· string · requis
The app IDentity· string · requis
Entity name, e.g. Booking
Exemple d'appel{"name": "set_entity_policy", "arguments": {"read": [], "write": [], "app_id": "texte", "entity": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - set_function_policy≈ 648 tokens
Create or update the server-owned access policy of a backend function (functions/<name>.js). Without a policy a function answers only to the app owner's Studio token (401 for app visitors and webhooks). Recipes: anonymous checkout step or inbound webhook/IPN -> require_auth=false; signed-in members -> require_auth=true + allowed_roles (e.g. ['authenticated'] or ['admin','staff']); webhook with a shared secret -> require_secret=true + secret_name (an app secret) that the caller sends in secret_header. allowed_hosts fences the function's outbound network to those hosts plus the platform backend; omit it for open egress.
Paramètres, retour & exemple (9)
Paramètresapp_id· string · requis
The app IDfunction· string · requis
Function name, e.g. takbull_create (file functions/takbull_create.js)secret_name· string · optionnel
Name of the app secret holding the shared value (set_secret)require_auth· boolean · requis
false = anonymous visitors and external callers may invokesdk_identity· string · optionnel · caller | app
Whose identity the SDK inside the function uses. 'caller' (default): the function reads data as whoever called it, so an anonymous call sees only what anonymous may read. 'app': the SDK acts as the app owner on THIS app's entities (a checkout or payment IPN that must load/update orders whose read policy is owner/admin/staff); the caller still counts as anonymous for rate limits, audit and X-FSe2-Caller-Type. Owner-only. Omit to keep the stored valueallowed_hosts· array · optionnel
Outbound egress allow-list of host[:port] entries, e.g. ['api.takbull.co.il']. Omit to keep the stored list; pass [] to open egress againallowed_roles· array · optionnel
App roles allowed when require_auth is true; 'authenticated' = any signed-in app membersecret_header· string · optionnel
Header the caller sends the shared secret inrequire_secret· boolean · optionnel
Caller must send a shared secret header (webhooks)
Exemple d'appel{"name": "set_function_policy", "arguments": {"app_id": "texte", "function": "texte", "require_auth": true}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - set_primary_domain≈ 149 tokens
Set which app host should be treated as primary for generated links and custom-domain redirects.
Paramètres, retour & exemple (2)
Paramètresapp_id· string · requis
The app IDdomain· string · requis
Primary host, for example example.com, www.example.com, or the app subdomain host.
Exemple d'appel{"name": "set_primary_domain", "arguments": {"app_id": "texte", "domain": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - set_route_policy≈ 190 tokens
Create or update a server-owned route policy for a generated app route.
Paramètres, retour & exemple (5)
Paramètresroute· string · requis
Route or wildcard route, e.g. /admin/*app_id· string · requis
The app IDredirect_to· string · optionnelrequire_auth· boolean · requisallowed_roles· array · requis
Allowed app roles
Exemple d'appel{"name": "set_route_policy", "arguments": {"route": "texte", "app_id": "texte", "require_auth": true, "allowed_roles": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - set_secret≈ 143 tokens
Create or update one encrypted app secret. The secret value is never returned.
Paramètres, retour & exemple (3)
Paramètreskey· string · requis
Secret key namevalue· string · requis
Secret value to encrypt and storeapp_id· string · requis
The app ID
Exemple d'appel{"name": "set_secret", "arguments": {"key": "texte", "value": "texte", "app_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - start_owner_phone_verification≈ 228 tokens
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.
Paramètres, retour & exemple (2)
Paramètresphone· string · requis
The owner's own WhatsApp number, ideally in E.164 form such as +972501234567.region· string · optionnel
Optional ISO region hint (for example IL, US) used when the number has no country code.
Exemple d'appel{"name": "start_owner_phone_verification", "arguments": {"phone": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - update_ab_test≈ 270 tokens
Update a native A/B test, including active state, variants, traffic, and conversion goal. Creates a Saved Version before the change.
Paramètres, retour & exemple (8)
Paramètresname· string · optionnel
Optional new nameapp_id· string · requis
The app IDtest_id· string · requis
A/B test IDvariants· array · optionnel
Optional replacement variants. Traffic must total 100.is_active· boolean · optionnel
Optional active statepage_name· string · optionnel
Optional new base route pagegoal_event_type· string · optionnel
Optional conversion goal typegoal_event_filter· object · optionnel
Optional conversion goal filter
Exemple d'appel{"name": "update_ab_test", "arguments": {"app_id": "texte", "test_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - update_app≈ 158 tokens
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.
Paramètres, retour & exemple (2)
Paramètresapp_id· string · requis
The app ID to updateprompt· string · requis
What to change in the app
Exemple d'appel{"name": "update_app", "arguments": {"app_id": "texte", "prompt": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - update_app_member_role≈ 159 tokens
Update a generated-app runtime member role. This cannot assign owner and cannot change the Fine Structure account owner.
Paramètres, retour & exemple (3)
Paramètresrole· string · requis
New roleapp_id· string · requis
The app IDuser_id· string · requis
Generated app user id
Exemple d'appel{"name": "update_app_member_role", "arguments": {"role": "texte", "app_id": "texte", "user_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - update_entity_metadata≈ 200 tokens
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.
Paramètres, retour & exemple (5)
Paramètresapp_id· string · requis
The app IDentity· string · requis
Entity nameindexes· array · optionnelmetadata· object · optionnelrelationships· array · optionnel
Exemple d'appel{"name": "update_entity_metadata", "arguments": {"app_id": "texte", "entity": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - update_entity_record≈ 198 tokens
Compatibility tool that updates one record by ID. Executes directly for the authenticated app owner.
Paramètres, retour & exemple (5)
Paramètresdata· object · requis
Fields to merge into the recordapp_id· string · requis
The app IDentity· string · requis
Entity namereason· string · optionnel
Why this record should be updatedrecord_id· string · requis
Record ID
Exemple d'appel{"name": "update_entity_record", "arguments": {"data": {}, "app_id": "texte", "entity": "texte", "record_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - update_entity_records≈ 372 tokens
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.
Paramètres, retour & exemple (8)
Paramètresapp_id· string · requis
The app IDentity· string · requis
Entity namereason· string · optionnel
Why these records should be updatedchanges· object · optionnel
Shared fields to merge into every selected recordfilters· ? · optionnel
One exact-match selector or a list of exact-match selectorsupdates· array · optionnel
Per-record changes; use instead of shared changesrecord_ids· array · optionnel
Exact record IDs to updateexpected_count· integer · optionnel
Required match count safety check, when known
Exemple d'appel{"name": "update_entity_records", "arguments": {"app_id": "texte", "entity": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - update_entity_schema≈ 217 tokens
Replace or shallow-merge an existing entity schema file. Creates a Saved Version before writing.
Paramètres, retour & exemple (7)
Paramètresmerge· boolean · optionnelapp_id· string · requis
The app IDentity· string · requis
Entity nameschema· object · requis
Schema fields to set or mergeindexes· array · optionnelmetadata· object · optionnelrelationships· array · optionnel
Exemple d'appel{"name": "update_entity_schema", "arguments": {"app_id": "texte", "entity": "texte", "schema": {}}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - update_platform_request≈ 196 tokens
Platform team only: set the status of a request (open | triaged | in_progress | needs_info | deployed | wont_fix), attach the deployed commit and/or reply. deployed and needs_info mail the requester.
Paramètres, retour & exemple (4)
Paramètresreply· string · optionnelstatus· string · optionnel · open | triaged | in_progress | needs_info | deployed | wont_fixrequest_id· string · requisdeployed_commit· string · optionnel
Commit hash or tag that shipped it
Exemple d'appel{"name": "update_platform_request", "arguments": {"request_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - validate_app≈ 132 tokens
Run deterministic app checks: syntax, imports, routes/pages, entity schemas, missing entities, and recorded runtime errors.
Paramètres, retour & exemple (2)
Paramètresapp_id· string · requis
The app IDinclude_runtime_errors· boolean · optionnel
Exemple d'appel{"name": "validate_app", "arguments": {"app_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - validate_change_set≈ 146 tokens
Validate current app files plus staged change set files before applying.
Paramètres, retour & exemple (3)
Paramètresapp_id· string · requis
The app IDchange_set_id· string · requis
Change set IDinclude_runtime_errors· boolean · optionnel
Exemple d'appel{"name": "validate_change_set", "arguments": {"app_id": "texte", "change_set_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - validate_entity_relationships≈ 120 tokens
Validate entity relationship metadata and *_id references against existing entity schemas.
Paramètres, retour & exemple (1)
Paramètresapp_id· string · requis
The app ID
Exemple d'appel{"name": "validate_entity_relationships", "arguments": {"app_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - write_app_file≈ 201 tokens
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.
Paramètres, retour & exemple (4)
Paramètrespath· string · requis
Virtual file pathapp_id· string · requis
The app IDcontent· string · requis
Complete file contentsfile_type· string · optionnel
Optional file type override
Exemple d'appel{"name": "write_app_file", "arguments": {"path": "texte", "app_id": "texte", "content": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]}
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».