Skip to main content
Glama

Server Details

Spam, pitch and fraud screening for website forms. Sign up, wire forms, test and review.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 24 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL

TDQS

A3.6/5.0

Scored across 12 tools

Disambiguation4/5

Most tools have distinct purposes (form CRUD, submission listing/labeling, account ops). The closest pair is doorman_test_submission (judge a message against settings) vs doorman_send_test_delivery (verify delivery to destinations), but the descriptions clearly differentiate their intents. Minor residual overlap only.

Naming Consistency4/5

Consistent doorman_ prefix and snake_case verb_noun pattern (create_form, list_forms, update_form, label_submission). Slight deviations: doorman_docs and doorman_signup are noun-style rather than verb-first, and doorman_whoami is informal, but all remain readable and predictable.

Tool Count5/5

12 tools maps cleanly onto the domain: onboarding (signup, docs, whoami), form management (create/list/update, install snippet), and submission handling (list/label/test/delivery, support). Each tool earns its place with no filler.

Completeness4/5

Strong lifecycle coverage: create/list/update forms, view/label submissions, testing, integration helpers, and account/support tools. The main gap is the absence of a delete_form (or get single form) operation, though agents can largely work around this.

Available Tools

12 tools
doorman_contact_supportAInspect

Stuck, or something isn't working? Send the problem straight to Doorman's founder, with the error you hit. Your account context (plan, forms, recent errors, never keys) is attached, and the reply goes to the account email. Use it instead of guessing at a fix.

ParametersJSON Schema
NameRequiredDescriptionDefault
errorNoThe exact error text, if any
api_keyNoDoorman API key (dm_live_...). Only needed if the MCP connection has no Authorization header.
messageYesWhat you were trying to do and what happened
categoryNo

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the burden and delivers: it discloses what gets attached (plan, forms, recent errors, never keys) and where the reply goes (account email). This is useful behavioral context for a send operation, though it doesn't state rate limits or whether the action is idempotent.

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?

Tight, front-loaded prose that answers what, why, what's included, and where the reply goes in three sentences. No waste.

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?

