Skip to main content
Glama

doorman_update_form

Change a form's settings: context, destinations, thresholds, watch mode, allow/block lists.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
kindNo
modeNowatch = deliver would-be drops, tagged (a safe way to start)
nameNoForm name
api_keyNoDoorman API key (dm_live_...). Only needed if the MCP connection has no Authorization header.
form_idYesf_...
email_toNoComma-separated emails
slack_urlNoSlack incoming webhook URL
allow_listNoEmails or domains always delivered without judging
block_listNoEmails or domains always dropped
deliver_atNoDeliver when P(real) >= this (default 0.8)
drop_belowNoDrop when P(real) < this (default 0.2)
webhook_urlNoHTTPS webhook URL
redirect_urlNoRedirect after submit
site_contextNoWhat the business sells and to whom
forward_holdsNoForward held submissions, flagged (default true)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / mode / description
      Previous value: -"watch = deliver everything, tag would-be drops (a safe way to start)"New value: +"watch = deliver would-be drops, tagged (a safe way to start)"
  2. Changed11 schema fields changed
    • removedInput schema / properties / alert_delivery
      Removed value: -{
      -  "description": "Alert the owner when deliveries to a destination fail 3 times in a row or run out of retries (default true)",
      -  "type": "boolean"
      -}
    • removedInput schema / properties / alert_silent
      Removed value: -{
      -  "description": "Alert when a form that normally gets submissions goes quiet, which usually means it broke (default true)",
      -  "type": "boolean"
      -}
    • removedInput schema / properties / alert_silent_days
      Removed value: -{
      -  "description": "Days of quiet before that alert; 0 = auto, from the form's own rhythm (1 to 60)",
      -  "type": "number"
      -}
    • removedInput schema / properties / alert_slack
      Removed value: -{
      -  "description": "Also post alerts to the form's Slack destination (default true)",
      -  "type": "boolean"
      -}
    • removedInput schema / properties / alert_spike
      Removed value: -{
      -  "description": "Alert on a flood: more than this many submissions an hour (default 50; 0 turns it off)",
      -  "type": "number"
      -}
    • 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 / learn
      Removed value: -{
      -  "description": "Show the owner's rescues and spam marks on this form to the model as a few examples (default true)",
      -  "type": "boolean"
      -}
    • 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 / welcome
      Removed value: -{
      -  "description": "Kinds of enquiry the owner welcomes; Doorman treats them as real instead of pitches. The full set: pass [] to clear.",
      -  "items": {
      -    "enum": [
      -      "partnerships",
      -      "jobs",
      -      "press",
      -      "investors"
      -    ],
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • removedInput schema / properties / welcome_note
      Removed value: -{
      -  "description": "One line of extra context from the owner, e.g. 'We sell to agencies, so an agency asking about our product is a customer'",
      -  "type": "string"
      -}
    • 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"
      -}
  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. Changed5 schema fields changed
    • addedInput schema / properties / alert_delivery
      Added value: +{
      +  "description": "Alert the owner when deliveries to a destination fail 3 times in a row or run out of retries (default true)",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / alert_silent
      Added value: +{
      +  "description": "Alert when a form that normally gets submissions goes quiet, which usually means it broke (default true)",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / alert_silent_days
      Added value: +{
      +  "description": "Days of quiet before that alert; 0 = auto, from the form's own rhythm (1 to 60)",
      +  "type": "number"
      +}
    • addedInput schema / properties / alert_slack
      Added value: +{
      +  "description": "Also post alerts to the form's Slack destination (default true)",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / alert_spike
      Added value: +{
      +  "description": "Alert on a flood: more than this many submissions an hour (default 50; 0 turns it off)",
      +  "type": "number"
      +}
  6. Changed3 schema fields changed
    • addedInput schema / properties / learn
      Added value: +{
      +  "description": "Show the owner's rescues and spam marks on this form to the model as a few examples (default true)",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / welcome
      Added value: +{
      +  "description": "Kinds of enquiry the owner welcomes; Doorman treats them as real instead of pitches. The full set: pass [] to clear.",
      +  "items": {
      +    "enum": [
      +      "partnerships",
      +      "jobs",
      +      "press",
      +      "investors"
      +    ],
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / welcome_note
      Added value: +{
      +  "description": "One line of extra context from the owner, e.g. 'We sell to agencies, so an agency asking about our product is a customer'",
      +  "type": "string"
      +}
  7. First observed

TDQS

C2.9/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 and does not meet it. It never states whether this is a partial update (are omitted fields preserved or reset?), what permissions/API key are required, or whether threshold changes affect in-flight submissions — all critical for a 15-parameter mutation.

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

Conciseness5/5

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

A single front-loaded sentence with zero filler: verb, resource, then a compact enumeration of the setting categories. Every clause earns its place.

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

Completeness2/5

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

For a 15-parameter mutation tool with no annotations and no output schema, the description is too thin. It omits partial-update semantics, auth handling, and any indication of what a successful update returns or affects — gaps the structured fields do not fill.

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 93%, so the schema already documents nearly every parameter (mode, deliver_at, drop_below, allow_list, etc.). The description's grouped categories loosely map to those parameters but add no syntax, defaults, or edge-case meaning 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?

States a specific verb ('Change') and resource (a form's settings) and enumerates the setting categories (context, destinations, thresholds, watch mode, allow/block lists), which lets an agent distinguish it from doorman_create_form or doorman_list_forms. It stops short of explicitly naming the sibling it is not, so a 5 is not warranted.

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 when-to-use guidance, no prerequisites, and no named alternative (e.g. create vs update, or when to prefer watch mode over enforce). The word 'Change' weakly implies an existing form, but nothing routes the agent between this and doorman_create_form.

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