Skip to content

EmailMCP

by setip.io · remote · no sign-in to list tools · v1.0.1 · published by io.setip

AI agent email — 23 tools free to read inbox, 28 paid to send. $9.99/mo. Token auto-provisioned.

Deletes · 5Final · 3Changes · 244 high findings

56 tools: 5 can delete or cancel things, 3 do something that can't be undone, 24 change things and 24 only read.

Scanned Oct 21, 2026

13 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http emailmcp https://mcp.setip.io/mcp

Findings

Matches of fixed checks, with the text they matched.

4 high9 info
  • The description refers to ".env".

    Matched text

    description: "...ering options. If IMAP is configured in .env, no credentials needed. Use "account" t..."

    What this check looks for
  • The input schema at properties.imap_config.description refers to ".env".

    Matched text

    inputSchema.properties.imap_config.description: "Optional if IMAP is configured in .env (IMAP_HOST, IMAP_EMAIL, IMAP_PASSWORD)"

    What this check looks for
  • The description refers to ".env".

    Matched text

    description: "...email mailbox. If IMAP is configured in .env, no credentials needed. Use "account" t..."

    What this check looks for
  • The description refers to ".env".

    Matched text

    description: "...email account. If IMAP is configured in .env, no credentials needed. Use "account" t..."

    What this check looks for
  • The input schema at properties.provider.description mentions "credentials".

    Matched text

    inputSchema.properties.provider.description: "...mail, resend). Requires that provider's credentials in env."

    What this check looks for
  • The input schema at properties.from.description mentions "credentials".

    Matched text

    inputSchema.properties.from.description: "...matching account has personal SMTP/IMAP credentials (via set_personal_email_credentials), s..."

    What this check looks for
Show 7 more findings

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

56 tools

Deletes or cancels 5Claude Code: deny
  • delete_email_accountDelete an email account and revoke its SMTP credentials1 finding

    Why it is in this group

    • The name "delete_email_account" says "delete": a word for removing or ending something.

    Findings

    • Info

      The description mentions "credentials".

      Matched text

      description: "...te an email account and revoke its SMTP credentials"

      What this check looks for
    Description, as the server wrote it
    Delete an email account and revoke its SMTP credentials
  • delete_email_ruleDelete an email rule by IDNo findings

    Why it is in this group

    • The name "delete_email_rule" says "delete": a word for removing or ending something.
    Description, as the server wrote it
    Delete an email rule by ID
  • delete_mailboxDelete a local mailbox and all its stored emails (autonomous mode)No findings

    Why it is in this group

    • The name "delete_mailbox" says "delete": a word for removing or ending something.
    Description, as the server wrote it
    Delete a local mailbox and all its stored emails (autonomous mode)
  • remove_from_suppressionRemove an address from the bounce suppression list (manual override to allow sending again)No findings

    Why it is in this group

    • The name "remove_from_suppression" says "remove": a word for removing or ending something.
    Description, as the server wrote it
    Remove an address from the bounce suppression list (manual override to allow sending again)
  • remove_sending_domainRemove a sending domain and its DKIM keysNo findings

    Why it is in this group

    • The name "remove_sending_domain" says "remove": a word for removing or ending something.
    Description, as the server wrote it
    Remove a sending domain and its DKIM keys
