Fine Structure
Ce que fait ce MCP
Builds and hosts full-stack applications from prompts and supports agent communication through WhatsApp and email.
Outils
Schéma d’entrée
{'type': 'object', 'required': ['app_id', 'domain'], 'properties': {'app_id': {'type': 'string', 'description': 'The app ID'}, 'domain': {'type': 'string', 'description': 'Custom domain to connect, for example example.com or app.example.com'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id', 'change_set_id', 'path'], 'properties': {'path': {'type': 'string', 'description': 'Virtual file path'}, 'app_id': {'type': 'string', 'description': 'The app ID'}, 'content': {'type': 'string', 'default': '', 'description': 'Complete file contents for upsert'}, 'file_type': {'type': 'string', 'default': '', 'description': 'Optional file type override'}, 'operation': {'enum': ['upsert', 'delete'], 'type': 'string', 'default': 'upsert'}, 'change_set_id': {'type': 'string', 'description': 'Change set ID'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id', 'client_email'], 'properties': {'note': {'type': 'string', 'default': '', 'description': 'Optional internal note'}, 'app_id': {'type': 'string', 'description': 'Existing app ID owned by the agent'}, 'client_email': {'type': 'string', 'description': 'Client email allowed to claim ownership'}, 'client_full_name': {'type': 'string', 'default': '', 'description': 'Optional client display name'}, 'claim_expires_in_days': {'type': 'integer', 'default': 14, 'description': 'Claim link lifetime, 1-90 days'}, 'keep_agent_collaborator': {'type': 'boolean', 'default': True, 'description': 'Invite agent as editor after claim'}}}
Schéma d’entrée
{'type': 'object', 'required': ['client_email'], 'properties': {'note': {'type': 'string', 'default': '', 'description': 'Optional internal note for the agency'}, 'client_email': {'type': 'string', 'description': 'Client email that will be allowed to claim projects'}, 'client_full_name': {'type': 'string', 'default': '', 'description': 'Optional client display name'}}}
Schéma d’entrée
{'type': 'object', 'required': ['client_email', 'name', 'prompt'], 'properties': {'name': {'type': 'string', 'description': 'Name for the app (1-100 chars)'}, 'note': {'type': 'string', 'default': '', 'description': 'Optional internal client/project note'}, 'prompt': {'type': 'string', 'description': 'Detailed description of the app to build'}, 'description': {'type': 'string', 'default': '', 'description': 'Optional short app description'}, 'client_email': {'type': 'string', 'description': 'Client email allowed to claim ownership'}, 'client_full_name': {'type': 'string', 'default': '', 'description': 'Optional client display name'}, 'claim_expires_in_days': {'type': 'integer', 'default': 14, 'description': 'Claim link lifetime, 1-90 days'}, 'keep_agent_collaborator': {'type': 'boolean', 'default': True, 'description': 'After claim, invite the agent back as an editor collaborator'}}}
Schéma d’entrée
{'type': 'object', 'required': ['handoff_id'], 'properties': {'handoff_id': {'type': 'string', 'description': 'Handoff ID returned by agency_create_claim_link or agency_create_client_app'}}}
Schéma d’entrée
{'type': 'object', 'properties': {'include_handoffs': {'type': 'boolean', 'default': True, 'description': 'Include claim links status without raw tokens'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id', 'change_set_id'], 'properties': {'force': {'type': 'boolean', 'default': False, 'description': 'Apply even if validation has errors'}, 'app_id': {'type': 'string', 'description': 'The app ID'}, 'change_set_id': {'type': 'string', 'description': 'Change set ID'}}}
Schéma d’entrée
{'type': 'object', 'required': ['agent_id', 'phone_number_id'], 'properties': {'agent_id': {'type': 'string', 'description': 'The agent that should answer on this number.'}, 'phone_number_id': {'type': 'string', 'description': 'phone_number_id from get_agent_whatsapp claimable_numbers.'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id'], 'properties': {'app_id': {'type': 'string', 'description': 'The app ID'}, 'domain': {'type': 'string', 'description': "Optional configured custom domain. If omitted, uses the app's current custom domain."}}}
Schéma d’entrée
{'type': 'object', 'required': ['subdomain'], 'properties': {'app_id': {'type': 'string', 'description': "Optional ID of an app you own. When supplied, this app's own subdomain reports as 'current' instead of 'taken'."}, 'subdomain': {'type': 'string', 'description': 'Subdomain label to check'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id', 'snapshot_id'], 'properties': {'app_id': {'type': 'string', 'description': 'The app ID'}, 'snapshot_id': {'type': 'string', 'description': 'Saved Version snapshot ID'}, 'max_diff_chars': {'type': 'integer', 'default': 12000}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id', 'base_snapshot_id', 'target_snapshot_id'], 'properties': {'app_id': {'type': 'string', 'description': 'The app ID'}, 'max_diff_chars': {'type': 'integer', 'default': 12000}, 'base_snapshot_id': {'type': 'string', 'description': 'Older/base snapshot ID'}, 'target_snapshot_id': {'type': 'string', 'description': 'Newer/target snapshot ID'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id', 'primary_domain'], 'properties': {'app_id': {'type': 'string', 'description': 'The app ID'}, 'force_https': {'type': 'boolean', 'default': True, 'description': 'Redirect HTTP custom-domain requests to HTTPS'}, 'redirect_www': {'type': 'boolean', 'default': True, 'description': 'Redirect the www/root counterpart to primary_domain'}, 'primary_domain': {'type': 'string', 'description': 'Canonical primary domain, for example example.com'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id', 'provider', 'config'], 'properties': {'app_id': {'type': 'string', 'description': 'The app ID'}, 'config': {'type': 'object', 'description': 'Safe metadata only, such as workspace/team/name/email'}, 'provider': {'type': 'string', 'description': 'Integration provider ID'}, 'is_active': {'type': 'boolean', 'default': True, 'description': 'Set false to disconnect this integration metadata'}}}
Schéma d’entrée
{'type': 'object', 'required': ['phone', 'code'], 'properties': {'code': {'type': 'string', 'description': 'The 6-digit code from the WhatsApp message.'}, 'phone': {'type': 'string', 'description': 'The same phone number the code was sent to.'}, 'region': {'type': 'string', 'description': 'Optional ISO region hint, matching the one used when sending.'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id', 'name', 'page_name', 'variants'], 'properties': {'name': {'type': 'string', 'description': 'Experiment name'}, 'app_id': {'type': 'string', 'description': 'The app ID'}, 'variants': {'type': 'array', 'items': {'type': 'object', 'required': ['page_name', 'traffic_percent'], 'properties': {'page_name': {'type': 'string', 'description': 'Existing app page name or path'}, 'traffic_percent': {'type': 'integer', 'description': 'Traffic percentage for this variant'}}}, 'description': 'At least two variants. Traffic must total 100.'}, 'is_active': {'type': 'boolean', 'default': True, 'description': 'Whether to activate the test immediately'}, 'page_name': {'type': 'string', 'description': 'Base route page that triggers the experiment'}, 'goal_event_type': {'type': 'string', 'description': 'Optional conversion goal type: entity_create, any, form_submit'}, 'goal_event_filter': {'type': 'object', 'description': "Optional goal filter, for example {'entity_name': 'Lead'}"}}}
Schéma d’entrée
{'type': 'object', 'required': ['role', 'description'], 'properties': {'name': {'type': 'string', 'description': "Agent display name (e.g. 'Lead Follow-up'). Auto-derived from role when omitted."}, 'role': {'type': 'string', 'description': "Short role label (e.g. 'sales assistant')"}, 'app_id': {'type': 'string', 'description': 'Optional app to attach the agent to; account-level when omitted'}, 'persona': {'type': 'string', 'description': 'Optional working style and tone instructions for the agent'}, 'description': {'type': 'string', 'description': 'What this agent is responsible for, one or two sentences'}}}
Schéma d’entrée
{'type': 'object', 'required': ['name', 'prompt'], 'properties': {'name': {'type': 'string', 'description': 'Name for the app (1-100 chars)'}, 'prompt': {'type': 'string', 'description': 'Detailed description of the app to build'}, 'description': {'type': 'string', 'default': '', 'description': 'Optional short description'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id'], 'properties': {'label': {'type': 'string', 'description': 'Optional short label'}, 'app_id': {'type': 'string', 'description': 'The app ID'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id', 'entity', 'records'], 'properties': {'app_id': {'type': 'string', 'description': 'The app ID'}, 'entity': {'type': 'string', 'description': 'Entity name'}, 'reason': {'type': 'string', 'default': '', 'description': 'Why these records should be created'}, 'records': {'type': 'array', 'items': {'type': 'object'}, 'description': 'Records to create'}, 'expected_count': {'type': 'integer', 'description': 'Optional safety check; the write aborts if the record count differs'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id', 'entity', 'schema'], 'properties': {'app_id': {'type': 'string', 'description': 'The app ID'}, 'entity': {'type': 'string', 'description': 'Entity name'}, 'schema': {'type': 'object', 'description': 'JSON schema object'}, 'indexes': {'type': 'array', 'items': {'type': 'object'}, 'default': []}, 'metadata': {'type': 'object', 'default': {}}, 'overwrite': {'type': 'boolean', 'default': False}, 'relationships': {'type': 'array', 'items': {'type': 'object'}, 'default': []}}}
Schéma d’entrée
{'type': 'object', 'required': ['type', 'title', 'body'], 'properties': {'body': {'type': 'string', 'description': 'Free text, markdown allowed: context, impact, what you tried'}, 'type': {'enum': ['bug', 'feature', 'question'], 'type': 'string'}, 'title': {'type': 'string', 'description': 'One line, what is wrong or missing'}, 'app_id': {'type': 'string', 'description': 'Optional: the app where it showed up'}, 'expected': {'type': 'string', 'description': 'What should have happened'}, 'severity': {'enum': ['blocker', 'high', 'normal', 'low'], 'type': 'string', 'default': 'normal'}, 'acceptance': {'type': 'string', 'description': 'How the team will know it is closed'}, 'attachments': {'type': 'array', 'items': {'type': 'string'}, 'default': [], 'description': 'Optional app file paths or log ids'}, 'reproduction': {'type': 'string', 'description': 'Steps, invoke_function calls or curl commands that reproduce it'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id', 'test_id'], 'properties': {'app_id': {'type': 'string', 'description': 'The app ID'}, 'test_id': {'type': 'string', 'description': 'A/B test ID'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id', 'entity'], 'properties': {'app_id': {'type': 'string', 'description': 'The app ID'}, 'entity': {'type': 'string', 'description': 'Entity name'}, 'reason': {'type': 'string', 'default': '', 'description': 'Why these records should be deleted'}, 'filters': {'oneOf': [{'type': 'object'}, {'type': 'array', 'items': {'type': 'object'}}], 'description': 'One exact-match selector or a list of exact-match selectors'}, 'record_ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Exact record IDs to delete'}, 'expected_count': {'type': 'integer', 'description': 'Required match count safety check, when known'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id', 'key'], 'properties': {'key': {'type': 'string', 'description': 'Secret key name'}, 'app_id': {'type': 'string', 'description': 'The app ID'}}}
Schéma d’entrée
{'type': 'object', 'required': ['phone_number_id'], 'properties': {'phone_number_id': {'type': 'string', 'description': 'The number to disconnect, from get_agent_whatsapp.'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id', 'change_set_id'], 'properties': {'app_id': {'type': 'string', 'description': 'The app ID'}, 'change_set_id': {'type': 'string', 'description': 'Change set ID'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id', 'test_id'], 'properties': {'app_id': {'type': 'string', 'description': 'The app ID'}, 'test_id': {'type': 'string', 'description': 'A/B test ID'}}}
Schéma d’entrée
{'type': 'object', 'properties': {'agent_id': {'type': 'string', 'description': "Optional: report only this agent's WhatsApp state."}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id'], 'properties': {'days': {'type': 'integer', 'default': 7, 'description': 'Window in days (1-90, default 7)'}, 'app_id': {'type': 'string', 'description': 'The app ID'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id'], 'properties': {'app_id': {'type': 'string', 'description': 'The app ID'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id'], 'properties': {'app_id': {'type': 'string', 'description': 'The app ID'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id'], 'properties': {'app_id': {'type': 'string', 'description': 'The app ID'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id'], 'properties': {'limit': {'type': 'integer', 'default': 100}, 'app_id': {'type': 'string', 'description': 'The app ID'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id'], 'properties': {'app_id': {'type': 'string', 'description': 'The app ID'}, 'audit_limit': {'type': 'integer', 'default': 50}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id'], 'properties': {'app_id': {'type': 'string', 'description': 'The app ID'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id'], 'properties': {'app_id': {'type': 'string', 'description': 'The app ID'}, 'domain': {'type': 'string', 'description': "Optional configured custom domain. If omitted, uses the app's current custom domain."}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id'], 'properties': {'app_id': {'type': 'string', 'description': 'The app ID'}, 'domain': {'type': 'string', 'description': "Optional configured custom domain. If omitted, uses the app's current custom domain."}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id'], 'properties': {'app_id': {'type': 'string', 'description': 'The app ID'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id'], 'properties': {'limit': {'type': 'integer', 'default': 20, 'description': 'Max errors to return (default 20)'}, 'app_id': {'type': 'string', 'description': 'The app ID'}}}
Schéma d’entrée
{'type': 'object', 'required': ['job_id'], 'properties': {'job_id': {'type': 'string', 'description': 'The job_id returned by create_app or update_app'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id'], 'properties': {'app_id': {'type': 'string', 'description': 'The app ID'}}}
Schéma d’entrée
{'type': 'object', 'properties': {'app_id': {'type': 'string', 'description': 'Optional app ID. If provided, the guide includes a safe app context summary.'}, 'sections': {'type': 'array', 'items': {'enum': ['ab_testing', 'agency', 'agents', 'app_code', 'checklists', 'data_model', 'direct_file_edit', 'domains', 'file_model', 'functions', 'generation', 'media', 'overview', 'platform_requests', 'publishing', 'saas', 'safety', 'sdk', 'secrets_integrations', 'security', 'validation'], 'type': 'string'}, 'description': 'Optional subset of guide sections to return.'}, 'task_type': {'type': 'string', 'description': 'Optional task hint, for example edit_app, direct_file_edit, seed_data, or publish_app.'}}}
Schéma d’entrée
{'type': 'object', 'required': ['request_id'], 'properties': {'since': {'type': 'string', 'description': 'Optional ISO timestamp: only events after it'}, 'request_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id'], 'properties': {'app_id': {'type': 'string', 'description': 'The app ID'}}}
Schéma d’entrée
{'type': 'object', 'properties': {'goal': {'type': 'string', 'default': '', 'description': "Optional short description of the user's goal."}, 'app_id': {'type': 'string', 'description': 'Optional app ID. If provided, the workflow includes a safe app context summary.'}, 'task_type': {'enum': ['ab_test', 'agency_client_app', 'backend_function', 'create_app', 'direct_file_edit', 'domain_setup', 'edit_app', 'fix_runtime_error', 'generate_media', 'inspect_preview', 'publish_app', 'saas_setup', 'schema_change', 'secrets_integration', 'security_setup', 'seed_data', 'unknown', 'version_restore'], 'type': 'string', 'default': 'unknown', 'description': 'The task type to plan.'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id'], 'properties': {'route': {'type': 'string', 'default': '', 'description': 'Optional route to inspect'}, 'app_id': {'type': 'string', 'description': 'The app ID'}, 'auth_as': {'type': 'string', 'default': '', 'description': 'Optional auth simulation: anonymous'}, 'auth_as_role': {'type': 'string', 'default': '', 'description': 'Optional app role simulation, e.g. staff/admin/customer'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id', 'email', 'role', 'password'], 'properties': {'role': {'type': 'string', 'description': 'App role, e.g. admin/staff/customer'}, 'email': {'type': 'string', 'description': 'Member email'}, 'app_id': {'type': 'string', 'description': 'The app ID'}, 'password': {'type': 'string', 'description': 'The password this member signs in with, chosen by the account owner. Required, and never echoed back in the result.'}, 'full_name': {'type': 'string', 'default': ''}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id', 'function'], 'properties': {'app_id': {'type': 'string', 'description': 'The app ID'}, 'caller': {'enum': ['owner', 'anonymous'], 'type': 'string', 'default': 'owner'}, 'params': {'type': 'object', 'default': {}, 'description': 'JSON body passed to the function'}, 'headers': {'type': 'object', 'default': {}, 'description': 'Optional extra request headers to simulate, e.g. a webhook secret header'}, 'function': {'type': 'string', 'description': 'Function name, e.g. probe'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id'], 'properties': {'app_id': {'type': 'string', 'description': 'The app ID'}}}
Schéma d’entrée
{'type': 'object', 'properties': {'app_id': {'type': 'string', 'description': 'Optional filter by attached app'}}}
Schéma d’entrée
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 50, 'description': 'Max tasks to return (1-100)'}, 'status': {'type': 'string', 'description': 'Optional status filter: draft, active, paused, archived'}, 'agent_id': {'type': 'string', 'description': 'Optional agent id filter'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id'], 'properties': {'app_id': {'type': 'string', 'description': 'The app ID'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id'], 'properties': {'app_id': {'type': 'string', 'description': 'The app ID'}}}
Schéma d’entrée
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 50, 'description': 'Max apps to return (1-200)'}, 'offset': {'type': 'integer', 'default': 0, 'description': 'Apps to skip, for paging'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id'], 'properties': {'app_id': {'type': 'string', 'description': 'The app ID'}}}
Schéma d’entrée
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 100}, 'scope': {'enum': ['mine', 'all'], 'type': 'string', 'default': 'mine', 'description': "'all' = every account (platform team only)"}, 'since': {'type': 'string', 'description': 'Optional ISO timestamp: only requests touched after it, each with changes_since'}, 'app_id': {'type': 'string', 'description': 'Optional app filter'}, 'status': {'enum': ['open', 'triaged', 'in_progress', 'needs_info', 'deployed', 'wont_fix'], 'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id'], 'properties': {'app_id': {'type': 'string', 'description': 'The app ID'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id'], 'properties': {'app_id': {'type': 'string', 'description': 'The app ID'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id', 'path', 'old_text', 'new_text'], 'properties': {'path': {'type': 'string', 'description': 'Virtual file path'}, 'app_id': {'type': 'string', 'description': 'The app ID'}, 'new_text': {'type': 'string', 'description': 'Replacement text'}, 'old_text': {'type': 'string', 'description': 'Exact existing text to replace'}, 'replace_all': {'type': 'boolean', 'default': False, 'description': 'Replace all matches instead of the first match'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id'], 'properties': {'app_id': {'type': 'string', 'description': 'The app ID to publish'}, 'access_mode': {'enum': ['infer', 'public_open', 'public_auth', 'private', 'keep'], 'type': 'string', 'default': 'infer', 'description': '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': {'type': 'boolean', 'description': 'Optional explicit override for whether published URLs are publicly reachable. Prefer access_mode when possible.'}, 'auth_required': {'type': 'boolean', 'description': 'Optional explicit override for generated-app login requirement. Prefer access_mode when possible.'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id', 'entity'], 'properties': {'sort': {'type': 'string', 'default': '-created_date', 'description': 'Sort field, prefix with - for descending'}, 'limit': {'type': 'integer', 'default': 100, 'description': 'Max records to return'}, 'app_id': {'type': 'string', 'description': 'The app ID'}, 'entity': {'type': 'string', 'description': 'Entity name, for example Patient'}, 'offset': {'type': 'integer', 'default': 0, 'description': 'Pagination offset'}, 'filters': {'type': 'object', 'default': {}, 'description': 'Exact-match field filters'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id', 'path'], 'properties': {'path': {'type': 'string', 'description': 'Virtual file path, for example pages/Home.jsx'}, 'app_id': {'type': 'string', 'description': 'The app ID'}, 'max_chars': {'type': 'integer', 'default': 200000, 'description': 'Maximum content characters to return'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id', 'paths'], 'properties': {'paths': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Virtual file paths to read'}, 'app_id': {'type': 'string', 'description': 'The app ID'}, 'max_chars_per_file': {'type': 'integer', 'default': 100000, 'description': 'Maximum characters per file'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id', 'user_id'], 'properties': {'app_id': {'type': 'string', 'description': 'The app ID'}, 'user_id': {'type': 'string', 'description': 'Generated app user id'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id'], 'properties': {'app_id': {'type': 'string', 'description': 'The app ID'}, 'domain': {'type': 'string', 'description': 'Optional configured custom domain. If omitted, removes the current custom domain.'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id', 'old_path', 'new_path'], 'properties': {'force': {'type': 'boolean', 'default': False, 'description': 'Apply even if validation reports blocking errors'}, 'app_id': {'type': 'string', 'description': 'The app ID'}, 'new_path': {'type': 'string', 'description': 'New virtual file path'}, 'old_path': {'type': 'string', 'description': 'Existing virtual file path to rename'}, 'overwrite': {'type': 'boolean', 'default': False, 'description': 'Allow replacing an existing file at new_path'}}}
Schéma d’entrée
{'type': 'object', 'required': ['request_id', 'body'], 'properties': {'body': {'type': 'string', 'description': 'The answer or finding (markdown allowed, credentials are redacted)'}, 'as_team': {'type': 'boolean', 'default': False, 'description': 'Platform team only: reply as the team (mails the requester)'}, 'request_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id', 'snapshot_id', 'path', 'confirm'], 'properties': {'path': {'type': 'string', 'description': 'Virtual file path to restore'}, 'app_id': {'type': 'string', 'description': 'The app ID'}, 'confirm': {'type': 'boolean', 'default': False}, 'snapshot_id': {'type': 'string', 'description': 'Saved Version snapshot ID'}}}
Schéma d’entrée
{'type': 'object', 'required': ['agent_id', 'title', 'instructions', 'schedule'], 'properties': {'title': {'type': 'string', 'description': 'Short task title'}, 'activate': {'type': 'boolean', 'default': True, 'description': 'Start the schedule immediately (true) or save as draft (false)'}, 'agent_id': {'type': 'string', 'description': 'The agent id (from create_agent or list_agents)'}, 'max_runs': {'type': 'integer', 'default': 0, 'description': 'Optional cap on total runs (0 = unlimited)'}, 'schedule': {'type': 'object', 'description': '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': {'type': 'string', 'description': 'What the agent should do on each run, written as instructions to the agent'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id', 'entity', 'records'], 'properties': {'mode': {'enum': ['append', 'skip_if_not_empty'], 'type': 'string', 'default': 'skip_if_not_empty', 'description': 'append always inserts; skip_if_not_empty inserts only when the entity is empty'}, 'app_id': {'type': 'string', 'description': 'The app ID'}, 'entity': {'type': 'string', 'description': 'Entity name'}, 'reason': {'type': 'string', 'default': '', 'description': 'Why these records should be created'}, 'records': {'type': 'array', 'items': {'type': 'object'}, 'description': 'Records to insert'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id', 'subdomain'], 'properties': {'app_id': {'type': 'string', 'description': 'The app ID'}, 'subdomain': {'type': 'string', 'description': '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.'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id', 'entity', 'read', 'write'], 'properties': {'read': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Roles allowed to read when rules are omitted'}, 'rules': {'type': 'object', 'required': ['rules'], 'properties': {'rules': {'type': 'array', 'items': {'type': 'object', 'required': ['actions', 'subject'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'actions': {'type': 'array', 'items': {'enum': ['create', 'read', 'update', 'delete', 'write'], 'type': 'string'}, 'minItems': 1}, 'subject': {'type': 'object', 'required': ['roles'], 'properties': {'roles': {'type': 'array', 'items': {'type': 'string'}, 'minItems': 1}}, 'additionalProperties': False}, 'description': {'type': 'string'}}, 'additionalProperties': False}, 'minItems': 1}, 'version': {'enum': [1], 'type': 'integer'}}, 'description': 'Nonempty unconditional action/role rules. No matching rule denies access. Include owner/admin actions explicitly. Record conditions are not supported by this MCP input.', 'additionalProperties': False}, 'write': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Roles allowed to write when rules are omitted'}, 'app_id': {'type': 'string', 'description': 'The app ID'}, 'entity': {'type': 'string', 'description': 'Entity name, e.g. Booking'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id', 'function', 'require_auth'], 'properties': {'app_id': {'type': 'string', 'description': 'The app ID'}, 'function': {'type': 'string', 'description': 'Function name, e.g. takbull_create (file functions/takbull_create.js)'}, 'secret_name': {'type': 'string', 'default': '', 'description': 'Name of the app secret holding the shared value (set_secret)'}, 'require_auth': {'type': 'boolean', 'default': True, 'description': 'false = anonymous visitors and external callers may invoke'}, 'sdk_identity': {'enum': ['caller', 'app'], 'type': 'string', 'description': "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 value"}, 'allowed_hosts': {'type': 'array', 'items': {'type': 'string'}, 'description': "Outbound egress allow-list of host[:port] entries, e.g. ['api.takbull.co.il']. Omit to keep the stored list; pass [] to open egress again"}, 'allowed_roles': {'type': 'array', 'items': {'type': 'string'}, 'default': [], 'description': "App roles allowed when require_auth is true; 'authenticated' = any signed-in app member"}, 'secret_header': {'type': 'string', 'default': 'x-fse2-secret', 'description': 'Header the caller sends the shared secret in'}, 'require_secret': {'type': 'boolean', 'default': False, 'description': 'Caller must send a shared secret header (webhooks)'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id', 'domain'], 'properties': {'app_id': {'type': 'string', 'description': 'The app ID'}, 'domain': {'type': 'string', 'description': 'Primary host, for example example.com, www.example.com, or the app subdomain host.'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id', 'route', 'require_auth', 'allowed_roles'], 'properties': {'route': {'type': 'string', 'description': 'Route or wildcard route, e.g. /admin/*'}, 'app_id': {'type': 'string', 'description': 'The app ID'}, 'redirect_to': {'type': 'string', 'default': '/Login'}, 'require_auth': {'type': 'boolean', 'default': True}, 'allowed_roles': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Allowed app roles'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id', 'key', 'value'], 'properties': {'key': {'type': 'string', 'description': 'Secret key name'}, 'value': {'type': 'string', 'description': 'Secret value to encrypt and store'}, 'app_id': {'type': 'string', 'description': 'The app ID'}}}
Schéma d’entrée
{'type': 'object', 'required': ['phone'], 'properties': {'phone': {'type': 'string', 'description': "The owner's own WhatsApp number, ideally in E.164 form such as +972501234567."}, 'region': {'type': 'string', 'description': 'Optional ISO region hint (for example IL, US) used when the number has no country code.'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id', 'test_id'], 'properties': {'name': {'type': 'string', 'description': 'Optional new name'}, 'app_id': {'type': 'string', 'description': 'The app ID'}, 'test_id': {'type': 'string', 'description': 'A/B test ID'}, 'variants': {'type': 'array', 'items': {'type': 'object'}, 'description': 'Optional replacement variants. Traffic must total 100.'}, 'is_active': {'type': 'boolean', 'description': 'Optional active state'}, 'page_name': {'type': 'string', 'description': 'Optional new base route page'}, 'goal_event_type': {'type': 'string', 'description': 'Optional conversion goal type'}, 'goal_event_filter': {'type': 'object', 'description': 'Optional conversion goal filter'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id', 'prompt'], 'properties': {'app_id': {'type': 'string', 'description': 'The app ID to update'}, 'prompt': {'type': 'string', 'description': 'What to change in the app'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id', 'user_id', 'role'], 'properties': {'role': {'type': 'string', 'description': 'New role'}, 'app_id': {'type': 'string', 'description': 'The app ID'}, 'user_id': {'type': 'string', 'description': 'Generated app user id'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id', 'entity'], 'properties': {'app_id': {'type': 'string', 'description': 'The app ID'}, 'entity': {'type': 'string', 'description': 'Entity name'}, 'indexes': {'type': 'array', 'items': {'type': 'object'}, 'default': []}, 'metadata': {'type': 'object', 'default': {}}, 'relationships': {'type': 'array', 'items': {'type': 'object'}, 'default': []}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id', 'entity', 'record_id', 'data'], 'properties': {'data': {'type': 'object', 'description': 'Fields to merge into the record'}, 'app_id': {'type': 'string', 'description': 'The app ID'}, 'entity': {'type': 'string', 'description': 'Entity name'}, 'reason': {'type': 'string', 'default': '', 'description': 'Why this record should be updated'}, 'record_id': {'type': 'string', 'description': 'Record ID'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id', 'entity'], 'properties': {'app_id': {'type': 'string', 'description': 'The app ID'}, 'entity': {'type': 'string', 'description': 'Entity name'}, 'reason': {'type': 'string', 'default': '', 'description': 'Why these records should be updated'}, 'changes': {'type': 'object', 'description': 'Shared fields to merge into every selected record'}, 'filters': {'oneOf': [{'type': 'object'}, {'type': 'array', 'items': {'type': 'object'}}], 'description': 'One exact-match selector or a list of exact-match selectors'}, 'updates': {'type': 'array', 'items': {'type': 'object', 'required': ['record_id', 'changes'], 'properties': {'changes': {'type': 'object'}, 'record_id': {'type': 'string'}}}, 'description': 'Per-record changes; use instead of shared changes'}, 'record_ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Exact record IDs to update'}, 'expected_count': {'type': 'integer', 'description': 'Required match count safety check, when known'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id', 'entity', 'schema'], 'properties': {'merge': {'type': 'boolean', 'default': True}, 'app_id': {'type': 'string', 'description': 'The app ID'}, 'entity': {'type': 'string', 'description': 'Entity name'}, 'schema': {'type': 'object', 'description': 'Schema fields to set or merge'}, 'indexes': {'type': 'array', 'items': {'type': 'object'}, 'default': []}, 'metadata': {'type': 'object', 'default': {}}, 'relationships': {'type': 'array', 'items': {'type': 'object'}, 'default': []}}}
Schéma d’entrée
{'type': 'object', 'required': ['request_id'], 'properties': {'reply': {'type': 'string'}, 'status': {'enum': ['open', 'triaged', 'in_progress', 'needs_info', 'deployed', 'wont_fix'], 'type': 'string'}, 'request_id': {'type': 'string'}, 'deployed_commit': {'type': 'string', 'description': 'Commit hash or tag that shipped it'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id'], 'properties': {'app_id': {'type': 'string', 'description': 'The app ID'}, 'include_runtime_errors': {'type': 'boolean', 'default': True}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id', 'change_set_id'], 'properties': {'app_id': {'type': 'string', 'description': 'The app ID'}, 'change_set_id': {'type': 'string', 'description': 'Change set ID'}, 'include_runtime_errors': {'type': 'boolean', 'default': True}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id'], 'properties': {'app_id': {'type': 'string', 'description': 'The app ID'}}}
Schéma d’entrée
{'type': 'object', 'required': ['app_id', 'path', 'content'], 'properties': {'path': {'type': 'string', 'description': 'Virtual file path'}, 'app_id': {'type': 'string', 'description': 'The app ID'}, 'content': {'type': 'string', 'description': 'Complete file contents'}, 'file_type': {'type': 'string', 'description': 'Optional file type override'}}}
Modifications récentes des outils
Serveurs MCP similaires
shiply
Publishes and manages web applications with SQL databases, serverless functions, domains, email tests, client intake, contracts, …
mcp
Provisions and manages cloud instances, networks, storage, databases, backups, VPNs, application deployments, and autocoding-agen…
EchoRelay
Manages a hosted API relay runtime, including projects, endpoints, credentials, publishing, keys, delivery logs, and dead-letter …
Supero
Builds, validates, publishes, tests, and deploys multi-tenant applications with schemas, CRUD operations, external data connector…
Replicate
Provides access to Replicate models, versions, collections, hardware, predictions, and deployments for running and managing hoste…
Relin
Configures webhook sources and destinations, monitors delivery health, investigates failures, manages retries, and replays events.
Scalix Cloud
Provides managed databases, SQL tools, container builds, persistent Linux machines, domains, scheduled functions, storage, and pr…
RationalBloks
Creates, deploys, manages, and searches schema-based REST API projects and Neo4j knowledge graphs across staging and production e…