MCP form and workspace read tools

Use these tools to inspect your Makeform workspace and forms, or to generate an embed package for a published hosted form. Send the JSON arguments shown for each tool.

Successful tool results include content[0].text and structuredContent. The structured content matches the tool’s declared output schema. Each invocation attempts to append a private execution audit record, including data reads; retries may add another record. These tools do not change your data.

Tool errors return HTTP 200 with result.isError: true. The text body contains JSON like this:

{ "jsonrpc_error": { "code": -32600, "message": "Request could not be completed", "data": { "name": "ERROR_NAME" } } }

Input schema failures have text beginning with MCP error -32602: Input validation error.

get_workflow_guide

Returns the live Markdown workflow guide, including steps, tool list, safety rules, common field types, and design and settings notes.

Input

NameTypeRequiredDescription
———No arguments.

Returns

An object with a guide string.

Example call

{}

get_workspace

Returns the credential’s context: plan, role, form and member counts, and the custom workspaces it can access.

Input

NameTypeRequiredDescription
———No arguments.

Returns

An object with workspace_id, plan_tier, user_role, form_count, member_count, and workspaces. Each workspace has an id, name, and team_id.

Example call

{}

list_forms

Lists accessible forms, with the most recently updated first.

Input

NameTypeRequiredDescription
statusall, draft, or publishedNoFilter forms by status. Defaults to all.
limitInteger from 1 to 100NoNumber of forms to return. Defaults to 20.
offsetInteger ≥ 0NoNumber of forms to skip.

Returns

An object with forms, an array of form objects. Each form includes id, name, status, created_at, updated_at, and submission_count.

Example call

{ "status": "published", "limit": 20, "offset": 0 }

get_form

Returns a form’s draft and published config, plus its settings.

Input

NameTypeRequiredDescription
form_idStringYesForm to retrieve.
include_image_assetsObjectNoRequest image assets with target set to open_graph_image, favicon, logo, cover_image, or qr_logo. Requires edit access. You can also set limit from 1 to 20 and offset to 0 or greater.

Returns

An object with id, name, status, preview_config, live_config, settings, draft_hash, live_hash, created_at, updated_at, published_at, submission_count, field_count, url, and edit_url. The respondent url is null for drafts. The edit_url points to the builder, or to the Headless page for Headless forms. Callers who can manage integrations may also receive email_notifications; it never contains email addresses.

When requested, image_assets includes target, current_binding (state, asset_id, and binding_url), candidates, and pagination (offset, limit, and next_offset).

Example call

{ "form_id": "FORM_ID", "include_image_assets": { "target": "logo", "limit": 10, "offset": 0 } }

get_form_config_schema

Returns the JSON Schema for the form config, using the same contract that validates drafts. See form config and field types.

Input

NameTypeRequiredDescription
———No arguments.

Returns

A JSON Schema object with $schema, type, properties, required, additionalProperties, and definitions.

Example call

{}

get_form_embed

Builds a paste-ready embed package for a published hosted form. The package can include a Standard, Popup, Slider, or Fullpage snippet. See Makeform embeds for embed options and setup.

Input

NameTypeRequiredDescription
form_idStringYesPublished hosted form to embed.
embed_typeStringNostandard, popup, slider, or fullpage.
snippet_modeStringNodefault or csp_external.
optionsObjectNoOptions for the selected embed type.
hidden_fieldsObjectNoStatic values for hidden fields already declared in the form’s settings. Values can be strings, finite numbers, or booleans. Declare hidden fields with update_form_settings.

Returns

A package with form_id, form_name, status, embed_type, embed_url, html_snippet, sdk, normalized_options, effective_behavior, requirements, and warnings. Depending on the request, it may also include snippet_mode, csp, and normalized_hidden_fields. In CSP mode, csp lists the source values the host page must allow.

The form must be published. Drafts return publish_required. If hidden_fields contains a field that is not declared in the form’s settings, the tool returns an error named invalid_hidden_fields.

Example call

{ "form_id": "FORM_ID", "embed_type": "standard", "snippet_mode": "default", "options": {}, "hidden_fields": { "utm_source": "pricing" } }

get_form_stats

Returns submission totals and completion statistics for a form.

Input

NameTypeRequiredDescription
form_idStringYesForm to retrieve stats for.

Returns

An object with form_id, total_submissions, submissions_today, submissions_by_ref, submissions_last_7_days, submissions_last_28_days, submissions_this_month, completed_submissions, partial_submissions, and completion_rate.

Example call

{ "form_id": "FORM_ID" }