Can't be undone 3Claude Code: ask
  • create_email_ruleCreate a rule that triggers actions when incoming emails match conditions.No findings

    Why it is in this group

    • The name "create_email_rule" says "create": a word for a change.
    • The input addresses people (input.match.to): what it sends cannot be taken back.
    Description, as the server wrote it
    Create a rule that triggers actions when incoming emails match conditions. Actions: forward, auto_reply, webhook, flag, move, mcp_tool, log, reject.
  • send_emailSend an email with text or HTML content2 findings

    Why it is in this group

    • The name "send_email" says "send": a word for sending, and what is sent cannot be taken back.
    • The input addresses people (input.to): what it sends cannot be taken back.

    Findings

    • Info

      The input schema at properties.provider.description mentions "credentials".

      Matched text

      inputSchema.properties.provider.description: "...mail, resend). Requires that provider's credentials in env."

      What this check looks for
    • Info

      The input schema at properties.from.description mentions "credentials".

      Matched text

      inputSchema.properties.from.description: "...matching account has personal SMTP/IMAP credentials (via set_personal_email_credentials), s..."

      What this check looks for
    Description, as the server wrote it
    Send an email with text or HTML content
  • send_template_emailSend an email using a predefined templateNo findings

    Why it is in this group

    • The name "send_template_email" says "send": a word for sending, and what is sent cannot be taken back.
    • The input addresses people (input.to): what it sends cannot be taken back.
    Description, as the server wrote it
    Send an email using a predefined template
