Draft and publish workflow
Use this workflow when you create a form, review a draft change, or publish a form through the Makeform MCP server. Draft changes and publishing are separate actions.
Safety rules
create_formandcreate_form_from_promptcreate drafts. They never publish.propose_form_draftandpropose_form_editsave nothing. They return a proposed config and a token for applying it.apply_form_draftandapply_form_editsave changes to the draft only. They never publish.publish_formrequires two calls: preview first, then confirm with the preview’spublish_token.update_formrequiresexpected_updated_atand writes immediately. Replacingpreview_configrequires it to match theupdated_atreturned byget_form. It never publishes.update_form_settingsandupdate_email_notificationapply changes to a published form immediately. They do not require publishing.- Action tokens are single-purpose, expire, and are bound to the action, form, user, calling credential, and proposed config or state. Draft, edit, and publish tokens last 10 minutes. Use the exact proposed config returned by the proposal call when applying it.
Create a draft
Get the form config schema, create the form with a complete config, then retrieve the form to review it:
get_form_config_schema → create_form → get_form
You can also create a draft from a prompt with create_form_from_prompt, then call get_form to review it. Neither creation method publishes the form.
Propose and apply a draft replacement
Use this sequence when you want to replace a draft config and review the proposed changes before saving:
get_form → propose_form_draft → apply_form_draft → get_form
Pass the complete config to propose_form_draft. Review the returned summary, delta, risk, and publish readiness. If you decide to proceed, call apply_form_draft with the returned draft_token and the exact proposed_config. The proposal saves nothing; applying it changes the draft only. Retrieve the form afterward to confirm the saved draft.
Propose and apply an AI edit
Use this sequence to ask for an AI edit to the current draft:
get_form → propose_form_edit → apply_form_edit → get_form
Pass your instruction to propose_form_edit. Review the returned proposed config and change summary. To save the edit, call apply_form_edit with the returned edit_token and the exact proposed_config. Applying the edit changes the draft only. Retrieve the form afterward to confirm the result.
Publish a draft
First retrieve the form, then preview the publish, confirm it with the returned token, and retrieve the form again:
get_form → publish_form → publish_form with confirm_publish: true and the preview’s publish_token → get_form
The first publish_form call previews what would be published and returns a publish_token. Review the preview before confirming. The confirmation publishes the draft, including its draft translations.
If the token expires, run the preview again. If the draft or publish context changes, the publish can be rejected with a conflict; retrieve the form and preview again before confirming.
Handle tool errors
MCP tool errors return HTTP 200 with result.isError: true. The text in content[0].text contains a JSON error object:
{
"jsonrpc_error": {
"code": -32600,
"message": "Error message",
"data": {
"name": "ERROR_NAME"
}
}
}Input schema failures instead start with MCP error -32602: Input validation error.