Form Tools

The 27 form_* tools build, validate, publish, and embed forms (and booking flows). They ship in the kitchen-sink @spideriq/mcp package. Destructive tools (delete, publish, restore) default to dry_run=true.

Lifecycle

  • form_create — create a draft form with initial fields and an optional theme. Params: name, fields, preset, theme tokens.

  • form_get — fetch a form by flow_id. Param: audit_level.

  • form_update — partial update; merges into changes.flow (pass replace_flow: true to overwrite).

  • form_duplicate — clone a form.

  • form_delete — archive a form. Gated.

  • form_publish — publish (draft → active). Gated.

Fields & steps

  • form_add_field — append a field.

  • form_update_field — patch a field (deep-merge; replace_field: true to overwrite). CRM mappings (crm_target) are set here.

  • form_remove_field — remove a field (drops logic rules that reference it).

  • form_reorder_fields — reorder fields.

  • form_add_choice — add an option to a select / checkbox / picture-choice field.

Logic & variables

  • form_add_logic_rule — add a conditional rule (trigger, condition, actions: jump / show / hide / calculate).

  • form_validate_logic — check logic structure locally (no API call).

  • form_remove_logic — remove a rule by id or index.

  • form_declare_variable — declare a flow variable (for scoring/totals).

  • form_add_hidden_field — declare a hidden field (URL-prefilled).

Validate, preview, embed

  • form_validate — validate the whole form structure locally.

  • form_preview_url — return the canonical https://<site>/f/<flow_id> URL (never /book/<id> for forms).

  • form_get_embed_snippet — return copy-paste HTML for inline or popup embedding.

  • form_test_submit — submit test answers (the form must be published).

Locking & versions

  • form_lock / form_unlock — lock a form against edits.

  • form_list_versions / form_restore_version — version history (restore is gated, returns to draft).

Templates

  • form_list_template_categories — list template categories.

  • form_list_global_templates — list the global form-template library.

  • form_create_from_template — clone a template into a draft (auto_create=true immediately creates a live draft and returns its flow_id).

Example flow (agent)

"Create a contact form from the contact-form template, add a phone field after
email, add a thank-you screen that redirects to /thanks, validate it, publish it,
and give me the embed snippet for a popup."

The agent chains form_create_from_templateform_add_field → (thank-you screen via form_update) → form_validateform_publish (with confirm) → form_get_embed_snippet.

Next steps