Changes things 24Claude Code: ask
  • add_sending_domainAdd a customer sending domain.No findings

    Why it is in this group

    • The name "add_sending_domain" says "add": a word for a change.
    Description, as the server wrote it
    Add a customer sending domain. Generates DKIM keys and returns the 4 DNS records the customer needs to add. Works like SendGrid domain authentication — self-hosted.
  • check_email_configCheck if email providers are configured, guide setup if neededNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Check if email providers are configured, guide setup if needed
  • configure_mailgunConfigure Mailgun email provider with step-by-step guidanceNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Configure Mailgun email provider with step-by-step guidance
  • create_email_accountCreate an email account with SMTP credentials.1 finding

    Why it is in this group

    • The name "create_email_account" says "create": a word for a change.

    Findings

    • Info

      The description mentions "credentials".

      Matched text

      description: "Create an email account with SMTP credentials. Returns SMTP password once — save it...."

      What this check looks for
    Description, as the server wrote it
    Create an email account with SMTP credentials. Returns SMTP password once — save it. The account can then send/receive via this server.
  • create_mailboxCreate a new local mailbox for receiving email (autonomous mode).No findings

    Why it is in this group

    • The name "create_mailbox" says "create": a word for a change.
    Description, as the server wrote it
    Create a new local mailbox for receiving email (autonomous mode). Each address gets its own inbox accessible via MCP tools.
  • get_dns_recordsGenerate all required DNS records (A, MX, SPF, DKIM, DMARC) for autonomous email.No findings

    Why it is in this group

    • The name "get_dns_records" says "get": a word for reading.
    • The description's first verb is "generate": a word for a change.
    Description, as the server wrote it
    Generate all required DNS records (A, MX, SPF, DKIM, DMARC) for autonomous email. Outputs copyable records for your DNS provider.
  • provision_resumeResume provisioning from where you left off.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Resume provisioning from where you left off. Automatically detects the current phase and advances: WireGuard connection → DNS setup → TLS → verification. Run this after each user action (connecting WireGuard, adding DNS records).
  • provision_startPhase 1: Create a cloud VPS with dedicated IP.No findings

    Why it is in this group

    • The name "provision_start" says "start": a word for a change.
    Description, as the server wrote it
    Phase 1: Create a cloud VPS with dedicated IP. Generates WireGuard config. Returns the IP and instructions to connect. Supports DigitalOcean, Vultr, Hetzner, OVH.
  • regenerate_zone_fileRegenerate the complete DNS zone file for the service domain including all customer subdomains.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Regenerate the complete DNS zone file for the service domain including all customer subdomains. Use after adding/removing domains.
  • request_email_ipRequest a dedicated WireGuard IP for email sending.No findings

    Why it is in this group

    • The name "request_email_ip" says "request": a word for a change.
    Description, as the server wrote it
    Request a dedicated WireGuard IP for email sending. Submits to the provisioning queue.
  • reset_account_passwordReset the SMTP password for an email account.No findings

    Why it is in this group

    • The name "reset_account_password" says "reset": a word for a change.
    Description, as the server wrote it
    Reset the SMTP password for an email account. Returns new password once.
  • set_personal_email_credentialsAttach a personal account's own SMTP + IMAP credentials (iCloud, Gmail app password, Fastmail, Office365, etc.) to an existing account.1 finding

    Why it is in this group

    • The name "set_personal_email_credentials" says "set": a word for a change.

    Findings

    • Info

      The description mentions "credentials".

      Matched text

      description: "...ch a personal account's own SMTP + IMAP credentials (iCloud, Gmail app password, Fastmail,..."

      What this check looks for
    Description, as the server wrote it
    Attach a personal account's own SMTP + IMAP credentials (iCloud, Gmail app password, Fastmail, Office365, etc.) to an existing account. Once set, send_email with from=<address> sends via that SMTP and IMAP-APPENDs a copy to its Sent folder. Passwords are AES-256-GCM encrypted at rest with EMAILMCP_SECRET.
  • setup_autonomous_securityAuto-configure DKIM, SPF, and DMARC for autonomous email.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Auto-configure DKIM, SPF, and DMARC for autonomous email. Generates DKIM keys, creates DNS records, and outputs everything needed.
  • start_domain_verificationBegin a domain-verification window: temporarily set the target domain's MX to verify.setip.io, start (or reuse) the EmailMCP SMTP receiver on :25, and forward any inbound mail for …No findings

    Why it is in this group

    • The name "start_domain_verification" says "start": a word for a change.
    Description, as the server wrote it
    Begin a domain-verification window: temporarily set the target domain's MX to verify.setip.io, start (or reuse) the EmailMCP SMTP receiver on :25, and forward any inbound mail for *@domain to forward_to so a human can grab a verification code from the provider (Apple/Google/etc). Auto-tears down after ttl_minutes.
  • start_health_monitorStart monitoring the provisioned email server — checks tunnel, SMTP, DNS, and IP reputation every 60 seconds.No findings

    Why it is in this group

    • The name "start_health_monitor" says "start": a word for a change.
    Description, as the server wrote it
    Start monitoring the provisioned email server — checks tunnel, SMTP, DNS, and IP reputation every 60 seconds. Auto-restarts on failure.
  • start_idle_watchStart real-time IMAP IDLE watching on email accounts.No findings

    Why it is in this group

    • The name "start_idle_watch" says "start": a word for a change.
    Description, as the server wrote it
    Start real-time IMAP IDLE watching on email accounts. Get push notifications when new emails arrive. Works with Gmail, iCloud, Office365, etc.
  • start_smtp_receiverStart the SMTP server to receive forwarded corporate emailsNo findings

    Why it is in this group

    • The name "start_smtp_receiver" says "start": a word for a change.
    Description, as the server wrote it
    Start the SMTP server to receive forwarded corporate emails
  • stop_domain_verificationTear down an active domain-verification window: restore MX (snapshot or supplied real_mx_target), remove the per-domain forwarder.No findings

    Why it is in this group

    • The name "stop_domain_verification" says "stop": a word for a change.
    Description, as the server wrote it
    Tear down an active domain-verification window: restore MX (snapshot or supplied real_mx_target), remove the per-domain forwarder. Stops the receiver if no other windows remain.
  • stop_idle_watchStop IMAP IDLE watching on an account (or all accounts)No findings

    Why it is in this group

    • The name "stop_idle_watch" says "stop": a word for a change.
    Description, as the server wrote it
    Stop IMAP IDLE watching on an account (or all accounts)
  • stop_smtp_receiverStop the SMTP forward receiver serverNo findings

    Why it is in this group

    • The name "stop_smtp_receiver" says "stop": a word for a change.
    Description, as the server wrote it
    Stop the SMTP forward receiver server
  • test_email_configTest email configuration by sending a test emailNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Test email configuration by sending a test email
  • update_email_ruleUpdate an existing email rule (enable/disable, change match/actions/priority)No findings

    Why it is in this group

    • The name "update_email_rule" says "update": a word for a change.
    Description, as the server wrote it
    Update an existing email rule (enable/disable, change match/actions/priority)
  • verify_autonomous_setupVerify that autonomous email is properly configured: DNS records, DKIM, SMTP send/receiveNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Verify that autonomous email is properly configured: DNS records, DKIM, SMTP send/receive
  • verify_email_setupVerify IP whitelisting and email provider configurationNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Verify IP whitelisting and email provider configuration
