MCP 서버

Doorman

com.withdoorman/doorman
비즈니스 및 운영 보안 공개 · 연결 가능 MCP 2026-07-28

이 MCP로 할 수 있는 일

Screens website form submissions for spam, sales pitches, and fraud, and supports form setup, review, labeling, delivery testing, and integration.

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.
입력 스키마
{'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'}}}
doorman_create_form
Create another form endpoint (one per distinct form on the site: contact, demo request, checkout, comments).
입력 스키마
{'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'}}}
doorman_docs
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.
읽기 전용
입력 스키마
{'type': 'object', 'properties': {}}
doorman_get_install_snippet
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.
읽기 전용
입력 스키마
{'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'}}}
doorman_label_submission
Mark a submission real (delivers it if it was held or dropped) or spam.
입력 스키마
{'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_...'}}}
doorman_list_forms
List the account's forms with their action URLs and settings.
읽기 전용
입력 스키마
{'type': 'object', 'properties': {'api_key': {'type': 'string', 'description': 'Doorman API key (dm_live_...). Only needed if the MCP connection has no Authorization header.'}}}
doorman_list_submissions
Recent submissions with their verdicts. Use review=true for held ones waiting for a human.
읽기 전용
입력 스키마
{'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_...'}}}
doorman_send_test_delivery
Send a sample delivery to the form's email/Slack/webhook destinations and report whether each one worked.
입력 스키마
{'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_...'}}}
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).
입력 스키마
{'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."}}}
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).
입력 스키마
{'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'}}}
doorman_update_form
Change a form's settings: context, destinations, thresholds, watch mode, allow/block lists.
입력 스키마
{'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)'}}}
doorman_whoami
Account, plan and this month's usage.
읽기 전용
입력 스키마
{'type': 'object', 'properties': {'api_key': {'type': 'string', 'description': 'Doorman API key (dm_live_...). Only needed if the MCP connection has no Authorization header.'}}}
추가됨
doorman_contact_support
2026년 10월 2일 2:40 AM
추가됨
doorman_label_submission
2026년 10월 2일 2:40 AM
추가됨
doorman_list_submissions
2026년 10월 2일 2:40 AM
추가됨
doorman_send_test_delivery
2026년 10월 2일 2:40 AM
추가됨
doorman_test_submission
2026년 10월 2일 2:40 AM
추가됨
doorman_get_install_snippet
2026년 10월 2일 2:40 AM
추가됨
doorman_update_form
2026년 10월 2일 2:40 AM
추가됨
doorman_create_form
2026년 10월 2일 2:40 AM
추가됨
doorman_list_forms
2026년 10월 2일 2:40 AM
추가됨
doorman_whoami
2026년 10월 2일 2:40 AM
추가됨
doorman_signup
2026년 10월 2일 2:40 AM
추가됨
doorman_docs
2026년 10월 2일 2:40 AM