Skip to main content
Glama

Submit Forms response

forms_filling_submit

Submit answers to a published form and save the response; use validate_only to check without saving. Map each question slug from filling_get to its answer and get an answer_id in the success payload.

Instructions

Submit a response to a published form: a REAL answer is saved unless validate_only.

body maps each question slug (discover them via filling_get) to its answer — a scalar, a string list, a {begin, end} date range, or matrix {row, column} items. Returns the success-page payload (answer_id confirms the save).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
keyNoPersonal-link fill key, when the form uses one.
bodyYesAnswer map keyed by question slug (see ``filling_get`` for the slugs).
survey_idYesForm id or slug of a published form.
validate_onlyNoValidate only — saves nothing and fires no integrations.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changedv0.122.1
    • removedInput schema / properties / dry_run
      Removed value: -{
      -  "default": false,
      -  "description": "Validate only — saves nothing and fires no integrations.",
      -  "type": "boolean"
      -}
    • removedInput schema / properties / survey
      Removed value: -{
      -  "description": "Form id or slug of a published form.",
      -  "type": "string"
      -}
    • addedInput schema / properties / survey_id
      Added value: +{
      +  "description": "Form id or slug of a published form.",
      +  "type": "string"
      +}
    • addedInput schema / properties / validate_only
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Validate only — saves nothing and fires no integrations."
      +}
    • changedInput schema / required
      Previous value: -[
      -  "survey",
      -  "body"
      -]New value: +[
      +  "survey_id",
      +  "body"
      +]
  2. First observedv0.67.0

TDQS

A4.3/5.0
Behavior4/5

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

With readOnlyHint=false and destructiveHint=false already declared, the description still adds meaningful behavior: it clarifies that a real answer is persisted by default, that validate_only suppresses the save, and that the success-page payload carries answer_id as confirmation of the write. Auth requirements and integration side effects are not expanded beyond the schema's note.

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?

Three compact sentences, front-loaded with the write semantics before the body format detail. The double-backtick markup is slightly noisy but does not obscure meaning; no sentence is wasted.

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

Completeness4/5

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

For a mutation with no output schema, the description covers the essential gaps: what is persisted, the dry-run switch, the answer-value grammar, and the confirmation field returned. The optional key/personal-link parameter is left entirely to the schema, a minor omission.

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 100%, so baseline would be 3, but the description goes beyond the schema by enumerating the accepted answer value shapes (scalar, string list, {begin, end} date range, matrix {row, column} items) for a body that the schema types only as a free-form object. It also ties slug discovery to filling_get.

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?

Specific verb+resource: 'Submit a response to a published form', with the scope qualifier 'published' distinguishing it from the form-authoring siblings (forms_surveys_*, forms_questions_*). An agent can tell it apart from forms_filling_get/forms_filling_suggest and the forms_answers_* read/delete tools 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 Guidelines4/5

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

Clearly states the mode-selection rule ('a REAL answer is saved unless validate_only') and names the prerequisite sibling for discovering slugs ('discover them via filling_get'). It does not explicitly enumerate when to prefer this over the answers-management siblings, but the context is unambiguous.

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

Deploy Server

Other Tools