Only reads 24Claude Code: allow
  • check_ip_statusCheck the status of a pending WireGuard IP provisioning requestNo findings

    Why it is in this group

    • The name "check_ip_status" says "status": a word for reading.
    Description, as the server wrote it
    Check the status of a pending WireGuard IP provisioning request
  • get_conversation_contextGet full conversation context for a specific threadNo findings

    Why it is in this group

    • The name "get_conversation_context" says "get": a word for reading.
    Description, as the server wrote it
    Get full conversation context for a specific thread
  • get_conversation_threadsGet conversation threads with forwarded emailsNo findings

    Why it is in this group

    • The name "get_conversation_threads" says "get": a word for reading.
    Description, as the server wrote it
    Get conversation threads with forwarded emails
  • get_domain_dns_recordsGet the DNS records a customer needs to add for a sending domainNo findings

    Why it is in this group

    • The name "get_domain_dns_records" says "get": a word for reading.
    Description, as the server wrote it
    Get the DNS records a customer needs to add for a sending domain
  • get_domain_verification_emailsList mails received in the verification window for a given domain (e.g.No findings

    Why it is in this group

    • The name "get_domain_verification_emails" says "get": a word for reading.
    Description, as the server wrote it
    List mails received in the verification window for a given domain (e.g. to find Apple's verification code without checking the forward_to mailbox).
  • get_domain_verification_statusShow active verification windows, the receiver state, and TTLs.No findings

    Why it is in this group

    • The name "get_domain_verification_status" says "get": a word for reading.
    Description, as the server wrote it
    Show active verification windows, the receiver state, and TTLs.
  • get_email_usageGet email usage statistics — delivery rate, bounce rate, per-domain breakdown, top bounce reasons.No findings

    Why it is in this group

    • The name "get_email_usage" says "get": a word for reading.
    Description, as the server wrote it
    Get email usage statistics — delivery rate, bounce rate, per-domain breakdown, top bounce reasons. Reads from persistent stats.
  • get_forwarded_emailsRetrieve forwarded emails with optional filteringNo findings

    Why it is in this group

    • The name "get_forwarded_emails" says "get": a word for reading.
    Description, as the server wrote it
    Retrieve forwarded emails with optional filtering
  • get_health_statusGet current health status of the email server — tunnel, SMTP, DNS, IP blocklist checksNo findings

    Why it is in this group

    • The name "get_health_status" says "get": a word for reading.
    Description, as the server wrote it
    Get current health status of the email server — tunnel, SMTP, DNS, IP blocklist checks
  • get_idle_statusGet status of IMAP IDLE watchers — which accounts are being watched, connection status, new email countsNo findings

    Why it is in this group

    • The name "get_idle_status" says "get": a word for reading.
    Description, as the server wrote it
    Get status of IMAP IDLE watchers — which accounts are being watched, connection status, new email counts
  • get_mailbox_statusGet status information for an email mailbox.2 findings

    Why it is in this group

    • The name "get_mailbox_status" says "get": a word for reading.

    Findings

    • High

      The description refers to ".env".

      Matched text

      description: "...email mailbox. If IMAP is configured in .env, no credentials needed. Use "account" t..."

      What this check looks for
    • Info

      The description mentions "credentials".

      Matched text

      description: "...lbox. If IMAP is configured in .env, no credentials needed. Use "account" to pick a named a..."

      What this check looks for
    Description, as the server wrote it
    Get status information for an email mailbox. If IMAP is configured in .env, no credentials needed. Use "account" to pick a named account.
  • get_smtp_receiver_statusGet the current status of the SMTP forward receiverNo findings

    Why it is in this group

    • The name "get_smtp_receiver_status" says "get": a word for reading.
    Description, as the server wrote it
    Get the current status of the SMTP forward receiver
  • get_suppression_listView all addresses on the bounce suppression list — these addresses will be rejected on sendNo findings

    Why it is in this group

    • The name "get_suppression_list" says "get": a word for reading.
    Description, as the server wrote it
    View all addresses on the bounce suppression list — these addresses will be rejected on send
  • get_threads_for_senderGet all conversation threads involving a specific senderNo findings

    Why it is in this group

    • The name "get_threads_for_sender" says "get": a word for reading.
    Description, as the server wrote it
    Get all conversation threads involving a specific sender
  • list_cloud_providersList supported cloud providers with pricing, regions, and PTR support infoNo findings

    Why it is in this group

    • The name "list_cloud_providers" says "list": a word for reading.
    Description, as the server wrote it
    List supported cloud providers with pricing, regions, and PTR support info
  • list_email_accountsList all configured IMAP email accounts.No findings

    Why it is in this group

    • The name "list_email_accounts" says "list": a word for reading.
    Description, as the server wrote it
    List all configured IMAP email accounts. Shows default and named accounts (work, personal, etc.).
  • list_email_accounts_managedList all email accounts with SMTP credentials (optionally filtered by domain)1 finding

    Why it is in this group

    • The name "list_email_accounts_managed" says "list": a word for reading.

    Findings

    • Info

      The description mentions "credentials".

      Matched text

      description: "List all email accounts with SMTP credentials (optionally filtered by domain)"

      What this check looks for
    Description, as the server wrote it
    List all email accounts with SMTP credentials (optionally filtered by domain)
  • list_email_rulesList all email rules with their match conditions, actions, and hit countsNo findings

    Why it is in this group

    • The name "list_email_rules" says "list": a word for reading.
    Description, as the server wrote it
    List all email rules with their match conditions, actions, and hit counts
  • list_local_mailboxesList all local mailboxes on this server (autonomous mode)No findings

    Why it is in this group

    • The name "list_local_mailboxes" says "list": a word for reading.
    Description, as the server wrote it
    List all local mailboxes on this server (autonomous mode)
  • list_mailboxesList all available mailboxes for an email account.2 findings

    Why it is in this group

    • The name "list_mailboxes" says "list": a word for reading.

    Findings

    • High

      The description refers to ".env".

      Matched text

      description: "...email account. If IMAP is configured in .env, no credentials needed. Use "account" t..."

      What this check looks for
    • Info

      The description mentions "credentials".

      Matched text

      description: "...ount. If IMAP is configured in .env, no credentials needed. Use "account" to pick a named a..."

      What this check looks for
    Description, as the server wrote it
    List all available mailboxes for an email account. If IMAP is configured in .env, no credentials needed. Use "account" to pick a named account.
  • list_sending_domainsList all configured sending domains with their verification statusNo findings

    Why it is in this group

    • The name "list_sending_domains" says "list": a word for reading.
    Description, as the server wrote it
    List all configured sending domains with their verification status
  • provision_statusShow current provisioning state — which phases are complete, what to do nextNo findings

    Why it is in this group

    • The name "provision_status" says "status": a word for reading.
    Description, as the server wrote it
    Show current provisioning state — which phases are complete, what to do next
  • read_inboxRead emails from an inbox via IMAP with filtering options.3 findings

    Why it is in this group

    • The name "read_inbox" says "read": a word for reading.

    Findings

    • High

      The description refers to ".env".

      Matched text

      description: "...ering options. If IMAP is configured in .env, no credentials needed. Use "account" t..."

      What this check looks for
    • Info

      The description mentions "credentials".

      Matched text

      description: "...ions. If IMAP is configured in .env, no credentials needed. Use "account" to pick a named a..."

      What this check looks for
    • High

      The input schema at properties.imap_config.description refers to ".env".

      Matched text

      inputSchema.properties.imap_config.description: "Optional if IMAP is configured in .env (IMAP_HOST, IMAP_EMAIL, IMAP_PASSWORD)"

      What this check looks for
    Description, as the server wrote it
    Read emails from an inbox via IMAP with filtering options. If IMAP is configured in .env, no credentials needed. Use "account" to pick a named account (work, personal, etc.).
  • validate_emailValidate email addresses and check deliverabilityNo findings

    Why it is in this group

    • The name "validate_email" says "validate": a word for reading.
    Description, as the server wrote it
    Validate email addresses and check deliverability

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.1. Values in angle brackets are yours to fill in.

claude mcp add --transport http emailmcp https://mcp.setip.io/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__emailmcp__validate_email",
      "mcp__emailmcp__get_email_usage",
      "mcp__emailmcp__list_email_accounts",
      "mcp__emailmcp__read_inbox",
      "mcp__emailmcp__get_mailbox_status",
      "mcp__emailmcp__list_mailboxes",
      "mcp__emailmcp__get_smtp_receiver_status",
      "mcp__emailmcp__get_forwarded_emails",
      "mcp__emailmcp__get_conversation_threads",
      "mcp__emailmcp__get_conversation_context",
      "mcp__emailmcp__get_threads_for_sender",
      "mcp__emailmcp__list_local_mailboxes",
      "mcp__emailmcp__check_ip_status",
      "mcp__emailmcp__list_email_rules",
      "mcp__emailmcp__get_idle_status",
      "mcp__emailmcp__provision_status",
      "mcp__emailmcp__list_cloud_providers",
      "mcp__emailmcp__get_health_status",
      "mcp__emailmcp__list_sending_domains",
      "mcp__emailmcp__get_domain_dns_records",
      "mcp__emailmcp__list_email_accounts_managed",
      "mcp__emailmcp__get_domain_verification_status",
      "mcp__emailmcp__get_domain_verification_emails",
      "mcp__emailmcp__get_suppression_list"
    ],
    "ask": [
      "mcp__emailmcp__send_email",
      "mcp__emailmcp__send_template_email",
      "mcp__emailmcp__verify_email_setup",
      "mcp__emailmcp__start_smtp_receiver",
      "mcp__emailmcp__stop_smtp_receiver",
      "mcp__emailmcp__check_email_config",
      "mcp__emailmcp__configure_mailgun",
      "mcp__emailmcp__test_email_config",
      "mcp__emailmcp__create_mailbox",
      "mcp__emailmcp__request_email_ip",
      "mcp__emailmcp__get_dns_records",
      "mcp__emailmcp__verify_autonomous_setup",
      "mcp__emailmcp__setup_autonomous_security",
      "mcp__emailmcp__create_email_rule",
      "mcp__emailmcp__update_email_rule",
      "mcp__emailmcp__start_idle_watch",
      "mcp__emailmcp__stop_idle_watch",
      "mcp__emailmcp__provision_start",
      "mcp__emailmcp__provision_resume",
      "mcp__emailmcp__start_health_monitor",
      "mcp__emailmcp__add_sending_domain",
      "mcp__emailmcp__regenerate_zone_file",
      "mcp__emailmcp__create_email_account",
      "mcp__emailmcp__reset_account_password",
      "mcp__emailmcp__start_domain_verification",
      "mcp__emailmcp__stop_domain_verification",
      "mcp__emailmcp__set_personal_email_credentials"
    ],
    "deny": [
      "mcp__emailmcp__delete_mailbox",
      "mcp__emailmcp__delete_email_rule",
      "mcp__emailmcp__remove_sending_domain",
      "mcp__emailmcp__delete_email_account",
      "mcp__emailmcp__remove_from_suppression"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as emailmcp. Review it before you use it.