Skip to main content
Glama

List forms

list_forms
Read-only

Every form in the workspace with its id, name, status (active, paused, draft or archived), Google output, Google Sheet link, submissions this month, when it last had delivery activity, what it does to its Sheet (operation insert adds rows; update and archive change or remove rows of the form named by targetFormId), whether Record Fetch is on, whether the rows of a form carry edit or remove links (recordLinksEnabled: a form that changes or removes rows puts them there itself, and a form that adds rows has them through the forms linked to it), how many submissions need review (needsReview: stopped for good and not marked reviewed - a delivery with another attempt scheduled is not counted) and how many are held for a website not yet allowed (heldSubmissions). The console shows each form that adds rows as a Connection, with the forms whose targetFormId names it linked to it as its edit and remove abilities; a Connection reads Paused when its form is paused and Needs review when needsReview or heldSubmissions is above zero.

Input Schema

NameRequiredDescriptionDefault

No arguments

Output Schema

NameRequiredDescriptionDefault
formsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedOutput schema / properties / forms / items / properties / operation
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / forms / items / properties / recordFetchEnabled
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / forms / items / properties / recordLinksEnabled
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / forms / items / properties / targetFormId
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
  2. First observed

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds genuinely non-obvious domain semantics — how needsReview excludes deliveries with another attempt scheduled, how heldSubmissions counts blocked-site deliveries, and how recordLinksEnabled propagates through linked forms — which is real added value, though it is expressed as return-field lore rather than tool behavior.

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

Conciseness2/5

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

The entire description is a single ~230-word run-on sentence with deeply nested parentheticals, several of which are sentences themselves. It front-loads the resource well but then buries the operationally important distinctions (needsReview, heldSubmissions, Connection status) in an unparseable clause chain.

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

Completeness3/5

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

An output schema exists, so the description did not need to enumerate return fields at all — yet nearly all of its length is spent re-explaining them. What an agent actually needs for a parameterless read-only list (result size, ordering, whether the whole workspace is always returned) is absent.

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?

The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The description correctly does not invent any filtering or scoping inputs.

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

Purpose4/5

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

The opening clause states a specific verb and resource with scope: 'Every form in the workspace with its id, name, status...'. An agent can tell it returns the full collection rather than a single record, which implicitly separates it from get_form, but no sibling is named explicitly.

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

Usage Guidelines2/5

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

There is no statement of when to use this versus get_form, get_form_embed_code, or list_recent_submissions. Usage is only inferable from the field list ('Every form in the workspace'), and there is no mention of ordering, paging, or cost for what could be a large workspace-wide read.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources