Recipes
Recipes are the building blocks the guides are made of. Authored recipes describe a pattern; the generated ones document one MCP tool, one page-builder block or one query function each.
Authored recipes
Section titled “Authored recipes”- Add semantic search over your records: Rank records by meaning, not keywords: embed a text field into a vector, then search by cosine similarity. The platform ships the pieces — a vector field type,…
- Authentication basics: Authenticate the caller before evaluating permissions. Keep identity verification separate from authorization, use narrowly scoped credentials, and fail closed…
- Build an in-place CRUD form: Use a form block for the create operation and set source.targetmode to “create” (the documented default) with the target modelid. Add a clear onsuccesstoast so…
- Call an external API from a rule: Post to Slack, notify a customer’s webhook, or hit any HTTP API when a record changes. This is the base outbound pattern the other integration recipes build…
- Call an LLM and store the result on a record: Summarize a note, classify a ticket, draft a reply: send record data to an OpenAI-compatible chat endpoint and write the answer back to the record. A…
- Charge your customers with Stripe: Create Stripe customers, checkout sessions, or payment intents from your application. Stripe’s API is form-encoded (not JSON) and authenticates with a secret…
- Compose a contact form in a page layout: form-basics explains the form operation itself. This recipe adds the layout and composition around that operation: a contained contact section, an explanatory…
- Compose a feature-card grid: Use a container with display.layout set to grid, then put canonical card blocks in its children. This is a static composition: the grid owns placement while…
- Compose a nested hero section: A hero is a static composition of canonical blocks, not a special hero type. Use an outer container for the section treatment and an inner container to…
- Compose a record-backed catalog grid: Build a catalog as a grid container with a repeated card inside it. The card’s binding.repeatover selects model records, binding.itemvar gives each iteration a…
- Compose a shared site shell and landing page: Use the same shell on every page so navigation, identity, and the way visitors reach the footer remain stable. The shell has a header composition followed by…
- Compose record access boundaries: Consumer reads follow one declarative model-level policy, consumerreads. It decides what a signed-in consumer of the application may read on a private model,…
- Configure social preview cards: A preview card is the title, description, and image a social platform may show for a shared page. Crawlers read the Open Graph and Twitter Card tags the page…
- Define an application MCP tool catalog: Create an ordinary application model named mcptool. This is a descriptive catalog: each record tells MCP clients what a tool is and how to validate its…
- Embed a model-bound public form in a page: A form block has two completely different behaviours, and source.formid is the switch between them. Without it the block renders its own children as a direct…
- Make CRUD interactions legible: Make each interaction state visible in the page itself: label inputs, use a submit control for the write, and provide success feedback with onsuccesstoast….
- Model a CRUD resource: Start a CRUD app with one model for the resource users will create and manage. In MeroFoundry, application data is stored dynamically: models describe the…
- Realtime stream-key subscriptions: Realtime frames use two consumer-visible key shapes: user:
: for a single consumer identity and public: for a broadcast… - Secure authentication for your app: The platform builds the safeguards of application sign-in for you. Your job is to choose three identity settings, give the app a working outbound sender, and…
- Send transactional email on an event: Send a welcome message, a receipt, or an alert. Email is its own subsystem, not a generic HTTP call: it delivers over SMTP through a per-application sender,…
- Serve an application MCP endpoint: Serving MCP is off by default and never implicit. An application exposes an MCP endpoint only when two explicit choices are made: an inbound service to receive…
- Serve row-scoped tools to consumers over MCP: Give a signed-in consumer’s own AI agent a tool that returns only that consumer’s rows. The row scope is the same server-bound ownership boundary the dashboard…
MCP tools
Section titled “MCP tools”- activate_site_version: Make one immutable site version active for an application.
- add_domain: Add a custom domain; publish its returned verification TXT record at the registrar.
- add_field: Add a field to a model before publishing its schema, optionally as unique.
- add_form_component: Add one reusable composite component to a form.
- bind_domain: Activate routing for a verified, certificated custom domain.
- capture_page_screenshot: Capture one published page and return an inline PNG plus a temporary artifact link.
- capture_site_screenshots: Capture this grant-bound application’s published pages.
- check_domain_verification: Check whether the registrar-published verification TXT record resolves.
- create_application: Create a workspace-scoped application for a zero-app OAuth grant.
- create_composite: Create a composite component: a reusable block tree (e.g. a site header) that pages instantiate with a composite block. definition is {“parameters”: […],…
- create_form: Create an application form, optionally bound to a model.
- create_function: Compile and publish a custom function for an application.
- create_job: Create a scheduled job.
- create_model: Create a private-by-default draft model with explicit anonymous read/create policy.
- create_notification: Create an application notification.
- create_page: Create a page with its full public metadata and layout.
- create_record: Create a record for a published model.
- create_relationship: Create an application relationship.
- create_rule: Create a rule using the Public API rule-create request body.
- create_saved_query: Create a public, non-aggregate consumer query with any joins over public fields.
- create_service: Create a service configuration; supplied credentials are write-only.
- create_site_upload_ticket: Create a short-lived ticket to upload one locally built site ZIP over HTTPS.
- create_style: Create a reusable style for the bound application’s workspace.
- create_webhook: Create an application webhook and return its signing secret once.
- delete_application: Archive an application after an exact current-name confirmation.
- delete_composite: Permanently delete a reusable composite component.
- delete_domain: Permanently remove an application-scoped custom domain binding.
- delete_field: Permanently delete a model field definition.
- delete_file: This is a soft delete of a file.
- delete_form: Permanently delete a form.
- delete_function: Permanently delete a custom function.
- delete_job: Permanently delete a scheduled job and its execution history.
- delete_model: Permanently delete a model and its dependent fields, forms, and records.
- delete_notification: Permanently delete an application notification.
- delete_outbound_sender: Disable the configured outbound sender.
- delete_page: Permanently delete a page.
- delete_push_credentials: Delete one platform’s push credential.
- delete_record: Permanently delete a record; configured reference policies can affect related records.
- delete_relationship: Permanently delete an application relationship.
- delete_rule: Delete an application rule.
- delete_saved_query: Delete a saved query.
- delete_service: Permanently delete a service configuration.
- delete_site_version: Permanently delete a non-active immutable site version.
- delete_style: Permanently delete a reusable style.
- delete_webhook: Permanently delete an application webhook.
- derive_relationships: Derive relationships from published reference fields.
- disable_site: Disable public serving without deleting the immutable site versions.
- discover_public_url: Discover the visitor browserUrl, public API url, and custom domain.
- download_file: Deliver small files inline and larger files by their presigned URL.
- enable_site: Enable public serving after the site-version safety checks succeed.
- execute_saved_query: Execute a saved query as the OAuth-bound application’s builder credential.
- export_application_bundle: Export a portable bundle, inlining archives up to one megabyte.
- export_template: Export the OAuth-bound application as a reusable template.
- export_traffic_csv: Export CSV text with the application’s current processing metadata.
- get_application_capabilities: Read runtime-enforced capabilities and their update eligibility.
- get_application_schema: Read draft model metadata and fields for an application.
- get_domain: Get one application-scoped custom domain and its verification state.
- get_field: Read one field definition by id.
- get_file: Get file metadata, including a presigned URL valid for expiresIn seconds.
- get_form: Get one application form, whether standalone or model-bound.
- get_function: Get a custom function, including its current source.
- get_job: Get one scheduled job.
- get_model: Read one model and its fields from the requested schema view.
- get_model_audit: Get the audit trail for a model in the OAuth-bound application.
- get_model_stats: Return aggregate record statistics for a model.
- get_notification: Get one application notification.
- get_outbound_sender: Get outbound sender metadata; SMTP credentials are never returned.
- get_push_credentials: Get APNs and FCM push credential metadata and active registration counts.
- get_record_audit: Get the audit trail for a record in the OAuth-bound application.
- get_relationship: Get one application relationship.
- get_rule_logs: List execution logs for a rule in the OAuth-bound application.
- get_service: Get one configured service with all credential values masked.
- get_style: Get one reusable style.
- get_template: Read one template definition visible to the OAuth-bound application.
- get_traffic: Get privacy-safe traffic aggregates for one application.
- get_usage: Get application-scoped usage without tenant billing data.
- get_webhook: Get one application webhook.
- get_webhook_analytics: Get aggregate delivery analytics for an application webhook.
- install_template: Install a template into the OAuth-bound application.
- invoke_service: Invoke a service through its stream endpoint and return collected chunks.
- issue_domain_certificate: Issue a certificate after the custom domain is verified.
- list_applications: List applications visible to the OAuth-authorized backend credential.
- list_audit_events: List audit events for the OAuth-bound application.
- list_composites: List an application’s composite components (reusable page-layout definitions).
- list_domains: List verified custom domains configured for an application.
- list_fields: List field definitions from the requested schema view.
- list_files: List file metadata for an application, optionally including soft-deleted files.
- list_forms: List all forms in an application, including standalone forms.
- list_functions: List application custom functions without returning their source.
- list_job_executions: List execution history for a scheduled job.
- list_jobs: List scheduled jobs configured for an application.
- list_notification_logs: List delivery logs for an application notification.
- list_notifications: List notifications configured for an application.
- list_pages: List published pages available for visual inspection.
- list_relationships: List relationships configured for an application.
- list_rules: List application rules, optionally filtered by model or active state.
- list_saved_queries: List saved queries for an application.
- list_service_logs: List service invocation logs without exposing configured credentials.
- list_services: List configured services with all credential values masked.
- list_site_releases: List GitHub releases for an application, newest first.
- list_site_versions: List immutable static-site versions for an application.
- list_styles: List reusable styles available to the bound application.
- list_templates: List templates visible to the OAuth-bound application.
- list_virtual_occurrences: List virtual recurrence occurrences in a bounded window.
- list_webhook_dead_letters: List failed non-test deliveries for an application webhook.
- list_webhook_deliveries: List delivery attempts for an application webhook.
- list_webhooks: List webhooks configured for an application.
- preview_template_upgrade: Report whether an installation in the OAuth-bound application can upgrade.
- preview_temporal_records: Preview temporal bindings at a fixed instant.
- publish_model: Publish a model schema so forms and records have a live contract.
- query_records: Query records for a published model.
- redeliver_webhook: Redeliver a stored webhook delivery.
- remove_form_component: Remove a component from a form.
- render_form: Render a form’s current component layout for inspection.
- render_page: Inspect a rendered page, or its published rendering when published is true.
- reorder_form_components: Replace a form’s component ordering.
- reorder_records: Atomically reorder records for one published model.
- resolve_style: Resolve a reusable style to the effective CSS variable map.
- restore_application_bundle: Restore a base64-encoded portable bundle into an empty application.
- restore_file: Restore a soft-deleted file within its retention window.
- run_job: Run a scheduled job immediately.
- run_query: Execute an ad-hoc QueryAST against records in an application.
- run_rule_event: Trigger business-rule evaluation for an application event.
- scaffold_model_services: Create editable guarded CRUD inbound services for a model.
- search_records: Search a model’s published vector field by cosine similarity.
- send_notification: Send a notification immediately and return its delivery logs.
- set_google_analytics_measurement_id: Set or remove an application’s GA4 measurement ID.
- set_outbound_governance: Set outbound destination governance after explicit risk acknowledgement.
- set_outbound_sender: Set the SMTP sender; smtppassword is write-only and never returned.
- set_preview_site_version: Point the application’s preview host at a retained site version.
- set_push_credentials: Set or replace one platform’s push credential; secrets are write-only.
- set_trusted_image_origins: Replace an application’s trusted HTTPS image origins.
- start_domain_verification: Return the TXT record that must be published at the domain registrar.
- test_outbound_sender: Send a test email using the stored outbound sender.
- test_push_credentials: Send a silent push to one active registration of the platform, by registration id.
- test_rule: Test rule logic against sample context without persisting a rule.
- test_service: Test a configured service using its stored credential.
- test_webhook: Send a test delivery to an application webhook.
- update_application: Apply a partial update. body.capabilities is a map of capabilityid to ‘enabled’|‘disabled’, accepted only for capabilities OPTIONAL for the application and…
- update_composite: Update a composite; use clear
to send an explicit null. - update_field: Apply a partial update to a field.
- update_form: Apply a partial update to a form.
- update_function: Compile and publish updated custom-function source.
- update_job: Partially update a scheduled job; use cleardescription for null.
- update_model: Update model metadata, settings with replacement semantics, and anonymous access policy.
- update_notification: Partially update a notification; use clear flags for nullable fields.
- update_page: Update page metadata with replacement settings; clear
sends explicit null. - update_record: Update a record for a published model.
- update_relationship: Partially update a relationship; use cleardescription to remove its description.
- update_rule: Replace a rule using the Public API rule-update request body.
- update_saved_query: Update a public, non-aggregate consumer query with any joins over public fields.
- update_service: Update a service; use clearauthconfig or cleardescription for nullable values.
- update_style: Apply a partial update to a reusable style.
- update_webhook: Partially update a webhook; clear flags send an explicit null.
- upgrade_template_installation: Apply a template upgrade to an installation in the OAuth-bound application.
- upload_file: Upload base64-only content (not a local file reference).
- upload_site_version: Validate and upload a base64-encoded ZIP as an immutable site version.
- whoami: Return the OAuth client and API permissions for the current MCP request.
Page-builder blocks
Section titled “Page-builder blocks”- accordion block: - shadcn (base)
- alert block: - shadcn (base)
- alert-dialog block: - shadcn (base)
- aspect-ratio block: - shadcn (base)
- avatar block: - shadcn (base)
- badge block: - shadcn (base) - signature (override)
- breadcrumb block: - shadcn (base)
- button block: - shadcn (base) - signature (override)
- button-group block: - shadcn (base)
- calendar block: - shadcn (base)
- card block: - shadcn (base) - signature (override)
- carousel block: - shadcn (base)
- chart block: - shadcn (base)
- checkbox block: - shadcn (base)
- collapsible block: - shadcn (base)
- command block: - shadcn (base) - signature (override)
- composite block: - shadcn (base)
- composite_scope block: - shadcn (base)
- container block: - shadcn (base) - signature (override)
- context-menu block: - shadcn (base)
- data-table block: - shadcn (base) - signature (override)
- date-picker block: - shadcn (base)
- dialog block: - shadcn (base)
- dnd-list block: - shadcn (base)
- draggable block: - shadcn (base)
- drawer block: - shadcn (base)
- drop-zone block: - shadcn (base)
- dropdown-menu block: - shadcn (base)
- empty block: - shadcn (base)
- field block: - shadcn (base)
- form block: - shadcn (base)
- heading block: - shadcn (base) - signature (override)
- hover-card block: - shadcn (base)
- image block: - shadcn (base) - signature (override)
- input block: - shadcn (base)
- input-group block: - shadcn (base)
- input-otp block: - shadcn (base)
- item block: - shadcn (base)
- kbd block: - shadcn (base)
- markdown block: - shadcn (base)
- menubar block: - shadcn (base)
- modal block: - shadcn (base)
- native-select block: - shadcn (base)
- navigation-menu block: - shadcn (base)
- pagination block: - shadcn (base)
- popover block: - shadcn (base)
- progress block: - shadcn (base)
- radio-group block: - shadcn (base)
- range-calendar block: - shadcn (base)
- record_detail block: - shadcn (base)
- record_select block: - shadcn (base)
- record-list block: - shadcn (base)
- resizable block: - shadcn (base)
- scroll-area block: - shadcn (base)
- select block: - shadcn (base)
- separator block: - shadcn (base) - signature (override)
- sheet block: - shadcn (base)
- sidebar block: - shadcn (base) - signature (override)
- skeleton block: - shadcn (base)
- slider block: - shadcn (base)
- sonner block: - shadcn (base)
- spinner block: - shadcn (base)
- stat block: - shadcn (base) - signature (override)
- switch block: - shadcn (base)
- table block: - shadcn (base)
- tabs block: - shadcn (base)
- text block: - shadcn (base) - signature (override)
- textarea-block block: - shadcn (base)
- toggle block: - shadcn (base)
- toggle-group block: - shadcn (base)
- tooltip block: - shadcn (base)
- video block: - shadcn (base)
Query functions
Section titled “Query functions”- AVG: AVG(numeric field) -> NUMERIC
- CAST: CAST(value, ‘boolean’ | ‘integer’ | ‘numeric’ | ‘timestamp’) -> target type
- COALESCE: COALESCE(compatible, compatible, …) -> unified type
- COUNT: COUNT(field | ) -> INTEGER
- DATE_FROM_EPOCH_DAY: DATEFROMEPOCHDAY(integer) -> DATE
- EPOCH_DAY: EPOCHDAY(date) -> INTEGER
- MAX: MAX(field) -> field type
- MIN: MIN(field) -> field type
- MOD: MOD(numeric, numeric) -> NUMERIC
- SUM: SUM(numeric field) -> NUMERIC