Covers the key details for a support-contact tool: what it does, what data is attached, and that the reply is emailed. Missing only minor details like whether the message is required (though schema covers that) or expected response. Good completeness given no output schema.

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 coverage is 75%, so the schema already documents most parameters including the api_key header note. The description mentions attaching the error ('with the error you hit') which maps to the error parameter, but adds little beyond the schema descriptions.

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 action (send a support problem) and target (Doorman's founder), with a clear outcome ('reply goes to the account email'). It doesn't explicitly distinguish from siblings, but no sibling covers support-contact, so the purpose reads clearly.

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?

Provides clear context: use when stuck or something isn't working, and explicitly says 'Use it instead of guessing at a fix.' This gives the when-to-use condition without naming alternative tools, which is sufficient for a one-off support tool.

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

doorman_create_formBInspect

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

ParametersJSON 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

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.

doorman_docsA
Read-only
Inspect

Read how Doorman works and how to integrate it (the same text as /llms.txt). Call this first if you haven't used Doorman before.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, and the description's 'Read' is consistent with that. It adds that the content mirrors /llms.txt, which tells the agent exactly what it will get back, a useful behavioral detail beyond the annotation.

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?

Two tight sentences, no waste. The purpose is front-loaded and the call-first instruction follows immediately.

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?

A parameterless read-only docs tool with no output schema needs little more; the description covers purpose, content equivalence, and invocation timing. Nothing essential is missing, though a note on expected output format would make it fully self-contained.

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?

Zero parameters, so per the rubric the baseline is 4. There are no parameter semantics to clarify and the description correctly doesn't invent any.

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: 'Read how Doorman works and how to integrate it', with the clarifying detail that it returns the same text as /llms.txt. Clearly distinguishable from every sibling, which are all action-oriented (create_form, list_submissions, etc.).

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?

Explicitly says 'Call this first if you haven't used Doorman before', giving a clear condition for invocation. It doesn't name alternatives or state when NOT to call it, but for a bootstrap-docs tool the ordering guidance is the main thing an agent needs.

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

doorman_get_install_snippetA
Read-only
Inspect

Get ready-to-paste integration code for a form on a given platform. Use 'html' for static sites, 'react' for SPA client components, and 'fetch' (plain fetch with timeout and fallback: Workers, Node, Next, Deno), 'nextjs', 'express', 'python', 'ruby' or 'elixir' when the form already posts to the project's own backend.

ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNoDoorman API key (dm_live_...). Only needed if the MCP connection has no Authorization header.
form_idYesf_...
platformYes

TDQS

A4/5.0
Behavior3/5

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

readOnlyHint=true already tells the agent this is a safe read, so the bar is lower. The description adds that the result is paste-ready code and that the 'fetch' variant includes timeout and fallback behavior, but says nothing about auth requirements beyond what the schema states, nor about the shape/size of the returned snippets.

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?

One front-loaded sentence stating the action, followed by a compact routing list. The second clause is dense to the point of being run-on, but no 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?

For a no-output-schema read tool, the description should fully cover the platform enum it depends on, yet five documented enum values (ajax, curl, webflow, framer, wordpress) get no guidance, so an agent selecting those values is guessing. Otherwise adequate for a simple code-retrieval tool.

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 67% and the platform enum has no per-value description in the schema, so the description's mapping of platform values to deployment contexts adds real meaning. It falls short by covering only 8 of the 13 enum values, leaving the no-code and ajax/curl options undefined.

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?

States a specific verb and resource ('Get ready-to-paste integration code for a form'), with scope narrowed to 'a given platform'. No sibling tool in the list produces integration code, so the agent can distinguish it immediately.

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?

Gives value-level routing guidance ('html' for static sites, 'react' for SPA client components, 'fetch' for Workers/Node/Next/Deno, backend frameworks when the form posts to your own backend). It never names an alternative tool or a when-not condition, and it silently omits five valid enum values (ajax, curl, webflow, framer, wordpress).

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

doorman_label_submissionAInspect

Mark a submission real (delivers it if it was held or dropped) or spam.

ParametersJSON Schema
NameRequiredDescriptionDefault
labelYes
api_keyNoDoorman API key (dm_live_...). Only needed if the MCP connection has no Authorization header.
submission_idYessub_...

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full burden and does disclose the key side effect that labeling 'real' delivers a held or dropped submission. However, it omits reversibility of the action, whether the readOnly-style safety profile applies, and auth requirements (the api_key behavior lives only in the schema).

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 sentence with the consequence front-loaded in the parenthetical; no filler and nothing redundant.

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 small two-required-param mutation tool with no annotations or output schema, the crucial behavioral fact (delivery on 'real') is stated. Remaining gaps are minor: no error/failure behavior and no explicit note on irreversibility.

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 schema leaves the enum values 'real' and 'spam' undefined, so the description's explanation that 'real' triggers delivery adds real meaning beyond the schema. submission_id and api_key are covered by the schema itself, so 67% coverage is largely compensated.

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 (mark) and resource (submission) plus the two terminal states (real/spam), and the parenthetical clarifies the consequence of labeling something real. It doesn't name a sibling to distinguish itself from, e.g., doorman_test_submission, but the purpose is unambiguous.

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 explicit when-to-use guidance, no prerequisites, and no mention of alternatives such as doorman_test_submission or doorman_list_submissions. The held/dropped parenthetical hints at context but never states the condition under which an agent should call this tool.

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

doorman_list_formsB
Read-only
Inspect

List the account's forms with their action URLs and settings.

ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNoDoorman API key (dm_live_...). Only needed if the MCP connection has no Authorization header.

TDQS

B3.2/5.0
Behavior3/5

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

readOnlyHint=true already tells the agent this is a safe read. The description adds a modest signal by saying the result includes action URLs and settings, which hints at the payload shape, but it does not discuss pagination, whether all forms are returned, or any auth behavior beyond what the api_key schema already documents.

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; the resource and the notable return fields come first. Slightly terse, but nothing 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?

For a trivial read-only list with one optional parameter and no output schema, this is minimally adequate. The mention of action URLs and settings partly compensates for the missing output schema, but pagination, result limits, and any empty-account behavior are unaddressed.

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?

Only one optional parameter (api_key) exists and its schema description is 100% covered, including the dm_live_ prefix and the no-Authorization-header condition. The description adds nothing about it, so the baseline 3 for fully documented schema 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?

Names a specific verb (List) and resource (the account's forms), plus light scope detail (action URLs and settings). It is clear what the tool does, but it never distinguishes itself from near-neighbors like doorman_list_submissions or doorman_list_forms-style reads, so an agent must infer the split from names alone.

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 prerequisite (e.g. authentication already handled), and no mention of alternatives such as create_form/update_form for the write path. Usage must be inferred entirely from the verb and from sibling names.

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

doorman_list_submissionsB
Read-only
Inspect

Recent submissions with their verdicts. Use review=true for held ones waiting for a human.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
routeNo
reviewNo
api_keyNoDoorman API key (dm_live_...). Only needed if the MCP connection has no Authorization header.
form_idNoOptional f_...

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, so safety is covered structurally. The description contributes that results include verdicts and that some submissions are 'held... waiting for a human', which tells the agent what state means. It omits pagination/limit behavior and ordering semantics for a 'recent' list.

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?

Two short sentences, result content front-loaded, usage rule second — no filler. It is tight, though the extreme brevity leaves room that could have been spent on the undocumented filters.

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 5-parameter, no-output-schema list tool, the description leaves most of the request surface unexplained: no hint about route values, limit/default page size, form_id scoping, or result shape. An agent can call it, but only with guesswork about the filters.

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

Parameters2/5

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

Schema coverage is only 40% across 5 parameters. The description only explains review=true; limit, route (an enum with deliver/hold/drop), and form_id are left undiscussed, so it fails to compensate for the coverage gap. Low-coverage schemas require the description to carry more of this load.

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 and resource (list submissions) plus content of the result (their verdicts), and implicitly distinguishes a filtering mode via review=true. It doesn't name any sibling, but list_forms / label_submission are clearly different operations, so the agent can tell what this does without opening the schema.

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?

Gives one concrete usage rule — 'Use review=true for held ones waiting for a human' — which maps a filter to an intent. However it says nothing about when to prefer this over label_submission or test_submission, nor when not to use it, so guidance is partial and implied.

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

doorman_send_test_deliveryBInspect

Send a sample delivery to the form's email/Slack/webhook destinations and report whether each one worked.

ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNoDoorman API key (dm_live_...). Only needed if the MCP connection has no Authorization header.
form_idYesf_...

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It conveys that a sample delivery is sent to external destinations and that per-destination success is reported, but it omits side-effect details such as whether real emails/Slack messages are sent, quota implications, required permissions, or whether the action is reversible.

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?

The description is a single, front-loaded sentence with no wasted words. It delivers the core action and outcome efficiently.

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?

The tool is simple with two fully documented parameters and no output schema, so the description needn't explain return values. However, with no annotations and a side-effecting test-send operation, the description should disclose more about permissions, side effects, or safety to be fully complete.

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 both api_key and form_id are fully documented in the input schema. The description adds no additional parameter meaning, which meets the baseline of 3 when the schema does the heavy lifting.

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 ('Send'), resource ('sample delivery'), and scope ('form's email/Slack/webhook destinations') plus the outcome ('report whether each one worked'). It clearly identifies what the tool does, though it does not explicitly name or differentiate itself from the sibling doorman_test_submission.

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 explicit guidance on when to use this tool versus alternatives like doorman_test_submission or when not to use it. The implied context is testing delivery destinations, but prerequisites, exclusions, and alternative selection criteria are absent.

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

doorman_signupAInspect

Create a Doorman account for the user with a first form and an API key. Ask the user for their email first. They'll get an email to set a dashboard password. Creates the account's first form too and returns its id and action URL, plus the api_key (store it as DOORMAN_KEY in the project's local secrets file, never commit it). Only for new users: if they already have an account, ask for a key instead. Until the user clicks the confirmation link in that email, nothing is emailed to them (100 checks; Slack and webhooks work).

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNowatch delivers would-be drops, tagged; holds still follow forward_holds. Recommended for a new lead form: switch to enforce after a week or two of verdicts look right. Default enforce.
emailYesThe user's email. Real submissions are forwarded here by default.
site_urlYesThe website the form is on, e.g. acme.com
form_nameNoOptional name, e.g. 'Contact form' or 'Demo request'
site_contextYesOne or two sentences: what the business sells and to whom. Doorman compares every submission against this. Read the project's README/landing copy to write it.

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does it well: it discloses the return payload (form id, action URL, api_key), requires credential handling ('store it as DOORMAN_KEY... never commit it'), and explains the pre-confirmation state ('nothing is emailed to them; 100 checks; Slack and webhooks work'). These are exactly the behavioral facts an agent cannot infer from the schema.

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 action and credential guidance, and most sentences earn their place. The parenthetical about '100 checks; Slack and webhooks work' is slightly tangential and the passage runs long, but nothing is wasted or circular.

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?

For a multi-effect provisioning tool with no annotations and no output schema, the description compensates by explaining both the side effects (form creation, confirmation email) and the return values. An agent has everything needed to invoke and handle the result correctly.

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 five parameters, including the mode enum's watch/enforce tradeoff. The description adds only a hint about email ('Ask the user for their email first') and does not clarify site_context or site_url beyond what the schema states. Baseline 3 is appropriate.

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?

States a specific verb and resource ('Create a Doorman account... with a first form and an API key') and its scope. It is clearly distinguishable from siblings like doorman_create_form, which acts on an existing account rather than provisioning one.

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?

Explicit when-to-use and when-not: 'Only for new users: if they already have an account, ask for a key instead,' plus the sequencing instruction 'Ask the user for their email first.' It stops short of naming the sibling (e.g. doorman_whoami) an agent should call to determine whether an account already exists.

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

doorman_test_submissionAInspect

Judge a sample message against a form's settings. Free, not forwarded, not counted. Use it to show the user Doorman working after setup (try one genuine enquiry and one sales pitch).

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoOptional sender email
api_keyNoDoorman API key (dm_live_...). Only needed if the MCP connection has no Authorization header.
form_idYesf_...
messageYesThe message text

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: 'Free, not forwarded, not counted' discloses the absence of billing, delivery, and quota side effects. It does not mention auth requirements or what the returned judgment looks like, but the schema covers the api_key prerequisite.

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?

Three tight sentences, front-loaded with purpose, then the safety/cost guarantees, then usage. Every sentence earns its place with no filler.

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?

For a 4-parameter tool with no output schema and no annotations, the definition covers intent, cost, and side effects but never hints at the shape of the result beyond the verb 'judge' (e.g. a label/verdict). An agent knows how to call it but not quite what it gets back.

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 all four parameters including form_id format (f_...) and api_key format (dm_live_...) are already documented. The description adds no parameter-level detail, which is the expected baseline when the schema does the work.

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+resource: judging a sample message against a form's settings. It is clearly distinguishable from list/create/update siblings, though it never explicitly names its closest sibling, doorman_send_test_delivery, so the boundary between 'test submission' and 'test delivery' is left to inference.

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?

Gives clear context ('after setup') and even suggests a test strategy (one genuine enquiry and one sales pitch). It stops short of stating when NOT to use it or contrasting it with doorman_send_test_delivery, which is the most likely alternative an agent would consider.

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

doorman_update_formCInspect

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

ParametersJSON 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)

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.

doorman_whoamiC
Read-only
Inspect

Account, plan and this month's usage.

ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNoDoorman API key (dm_live_...). Only needed if the MCP connection has no Authorization header.

TDQS

C2.9/5.0
Behavior3/5

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

readOnlyHint=true already establishes this as a safe read, so the description's main added value is naming the returned payload (account, plan, usage). It says nothing about auth requirements, rate limits, or what 'usage' covers, but for a trivial read tool with annotation coverage this is adequate. No contradiction with annotations.

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

Conciseness3/5

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

It is a single fragment with zero filler, but it is under-specified rather than well-structured prose — there is no framing sentence to front-load, and the terseness reads as abbreviation rather than economy.

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 zero-required-parameter, read-only identity tool with a fully documented schema and no output schema, the description covers the essential question of what the agent gets back. Only the absence of any usage framing keeps it from being fully complete.

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%: the api_key parameter is fully documented in the schema, including the conditional 'only needed if the MCP connection has no Authorization header' caveat. The description adds nothing about parameters, so the baseline 3 applies.

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

Purpose3/5

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

The description is a noun phrase ('Account, plan and this month's usage') rather than a verb+resource statement, but combined with the name whoami it does convey that it reports the caller's own account context. It gives no differentiation from siblings like doorman_contact_support or doorman_docs, and an agent must infer that this is a self-identity/account read. Vague but interpretable.

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 at all — no statement of the condition that should select this over any sibling, and no exclusions. The agent can only infer usage from the tool name.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • Changeddoorman_signup1 field changed
      • changedInput schema / properties / mode / description
        Previous value: -"watch forwards everything and only tags would-be drops. Recommended for a new lead form: switch to enforce after a week or two of verdicts look right. Default enforce."New value: +"watch delivers would-be drops, tagged; holds still follow forward_holds. Recommended for a new lead form: switch to enforce after a week or two of verdicts look right. Default enforce."
    • Changeddoorman_update_form1 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. 20 tool updates
    • Removeddoorman_alerts
    • Removeddoorman_audit_rows
    • Removeddoorman_client_report
    • Changeddoorman_create_form4 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"
        -}
    • Removeddoorman_create_hook
    • Removeddoorman_create_workspace
    • Removeddoorman_delete_hook
    • Changeddoorman_get_install_snippet1 field changed
      • changedInput schema / properties / platform / enum
        Previous value: -[
        -  "html",
        -  "ajax",
        -  "react",
        -  "fetch",
        -  "nextjs",
        -  "express",
        -  "curl",
        -  "python",
        -  "ruby",
        -  "elixir",
        -  "webflow",
        -  "framer",
        -  "wordpress",
        -  "tally",
        -  "typeform",
        -  "jotform",
        -  "netlify",
        -  "badge"
        -]New value: +[
        +  "html",
        +  "ajax",
        +  "react",
        +  "fetch",
        +  "nextjs",
        +  "express",
        +  "curl",
        +  "python",
        +  "ruby",
        +  "elixir",
        +  "webflow",
        +  "framer",
        +  "wordpress"
        +]
    • Removeddoorman_hubspot_map_forms
    • Removeddoorman_hubspot_status
    • Removeddoorman_inbound_setup
    • Removeddoorman_invite
    • Changeddoorman_label_submission1 field changed
      • removedInput schema / properties / always
        Removed value: -{
        -  "description": "Also add a rule: always deliver (real) or always drop (spam) this sender or its domain. Domain is refused for free-mail providers.",
        -  "enum": [
        -    "sender",
        -    "domain"
        -  ],
        -  "type": "string"
        -}
    • Changeddoorman_list_forms1 field changed
      • removedInput schema / properties / workspace_id
        Removed value: -{
        -  "description": "Optional ws_...: only this client workspace's forms",
        -  "type": "string"
        -}
    • Removeddoorman_list_hooks
    • Changeddoorman_list_submissions3 fields changed
      • removedInput schema / properties / type
        Removed value: -{
        -  "description": "Only this enquiry type (lead forms): sales, support, job, partnership, press, investor, other",
        -  "enum": [
        -    "sales",
        -    "support",
        -    "job",
        -    "partnership",
        -    "press",
        -    "investor",
        -    "other"
        -  ],
        -  "type": "string"
        -}
      • removedInput schema / properties / via
        Removed value: -{
        -  "description": "Only submissions that came in through this form tool's webhook",
        -  "enum": [
        -    "tally",
        -    "typeform",
        -    "jotform",
        -    "netlify",
        -    "webflow",
        -    "framer",
        -    "json"
        -  ],
        -  "type": "string"
        -}
      • removedInput schema / properties / workspace_id
        Removed value: -{
        -  "description": "Optional ws_...: only this client workspace's forms",
        -  "type": "string"
        -}
    • Removeddoorman_list_workspaces
    • Changeddoorman_send_test_delivery1 field changed
      • removedInput schema / properties / type
        Removed value: -{
        -  "description": "Send the sample to the destinations a submission of this type would get",
        -  "enum": [
        -    "sales",
        -    "support",
        -    "job",
        -    "partnership",
        -    "press",
        -    "investor",
        -    "other"
        -  ],
        -  "type": "string"
        -}
    • Changeddoorman_update_form11 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"
        -}
    • Removeddoorman_update_workspace
  3. 1 tool update
    • Changeddoorman_get_install_snippet1 field changed
      • changedInput schema / properties / platform / enum
        Previous value: -[
        -  "html",
        -  "ajax",
        -  "react",
        -  "fetch",
        -  "nextjs",
        -  "express",
        -  "curl",
        -  "python",
        -  "ruby",
        -  "elixir",
        -  "webflow",
        -  "framer",
        -  "wordpress",
        -  "tally",
        -  "typeform",
        -  "jotform",
        -  "netlify"
        -]New value: +[
        +  "html",
        +  "ajax",
        +  "react",
        +  "fetch",
        +  "nextjs",
        +  "express",
        +  "curl",
        +  "python",
        +  "ruby",
        +  "elixir",
        +  "webflow",
        +  "framer",
        +  "wordpress",
        +  "tally",
        +  "typeform",
        +  "jotform",
        +  "netlify",
        +  "badge"
        +]
  4. 3 tool updates
    • Addeddoorman_create_hook
    • Addeddoorman_delete_hook
    • Addeddoorman_list_hooks
  5. 2 tool updates
    • Addeddoorman_hubspot_map_forms
    • Addeddoorman_hubspot_status
  6. 4 tool updates
    • Changeddoorman_create_form1 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"
        +}
    • Changeddoorman_get_install_snippet1 field changed
      • changedInput schema / properties / platform / enum
        Previous value: -[
        -  "html",
        -  "ajax",
        -  "react",
        -  "fetch",
        -  "nextjs",
        -  "express",
        -  "curl",
        -  "python",
        -  "ruby",
        -  "elixir",
        -  "webflow",
        -  "framer",
        -  "wordpress"
        -]New value: +[
        +  "html",
        +  "ajax",
        +  "react",
        +  "fetch",
        +  "nextjs",
        +  "express",
        +  "curl",
        +  "python",
        +  "ruby",
        +  "elixir",
        +  "webflow",
        +  "framer",
        +  "wordpress",
        +  "tally",
        +  "typeform",
        +  "jotform",
        +  "netlify"
        +]
    • Addeddoorman_inbound_setup
    • Changeddoorman_list_submissions1 field changed
      • addedInput schema / properties / via
        Added value: +{
        +  "description": "Only submissions that came in through this form tool's webhook",
        +  "enum": [
        +    "tally",
        +    "typeform",
        +    "jotform",
        +    "netlify",
        +    "webflow",
        +    "framer",
        +    "json"
        +  ],
        +  "type": "string"
        +}
  7. 9 tool updates
    • Addeddoorman_client_report
    • Changeddoorman_create_form2 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"
        +}
    • Addeddoorman_create_workspace
    • Addeddoorman_invite
    • Changeddoorman_list_forms1 field changed
      • addedInput schema / properties / workspace_id
        Added value: +{
        +  "description": "Optional ws_...: only this client workspace's forms",
        +  "type": "string"
        +}
    • Changeddoorman_list_submissions1 field changed
      • addedInput schema / properties / workspace_id
        Added value: +{
        +  "description": "Optional ws_...: only this client workspace's forms",
        +  "type": "string"
        +}
    • Addeddoorman_list_workspaces
    • Changeddoorman_update_form2 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"
        +}
    • Addeddoorman_update_workspace
  8. 4 tool updates
    • Changeddoorman_create_form1 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"
        +}
    • Changeddoorman_list_submissions1 field changed
      • addedInput schema / properties / type
        Added value: +{
        +  "description": "Only this enquiry type (lead forms): sales, support, job, partnership, press, investor, other",
        +  "enum": [
        +    "sales",
        +    "support",
        +    "job",
        +    "partnership",
        +    "press",
        +    "investor",
        +    "other"
        +  ],
        +  "type": "string"
        +}
    • Changeddoorman_send_test_delivery1 field changed
      • addedInput schema / properties / type
        Added value: +{
        +  "description": "Send the sample to the destinations a submission of this type would get",
        +  "enum": [
        +    "sales",
        +    "support",
        +    "job",
        +    "partnership",
        +    "press",
        +    "investor",
        +    "other"
        +  ],
        +  "type": "string"
        +}
    • Changeddoorman_update_form1 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"
        +}
  9. 2 tool updates
    • Addeddoorman_alerts
    • Changeddoorman_update_form5 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"
        +}
  10. 2 tool updates
    • Changeddoorman_label_submission1 field changed
      • addedInput schema / properties / always
        Added value: +{
        +  "description": "Also add a rule: always deliver (real) or always drop (spam) this sender or its domain. Domain is refused for free-mail providers.",
        +  "enum": [
        +    "sender",
        +    "domain"
        +  ],
        +  "type": "string"
        +}
    • Changeddoorman_update_form3 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"
        +}
  11. 1 tool update
    • Addeddoorman_audit_rows
  12. 12 tool updates
    • First observeddoorman_contact_support
    • First observeddoorman_create_form
    • First observeddoorman_docs
    • First observeddoorman_get_install_snippet
    • First observeddoorman_label_submission
    • First observeddoorman_list_forms
    • First observeddoorman_list_submissions
    • First observeddoorman_send_test_delivery
    • First observeddoorman_signup
    • First observeddoorman_test_submission
    • First observeddoorman_update_form
    • First observeddoorman_whoami

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Enables AI agents to verify email addresses and receive a 'send', 'hold', or 'kill' verdict with the reason, while also managing signup and credits programmatically.
    5
    2
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to score drafts for AI-content-spam risk before publishing and scan entire sites, providing a pre-publish QA gate with pass/warn/fail verdicts.
    5 npm
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Security intelligence for AI agents — breach detection, SIM swap, domain lookalikes, OAuth watchlist, and malware scanning. Subscription or x402 PAYG.
    11
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables screening companies or people against OFAC, UN, EU and UK sanctions lists, looking up SEC EDGAR records, checking domain age and email records, and compiling due-diligence reports with source links and a clear, review, or hold verdict.
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources