Search / com.withdoorman/doorman
Doorman
R0· no sign-inSpam, pitch and fraud screening for website forms. Sign up, wire forms, test and review.
v0.1.0 · active · website · descriptor JSON · versions
Search / com.withdoorman/doorman
R0· no sign-inSpam, pitch and fraud screening for website forms. Sign up, wire forms, test and review.
v0.1.0 · active · website · descriptor JSON · versions
{
"mcpServers": {
"doorman": {
"type": "http",
"url": "https://withdoorman.com/mcp",
"headers": {
"Authorization": "Bearer ${DOORMAN_TOKEN}"
}
}
}
}claude mcp add --transport http doorman https://withdoorman.com/mcp --header "Authorization: Bearer ${DOORMAN_TOKEN}"[mcp_servers.doorman]
url = "https://withdoorman.com/mcp"
bearer_token_env_var = "DOORMAN_TOKEN"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"doorman": {
"type": "remote",
"url": "https://withdoorman.com/mcp",
"enabled": true,
"headers": {
"Authorization": "Bearer {env:DOORMAN_TOKEN}"
}
}
}
}{
"mcpServers": {
"doorman": {
"type": "http",
"url": "https://withdoorman.com/mcp",
"headers": {
"Authorization": "Bearer ${DOORMAN_TOKEN}"
}
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=doorman&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vd2l0aGRvb3JtYW4uY29tL21jcCIsImhlYWRlcnMiOnsiQXV0aG9yaXphdGlvbiI6IkJlYXJlciAke0RPT1JNQU5fVE9LRU59In19"
}{
"servers": {
"doorman": {
"type": "http",
"url": "https://withdoorman.com/mcp",
"headers": {
"Authorization": "Bearer ${DOORMAN_TOKEN}"
}
}
}
}{
"mcpServers": {
"doorman": {
"httpUrl": "https://withdoorman.com/mcp",
"headers": {
"Authorization": "Bearer ${DOORMAN_TOKEN}"
}
}
}
}extensions:
"doorman":
enabled: true
name: "doorman"
type: streamable_http
uri: "https://withdoorman.com/mcp"
headers:
"Authorization": "Bearer ${DOORMAN_TOKEN}"
timeout: 300
Placeholders to fill from your own secret store: ${DOORMAN_TOKEN}. The registry never accepts secret values.
protocol.modernnewest supported version is 2025-06-18; 2026-07-28 not supported, older versions are deprecated until 2027-07-28protocol.statelessonly applies to 2026-07-28 serversprotocol.transportstreamable HTTPprotocol.list_ttlonly applies to 2026-07-28 serversauth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptionsevery tool has a descriptiontools.description_lengthdescriptions are concisetools.schemasevery tool has an object input schematools.annotationsonly 5 of 12 tools declare readOnlyHint or destructiveHinttools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: doorman_test_submission (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); doorman_label_submission (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); doorman_whoami (destructiveHint, idempotentHint, openWorldHint); …tools.token_costabout 1,977 tokens to load every tooltools.api_dumptools are not a one-to-one API dumpstability.changes46 tool changes in 30 daysstability.rug_pull6 tools kept their name but changed most of their description in 30 days; review before trusting themdeps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI packagedoorman_update_formchangedinput schemadoorman_signupchangedinput schemadoorman_delete_hookremovedDelete a hook subscription by id (hk_...). A Zap that used it receives nothing until it is turned off and on again.
doorman_list_hooksremovedThe account's hook subscriptions (made with doorman_create_hook, the API or the Doorman Zapier app): url, event, form, failures and whether each is paused.
doorman_alertsremovedOpen problems on the user's forms: deliveries failing, a flood, a form gone quiet (probably broken). Call it when the user asks why leads stopped arriving or a webhook isn't receiving.
doorman_client_reportremovedA client workspace's monthly report: what reached them, what was kept out, the worst catches (redacted), per form. Returns the numbers and the shareable url (a page the client can open or print to PDF).
doorman_create_workspaceremovedCreate a client workspace: one per client site an agency manages. Its email_to/slack_url/webhook_url are the defaults for every form in it whose own field is blank. Pro includes one, Business 50.
doorman_inbound_setupremovedFor a form that stays on Tally, Typeform, Jotform, Netlify Forms, Webflow or Framer: the form's inbound webhook URL, its signing secret and the exact clicks in that tool. Tell the user the steps; the tool keeps every submission and Doorman forwards the real ones with a verdict. Use this instead of changing the form's action when the form lives on one of those tools.
doorman_hubspot_statusremovedFor a demo form that is a HubSpot form: whether Doorman's HubSpot app is enabled, which HubSpot accounts are connected, which HubSpot forms Doorman screens (and into which Doorman form), whether archiving is on, and the HubSpot forms available to map. Connecting is a browser step: give the user connect_url.
doorman_update_workspaceremovedChange a client workspace: its name, site, default destinations, and its monthly report (report_monthly emails report_to on the 1st; addresses confirm once).
Showing the latest 10. Full history: list_changes · trend: quality JSON.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+dns-namespace +website +reachable +uptime-100% +updated-20d-ago -no-repository
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://withdoorman.com/mcp streamable-http | none | yes | 100% | 263 ms | 2025-06-18 | 2026-10-20 |
doorman_contact_support | 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. |
doorman_create_form | Create another form endpoint (one per distinct form on the site: contact, demo request, checkout, comments). |
doorman_docsread-only | 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. |
doorman_get_install_snippetread-only | 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. |
doorman_label_submission | Mark a submission real (delivers it if it was held or dropped) or spam. |
doorman_list_formsread-only | List the account's forms with their action URLs and settings. |
doorman_list_submissionsread-only | Recent submissions with their verdicts. Use review=true for held ones waiting for a human. |
doorman_send_test_delivery | Send a sample delivery to the form's email/Slack/webhook destinations and report whether each one worked. |
doorman_signup | 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). |
doorman_test_submission | 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). |
doorman_update_form | Change a form's settings: context, destinations, thresholds, watch mode, allow/block lists. |
doorman_whoamiread-only | Account, plan and this month's usage. |
Schemas: list_tools.
{
"name": "com.withdoorman/doorman",
"title": "Doorman",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://withdoorman.com/mcp",
"type": "streamable-http",
"headers": [
{
"name": "Authorization",
"isSecret": true,
"description": "Bearer <Doorman API key>. Optional: without it, doorman_signup and doorman_docs work and signup returns a key."
}
]
}
],
"version": "0.1.0",
"websiteUrl": "https://withdoorman.com",
"description": "Spam, pitch and fraud screening for website forms. Sign up, wire forms, test and review."
}