Skip to main content
Glama

Create a form

create_form

Create a new form for your tenant by defining fields and optional settings, then receive a shareable public link for respondents.

Instructions

Create a form for the API key's tenant.

Field types: text | email | phone | date | select | checkbox | consent | textarea | number | rating | multiselect | hidden | file | page_break | calculated

Each field needs: id (unique within the form), type, label, required. Optional per field: placeholder, options (select/multiselect), min/max (number/rating), defaultValue (hidden), accept and maxSizeMb (file).

Settings (all optional): successMessage, redirectUrl, closeAt (ISO date), maxResponses.

Returns the created form (including its id) and its publicUrl, the shareable link respondents use. This tool only creates: it never edits an existing form, so call it once per new form and check list_forms first if a form with the same name may already exist. If the FormVault API rejects the input or the key, the tool returns an error result with the API's message and nothing is created.

Keep public-facing forms short — every extra question costs responses.

Input Schema

NameRequiredDescriptionDefault
nameYesForm name (non-empty)
fieldsYesField definitions (at least one)
settingsNoOptional form behaviour: successMessage, redirectUrl, closeAt (ISO 8601) and maxResponses
descriptionNoShown to respondents above the fields

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv0.1.2
    • addedInput schema / properties / settings / description
      Added value: +"Optional form behaviour: successMessage, redirectUrl, closeAt (ISO 8601) and maxResponses"
    • addedInput schema / properties / settings / properties / redirectUrl / description
      Added value: +"URL to send the respondent to after they submit"
    • addedInput schema / properties / settings / properties / successMessage / description
      Added value: +"Message shown to the respondent after they submit"
  2. First observedv0.1.1

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden, and it does well: it discloses the return payload (created form with id plus publicUrl), the create-only/non-idempotent semantics, and the error behavior ("returns an error result with the API's message and nothing is created"). It does not spell out authentication/key requirements or any rate limits, which is the remaining gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, then cleanly segmented into field types, per-field requirements, settings, return value, and routing. Slightly verbose — the closing tip ("Keep public-facing forms short") is advisory rather than operational and does not help invocation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a nested, multi-param create tool with no output schema and no annotations, the description covers everything needed to call it correctly: parameter shape, mutation semantics, return value (id + publicUrl), and error outcome. Nothing an agent needs is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100%, so the baseline is 3, but the description adds practical structure beyond the schema: the full field-type enumeration, the required per-field keys (id/type/label/required), which optional keys pair with which types (options for select/multiselect, min/max for number/rating, accept/maxSizeMb for file, defaultValue for hidden), and the optional settings block. This is largely a reorganization of schema content, so it does not go far past the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource ("Create a form for the API key's tenant") and immediately scopes it against siblings by stating it never edits an existing form and pointing to list_forms for duplicate checks. An agent can distinguish it from get_form/delete_form/list_forms without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when-to-use guidance ("call it once per new form"), an explicit pre-check alternative ("check list_forms first if a form with the same name may already exist"), and an explicit when-not (it never edits existing forms). The failure path is also described so the agent knows what a rejected call looks like.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.