protogrid

Search / com.withdoorman/doorman

Doorman

R0· no sign-in

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

v0.1.0 · active · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality66needs work
Trust83of 100
Uptime, 30 days100%
Latency p50263 ms

Connect

8 clients · secrets stay placeholders
{
  "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.

Quality 66 / 100needs work

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-06-18; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene79 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • warn
    tools.annotationsonly 5 of 12 tools declare readOnlyHint or destructiveHint
  • fail
    tools.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); …
  • pass
    tools.token_costabout 1,977 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability25 · weight 15
  • warn
    stability.changes46 tool changes in 30 days
  • fail
    stability.rug_pull6 tools kept their name but changed most of their description in 30 days; review before trusting them
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

12 tools, about 1,977 tokens to load them all · tool set 3c479e9a58d6 · tools last changed 2026-10-16 · checked 2026-10-20 10:35 UTC

Tool changes

  • doorman_update_formchangedinput schema
  • doorman_signupchangedinput schema
  • doorman_delete_hookremoved

    Delete a hook subscription by id (hk_...). A Zap that used it receives nothing until it is turned off and on again.

  • doorman_list_hooksremoved

    The 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_alertsremoved

    Open 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_reportremoved

    A 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_workspaceremoved

    Create 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_setupremoved

    For 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_statusremoved

    For 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_workspaceremoved

    Change 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.

Trust 83 / 100

no-repository
provenance55
liveness100
freshness100
hygiene80

+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.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://withdoorman.com/mcp streamable-httpnoneyes100%263 ms2025-06-182026-10-20

Tools (12)

doorman_contact_supportStuck, 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_formCreate another form endpoint (one per distinct form on the site: contact, demo request, checkout, comments).
doorman_docsread-onlyRead 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-onlyGet 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_submissionMark a submission real (delivers it if it was held or dropped) or spam.
doorman_list_formsread-onlyList the account's forms with their action URLs and settings.
doorman_list_submissionsread-onlyRecent submissions with their verdicts. Use review=true for held ones waiting for a human.
doorman_send_test_deliverySend a sample delivery to the form's email/Slack/webhook destinations and report whether each one worked.
doorman_signupCreate 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_submissionJudge 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_formChange a form's settings: context, destinations, thresholds, watch mode, allow/block lists.
doorman_whoamiread-onlyAccount, plan and this month's usage.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "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."
}