Skip to main content
Glama

doorman_create_form

Create another form endpoint (one per distinct form on the site: contact, demo request, checkout, comments).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
kindNolead = contact/demo/quote/sales form (default)
nameYesForm name
api_keyNoDoorman API key (dm_live_...). Only needed if the MCP connection has no Authorization header.
email_toNoComma-separated emails to forward real submissions to
slack_urlNoSlack incoming webhook URL
webhook_urlNoHTTPS URL that receives a signed JSON POST per real submission
redirect_urlNoWhere to send the visitor after submitting (default: a Doorman thank-you page)
site_contextNoWhat the business sells and to whom

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • removedInput schema / properties / attachments
      Removed value: -{
      -  "description": "Forward file attachments (a CV, a brief, a screenshot) with real submissions by email and webhook: up to 5 files, 5 MB each, 8 MB in all; no executables or archives (default true). Submissions list them under files, with a download url while one waits.",
      -  "type": "boolean"
      -}
    • removedInput schema / properties / inbound_platform
      Removed value: -{
      -  "description": "Where the form lives when it stays on another tool (tally, typeform, jotform, netlify, webflow, framer, or json for any webhook). Remembered for the dashboard's setup steps.",
      -  "enum": [
      -    "tally",
      -    "typeform",
      -    "jotform",
      -    "netlify",
      -    "webflow",
      -    "framer",
      -    "json"
      -  ],
      -  "type": "string"
      -}
    • removedInput schema / properties / routes
      Removed value: -{
      -  "description": "Per-type destinations (Business plan): { support: { email_to, slack_url, webhook_url }, job: {...}, partnership, press, investor, other }. A type with a rule goes only there; the rest, sales leads included, go to the form's email_to/slack_url/webhook_url. Pass {} to clear.",
      -  "type": "object"
      -}
    • removedInput schema / properties / workspace_id
      Removed value: -{
      -  "description": "Optional ws_...: put the form in this client workspace (its blank destinations use the workspace's defaults). \"\" ungroups it.",
      -  "type": "string"
      -}
  2. Changed1 schema field changed
    • addedInput schema / properties / inbound_platform
      Added value: +{
      +  "description": "Where the form lives when it stays on another tool (tally, typeform, jotform, netlify, webflow, framer, or json for any webhook). Remembered for the dashboard's setup steps.",
      +  "enum": [
      +    "tally",
      +    "typeform",
      +    "jotform",
      +    "netlify",
      +    "webflow",
      +    "framer",
      +    "json"
      +  ],
      +  "type": "string"
      +}
  3. Changed2 schema fields changed
    • addedInput schema / properties / attachments
      Added value: +{
      +  "description": "Forward file attachments (a CV, a brief, a screenshot) with real submissions by email and webhook: up to 5 files, 5 MB each, 8 MB in all; no executables or archives (default true). Submissions list them under files, with a download url while one waits.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / workspace_id
      Added value: +{
      +  "description": "Optional ws_...: put the form in this client workspace (its blank destinations use the workspace's defaults). \"\" ungroups it.",
      +  "type": "string"
      +}
  4. Changed1 schema field changed
    • addedInput schema / properties / routes
      Added value: +{
      +  "description": "Per-type destinations (Business plan): { support: { email_to, slack_url, webhook_url }, job: {...}, partnership, press, investor, other }. A type with a rule goes only there; the rest, sales leads included, go to the form's email_to/slack_url/webhook_url. Pass {} to clear.",
      +  "type": "object"
      +}
  5. First observed

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. It says nothing about authentication requirements, whether duplicate form names fail, whether creation is reversible, rate limits, or what a successful call returns. The api_key parameter implies auth but the description itself gives no behavioral context for a write operation.

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?

A single front-loaded sentence with no filler or redundancy. The word "another" is slightly odd without prior conversational context, but nothing in the sentence is wasted.

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?

This is an 8-parameter mutation tool with no annotations and no output schema, so the description should ideally cover auth expectations and create-vs-update behavior. The schema handles parameter documentation well, but the behavioral envelope an agent needs before calling a write tool is only partially inferred.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all 8 parameters including the kind enum and each delivery target. The description adds no format, default, or interaction detail beyond the schema, so the baseline 3 applies.

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 description states a specific verb and resource ("Create another form endpoint") and clarifies the unit of creation with the parenthetical about one endpoint per distinct form. It is clearly distinguishable from read-side siblings like doorman_list_forms or doorman_list_submissions, though it never contrasts with doorman_update_form.

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

Usage Guidelines3/5

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

The parenthetical "one per distinct form on the site" implies when to create (a new distinct form) versus reuse an existing endpoint, but there is no explicit when-not guidance, no mention of doorman_update_form as the alternative for existing forms, and no prerequisites stated.

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