Lists the responses a web form received, newest first, paginated by cursor (limit up to 200). Without status it returns the real responses (success, and email_failed: stored but the notification email failed); status=rejected returns what the spam filters dropped (stored without its values), status=all everything. since (epoch ms) keeps only responses received at or after that time, for incremental syncs. Each response carries payload (field name → value, exactly as submitted), the notification result, the CRM lead it created (lead_id, lead_type, person_id) and the ad attribution captured by the MB Suite pixel; the browser (user_agent) comes with web_forms.submissions.get. The visitor's IP is never stored in clear and its hash is not returned. Not found if the form does not exist. Requires view access to Web Forms.
Alcance
web_forms:read
Permiso
Ver el módulo
Tool del MCP
web_forms_submissions_listEn la superficie completa; en la compacta, mb_execute_operation con id: "web_forms.submissions.list".
Costo declarado: hasta 203 lecturas y 0 escrituras por llamada (cuentan en el cupo diario).
Parámetros
form_idstringrutarequerido
The form's id (from web_forms.forms.list, or the form_id that web_forms.forms.create returns).
limitintegerqueryopcional
How many items this page brings at most (see the maximum and the default in the schema).
Por defecto: 50
cursorstringqueryopcional
The next_cursor of the previous page, exactly as it came (only for the same list and filters); without it, the first page.
statusenumqueryopcional
Omit for the real responses (success and email_failed); 'rejected' for what the spam filters dropped; 'all' for everything.
Valores: success, email_failed, rejected, all
sinceintegerqueryopcional
Only responses received at or after this time (epoch milliseconds).
Returns one response of a web form: payload (field name → value), when and from which origin it arrived, its status (success, email_failed or rejected with rejection_reason), who got the notification email (notification_recipients, notification_routed_value), the auto-responder result, the CRM lead it created and its ad attribution. Not found (web_form_submission_not_found) if the response does not exist in that form. Requires view access to Web Forms.
Alcance
web_forms:read
Permiso
Ver el módulo
Tool del MCP
web_forms_submissions_getEn la superficie completa; en la compacta, mb_execute_operation con id: "web_forms.submissions.get".
Costo declarado: hasta 1 lecturas y 0 escrituras por llamada (cuentan en el cupo diario).
Parámetros
form_idstringrutarequerido
The form's id (from web_forms.forms.list, or the form_id that web_forms.forms.create returns).
submission_idstringrutarequerido
The response's id (from web_forms.submissions.list).
Deletes one response of a web form for good and rolls back the form's counters (for example, to honor a data deletion request). It does NOT go to the trash and cannot be undone; the notification email already sent and any CRM lead it created are not touched (delete the lead in the CRM if needed). Outside the screen it requires a dry run and a confirm_token. Requires edit access to Web Forms and, for a credential, deletion enabled.
Pide confirmación: primero dry_run: true (vista previa y confirm_token, que vale 10 minutos y una sola vez), después el mismo cuerpo con confirm_token. En unas pocas, solo con ciertos datos: la descripción dice cuándo. Por qué y cómo: Vista previa y confirmación.
Alcance
web_forms:writey «Permitir eliminar» (web_forms:delete en OAuth)
Permiso
Editar en el módulo
Tool del MCP
web_forms_submissions_deleteEn la superficie completa; en la compacta, mb_execute_operation con id: "web_forms.submissions.delete".
Costo declarado: hasta 2 lecturas y 2 escrituras por llamada (cuentan en el cupo diario).
Parámetros
form_idstringrutarequerido
The form's id (from web_forms.forms.list, or the form_id that web_forms.forms.create returns).
submission_idstringrutarequerido
The response's id (from web_forms.submissions.list).
Deletes up to 500 responses of one web form for good (ids that do not exist are skipped) and rolls back the form's counters. They do NOT go to the trash and cannot be undone; notification emails already sent and CRM leads already created are not touched. Outside the screen it requires a dry run (which counts what exists) and a confirm_token. Returns how many were deleted. Requires edit access to Web Forms and, for a credential, deletion enabled.
Pide confirmación: primero dry_run: true (vista previa y confirm_token, que vale 10 minutos y una sola vez), después el mismo cuerpo con confirm_token. En unas pocas, solo con ciertos datos: la descripción dice cuándo. Por qué y cómo: Vista previa y confirmación.
Alcance
web_forms:writey «Permitir eliminar» (web_forms:delete en OAuth)
Permiso
Editar en el módulo
Tool del MCP
web_forms_submissions_bulk_deleteEn la superficie completa; en la compacta, mb_execute_operation con id: "web_forms.submissions.bulk.delete".
Costo declarado: hasta 502 lecturas y 501 escrituras por llamada (cuentan en el cupo diario).
Parámetros
form_idstringrutarequerido
The form's id (from web_forms.forms.list, or the form_id that web_forms.forms.create returns).
submission_idsarray<string>cuerporequerido
The responses' ids (1 to 500), from web_forms.submissions.list.
Sends the notification email of one response again, with the form's current recipients and routing, through Amazon SES (for example after fixing to_emails when the first send failed). Updates the response's email status: a successful re-send marks an email_failed response as success. A rejected response cannot be re-sent (web_form_submission_rejected: it was stored without its values). Returns sent=false with the error instead of failing. Sends a real email. Outside the app it always runs in two steps: dry_run=true says to whom it goes (and, for a test submission, whether it creates a CRM lead and where the auto-reply goes) with the same checks and a confirm_token (10 minutes); then call it again with the confirm_token. Requires edit access to Web Forms.
Pide confirmación: primero dry_run: true (vista previa y confirm_token, que vale 10 minutos y una sola vez), después el mismo cuerpo con confirm_token. En unas pocas, solo con ciertos datos: la descripción dice cuándo. Por qué y cómo: Vista previa y confirmación.
Alcance
web_forms:write
Permiso
Editar en el módulo
Tool del MCP
web_forms_submissions_resend_notificationEn la superficie completa; en la compacta, mb_execute_operation con id: "web_forms.submissions.resend_notification".
Costo declarado: hasta 2 lecturas y 1 escrituras por llamada (cuentan en el cupo diario). Toca una plataforma externa (ses): cuenta en el cupo de operaciones externas.
Parámetros
form_idstringrutarequerido
The form's id (from web_forms.forms.list, or the form_id that web_forms.forms.create returns).
submission_idstringrutarequerido
The response's id (from web_forms.submissions.list).
Con una API key de prueba el pedido va siempre a tu organización de práctica: datos de ejemplo que puedes reiniciar.En la práctica esta operación no se simula (toca otra plataforma): responde 409 sandbox_external_unavailable.
Record a test of the form made through the public endpoint
web_forms.submissions.record_test
EscrituraIdempotenteDesde 2026-11-01
Records in the audit log a test of the form made through the public endpoint (POST https://mb-suite.com/api/v1/public/forms/submit from one of the form's allowed origins, which goes through the origin check, the rate limits, the honeypot and the CAPTCHA like any visitor) and marks the response with tested_by. Send the submission_id the endpoint returned (it returns one only when the response came in). The response must be of that form, must have come in through the endpoint (a test from the editor or web_forms.forms.test_submit, origin __test__, gives 409 web_form_submission_is_test; a rejected one, 409 web_form_submission_rejected) and must have been received in the last 15 minutes (409 web_form_submission_too_old). note (optional, one line) says what was tested. The audit entry (web_forms.test_submit) is under the person behind the credential, with submittedVia public_endpoint, the response's origin, whether the notification email went out (email_sent) and whether a CRM lead was created (lead_created). Recording the same response again changes nothing (changed false) and does not audit again. It sends nothing and creates nothing. 404 web_form_not_found or web_form_submission_not_found. Requires edit access to Web Forms.
Alcance
web_forms:write
Permiso
Editar en el módulo
Tool del MCP
web_forms_submissions_record_testEn la superficie completa; en la compacta, mb_execute_operation con id: "web_forms.submissions.record_test".
Costo declarado: hasta 2 lecturas y 1 escrituras por llamada (cuentan en el cupo diario).
Parámetros
form_idstringrutarequerido
The form's id (from web_forms.forms.list, or the form_id that web_forms.forms.create returns).
submission_idstringrutarequerido
The response's id (from web_forms.submissions.list).
notestringcuerpoopcional
What the test checked, in one line (up to 500 characters): it is stored on the response and in the audit entry.