Skip to main content
Glama

Import Form

clipform_import_form

Convert a public Google Form, Typeform, or Tally form into a new Clipform. Supported URLs: Google Forms (docs.google.com or forms.gle - must be shared as "Anyone with the link"), Typeform (form.typeform.com/to/...), and Tally (tally.so - must be public). The source form must be publicly accessible; a private form's questions cannot be read. The new Clipform is created as a DRAFT - review it, then republish with clipform_update_form (is_live: true) once it's ready. Some question types don't map cleanly to a Clipform node and are skipped rather than guessed at; the result always reports exactly what was imported vs skipped, and why.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlYesPublic URL of the Google Form, Typeform, or Tally form to import
contextYesDescribe the user's underlying goal in one sentence - not the tool you're calling.
workspace_idNoWorkspace to act in (id from clipform_whoami workspaces). Omit to use the connection's default workspace.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
form_idYesNew form's UUID - pass to follow-up tools. Null when no importable questions were found (nothing was created).
viewer_urlYesThe address this form WILL be live at once published (clipform_update_form with is_live: true) - it is a draft and is NOT viewable by anyone yet; opening it now shows a maintenance screen, not the form. Null when no importable questions were found.
import_summaryYes
workspace_nameNoName of the workspace the form was created in

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • addedInput schema / properties / workspace_id / pattern
      Added value: +"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    • addedOutput schema / properties / form_id / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / form_id / type
      Removed value: -[
      -  "string",
      -  "null"
      -]
    • addedOutput schema / properties / import_summary / properties / skipped_details / items / propertyNames
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / viewer_url / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / viewer_url / type
      Removed value: -[
      -  "string",
      -  "null"
      -]
  2. Changed2 schema fields changed
    • addedInput schema / properties / workspace_id
      Added value: +{
      +  "description": "Workspace to act in (id from clipform_whoami workspaces). Omit to use the connection's default workspace.",
      +  "format": "uuid",
      +  "type": "string"
      +}
    • addedOutput schema / properties / workspace_name
      Added value: +{
      +  "description": "Name of the workspace the form was created in",
      +  "type": "string"
      +}
  3. Changed3 schema fields changed
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedInput schema / properties / context
      Added value: +{
      +  "description": "Describe the user's underlying goal in one sentence - not the tool you're calling.",
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "url"
      -]New value: +[
      +  "url",
      +  "context"
      +]
  4. Added

TDQS

A4.6/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false and destructiveHint=false, and the description adds genuinely non-obvious behavior: the new form lands as a DRAFT, unmappable question types are skipped rather than guessed, and the result reports imported vs skipped with reasons. It does not address idempotency (annotation says non-idempotent) or auth/permission needs, so it is strong but not complete.

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 the core conversion, then prerequisites, then the draft/republish workflow and skip-reporting behavior. Every sentence carries information, though it is on the longer side and could be trimmed slightly without loss.

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?

With annotations covering the mutation profile and an output schema existing, the description need only cover purpose, prerequisites, and the workflow step — all present, including the draft state and the skip-reporting contract. Nothing an agent needs to invoke this correctly 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 100%, so the baseline is 3, but the description earns above that by enumerating accepted URL shapes (docs.google.com, forms.gle, form.typeform.com/to/..., tally.so) that the generic 'Public URL' schema text does not convey. The context and workspace_id parameters get no added meaning in the description.

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?

The description opens with a specific verb+resource: converting a public Google Form, Typeform, or Tally form into a new Clipform. This clearly distinguishes it from siblings like clipform_create_form and clipform_update_form without needing to open 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?

It states the precondition (source form must be public, with per-provider sharing requirements), and routes the agent explicitly: the result is a draft, and republishing happens via clipform_update_form (is_live: true). Both when-to-use and the follow-up step are spelled out.

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.