Doorman
What this MCP does
Screens website form submissions for spam, sales pitches, and fraud, and supports form setup, review, labeling, delivery testing, and integration.
Tools
Input schema
{'type': 'object', 'required': ['message'], 'properties': {'error': {'type': 'string', 'description': 'The exact error text, if any'}, 'api_key': {'type': 'string', 'description': 'Doorman API key (dm_live_...). Only needed if the MCP connection has no Authorization header.'}, 'message': {'type': 'string', 'description': 'What you were trying to do and what happened'}, 'category': {'enum': ['setup', 'bug', 'billing', 'question', 'other'], 'type': 'string'}}}
Input schema
{'type': 'object', 'required': ['name'], 'properties': {'kind': {'enum': ['lead', 'signup', 'checkout', 'comment'], 'type': 'string', 'description': 'lead = contact/demo/quote/sales form (default)'}, 'name': {'type': 'string', 'description': 'Form name'}, 'api_key': {'type': 'string', 'description': 'Doorman API key (dm_live_...). Only needed if the MCP connection has no Authorization header.'}, 'email_to': {'type': 'string', 'description': 'Comma-separated emails to forward real submissions to'}, 'slack_url': {'type': 'string', 'description': 'Slack incoming webhook URL'}, 'webhook_url': {'type': 'string', 'description': 'HTTPS URL that receives a signed JSON POST per real submission'}, 'redirect_url': {'type': 'string', 'description': 'Where to send the visitor after submitting (default: a Doorman thank-you page)'}, 'site_context': {'type': 'string', 'description': 'What the business sells and to whom'}}}
Input schema
{'type': 'object', 'properties': {}}
Input schema
{'type': 'object', 'required': ['form_id', 'platform'], 'properties': {'api_key': {'type': 'string', 'description': 'Doorman API key (dm_live_...). Only needed if the MCP connection has no Authorization header.'}, 'form_id': {'type': 'string', 'description': 'f_...'}, 'platform': {'enum': ['html', 'ajax', 'react', 'fetch', 'nextjs', 'express', 'curl', 'python', 'ruby', 'elixir', 'webflow', 'framer', 'wordpress'], 'type': 'string'}}}
Input schema
{'type': 'object', 'required': ['submission_id', 'label'], 'properties': {'label': {'enum': ['real', 'spam'], 'type': 'string'}, 'api_key': {'type': 'string', 'description': 'Doorman API key (dm_live_...). Only needed if the MCP connection has no Authorization header.'}, 'submission_id': {'type': 'string', 'description': 'sub_...'}}}
Input schema
{'type': 'object', 'properties': {'api_key': {'type': 'string', 'description': 'Doorman API key (dm_live_...). Only needed if the MCP connection has no Authorization header.'}}}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'number'}, 'route': {'enum': ['deliver', 'hold', 'drop'], 'type': 'string'}, 'review': {'type': 'boolean'}, 'api_key': {'type': 'string', 'description': 'Doorman API key (dm_live_...). Only needed if the MCP connection has no Authorization header.'}, 'form_id': {'type': 'string', 'description': 'Optional f_...'}}}
Input schema
{'type': 'object', 'required': ['form_id'], 'properties': {'api_key': {'type': 'string', 'description': 'Doorman API key (dm_live_...). Only needed if the MCP connection has no Authorization header.'}, 'form_id': {'type': 'string', 'description': 'f_...'}}}
Input schema
{'type': 'object', 'required': ['email', 'site_url', 'site_context'], 'properties': {'mode': {'enum': ['watch', 'enforce'], 'type': 'string', 'description': '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.'}, 'email': {'type': 'string', 'description': "The user's email. Real submissions are forwarded here by default."}, 'site_url': {'type': 'string', 'description': 'The website the form is on, e.g. acme.com'}, 'form_name': {'type': 'string', 'description': "Optional name, e.g. 'Contact form' or 'Demo request'"}, 'site_context': {'type': 'string', 'description': "One 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."}}}
Input schema
{'type': 'object', 'required': ['form_id', 'message'], 'properties': {'email': {'type': 'string', 'description': 'Optional sender email'}, 'api_key': {'type': 'string', 'description': 'Doorman API key (dm_live_...). Only needed if the MCP connection has no Authorization header.'}, 'form_id': {'type': 'string', 'description': 'f_...'}, 'message': {'type': 'string', 'description': 'The message text'}}}
Input schema
{'type': 'object', 'required': ['form_id'], 'properties': {'kind': {'enum': ['lead', 'signup', 'checkout', 'comment'], 'type': 'string'}, 'mode': {'enum': ['enforce', 'watch'], 'type': 'string', 'description': 'watch = deliver everything, tag would-be drops (a safe way to start)'}, 'name': {'type': 'string', 'description': 'Form name'}, 'api_key': {'type': 'string', 'description': 'Doorman API key (dm_live_...). Only needed if the MCP connection has no Authorization header.'}, 'form_id': {'type': 'string', 'description': 'f_...'}, 'email_to': {'type': 'string', 'description': 'Comma-separated emails'}, 'slack_url': {'type': 'string', 'description': 'Slack incoming webhook URL'}, 'allow_list': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Emails or domains always delivered without judging'}, 'block_list': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Emails or domains always dropped'}, 'deliver_at': {'type': 'number', 'description': 'Deliver when P(real) >= this (default 0.8)'}, 'drop_below': {'type': 'number', 'description': 'Drop when P(real) < this (default 0.2)'}, 'webhook_url': {'type': 'string', 'description': 'HTTPS webhook URL'}, 'redirect_url': {'type': 'string', 'description': 'Redirect after submit'}, 'site_context': {'type': 'string', 'description': 'What the business sells and to whom'}, 'forward_holds': {'type': 'boolean', 'description': 'Forward held submissions, flagged (default true)'}}}
Input schema
{'type': 'object', 'properties': {'api_key': {'type': 'string', 'description': 'Doorman API key (dm_live_...). Only needed if the MCP connection has no Authorization header.'}}}
Recent tool changes
Similar MCP servers
Proof Holdings
Provides domain verification, identity and delegation proofs, human approval workflows, trusted-contact challenges, and controlle…
GoCreative Agent API
Offers pay-per-call LLM completions and data services for company intelligence, KYB, sanctions screening, threat intelligence, co…
ThinkNEO Control Plane
Provides an enterprise AI control plane for governance, guardrails, spend tracking, compliance, and model or tool routing.
ampel
Assesses regulated entities and providers against DORA and related ESG, MiCA, and AML requirements, with contract analysis, evide…
Didit
Provides identity and compliance capabilities including AML screening against sanctions and PEP lists, business verification, ben…
Compliance & Sanções
Performs Brazilian due-diligence checks across PEP, sanctions, criminal, regulatory, fraud, tax, and government restriction datab…
WhiteIntel — Ownership Intelligence
Resolves companies and people and maps ownership, beneficial ownership, sanctions, offshore exposure, financials, corporate filin…
swiss-army
Provides utility transformations and validation for data, documents, images, time zones, currencies, identifiers, web policies, a…