Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

EmailMCP

REMOTE · MCP.SETIP.IO · SCANNED AUG 3

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

Available components

+9 this week 79 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →

Endpoint Security89
Transport & Reachability100
Schema Quality & AI Usability71
  • AI-judged instruction clarity (good).Pass
  • Tool/resource definitions use about 3724 tokens (~66/item across 56 items; 56 tools + 0 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage99
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 97% of tool parameters carry a description.Partial
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

remote · mcp.setip.io

# add to Claude Code
claude mcp add --transport http io-setip-emailmcp https://mcp.setip.io/mcp
# ~/.codex/config.toml
[mcp_servers.io-setip-emailmcp]
url = "https://mcp.setip.io/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "io-setip-emailmcp": {
      "type": "remote",
      "url": "https://mcp.setip.io/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add io-setip-emailmcp --url https://mcp.setip.io/mcp --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  io-setip-emailmcp:
    url: "https://mcp.setip.io/mcp"
// mcp.json
{
  "mcpServers": {
    "io-setip-emailmcp": {
      "type": "http",
      "url": "https://mcp.setip.io/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 3 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

  • 1 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

  • 31 Jul 26 +5
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 29 Jul 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

  • 28 Jul 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

  • 27 Jul 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 26 Jul 26 70

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Probed https://mcp.setip.io/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_256_GCM_SHA384 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=setip.io CN=YR1,O=Let's Encrypt,C=US 9 Jul 2026 7 Oct 2026 RSA 2048 SHA256-RSA 5db34c4ac6c2e9adc995d07ffbfdfc4c304
SANs: *.setip.io, setip.io
CN=YR1,O=Let's Encrypt,C=US (CA) CN=Root YR,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 RSA 2048 SHA256-RSA a20253f15f2691c05dc1ce13b9bcca4e
CN=Root YR,O=ISRG,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 RSA 4096 SHA256-RSA f24b6d17f9d9ad7cb1c9fea78782699f
DNSSEC insecure

Validation of mcp.setip.io. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
io. present 57355 8 Verified
setip.io. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Challenged, unverified

The endpoint asked for a token, but we could not retrieve and validate the RFC 9728 metadata that tells a client how to obtain one.

Result Challenged, unverified
Enforced On tool calls
HTTP status 200

WWW-Authenticate challenge Bearer realm="EmailMCP MCP", error="invalid_token", error_description="Set EMAILMCP_MCP_TOKEN and configure Codex with --bearer-token-env-var EMAILMCP_MCP_TOKEN"

Bearer realm="EmailMCP MCP", error="invalid_token", error_description="Set EMAILMCP_MCP_TOKEN and configure Codex with --bearer-token-env-var EMAILMCP_MCP_TOKEN"
Header Value
strict-transport-security max-age=31536000; includeSubDomains
content-security-policy default-src 'self';script-src 'self' 'unsafe-inline';style-src 'self' 'unsafe-inline';img-src 'self' data: https:;base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';object-src 'none';script-src-attr 'none';upgrade-insecure-requests
x-content-type-options nosniff
x-frame-options SAMEORIGIN
referrer-policy no-referrer

Protected resource metadata

Retrieved No
Problem no_resource_metadata
Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcp.setip.io/mcp Verified 200
http (plaintext) http://mcp.setip.io/mcp HTTPS enforced 301 https://mcp.setip.io/mcp
MCP tools — 56 exposed · ~3,702 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
add_sending_domain ~59

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.

NameTypeReqDescription
domainstringyesCustomer domain (e.g. company.com)

No output schema declared.

No examples provided.

check_email_config ~21

Check if email providers are configured, guide setup if needed

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

check_ip_status ~41

Check the status of a pending WireGuard IP provisioning request

NameTypeReqDescription
request_idstringRequest ID from request_email_ip (omit to check saved request)

No output schema declared.

No examples provided.

configure_mailgun ~78

Configure Mailgun email provider with step-by-step guidance

NameTypeReqDescription
api_keystringyesMailgun API Key (starts with "key-")
domainstringyesMailgun domain (e.g., mg.yourdomain.com)
from_emailstringyesFrom email address (e.g., [email protected])

No output schema declared.

No examples provided.

create_email_account ~82

Create an email account with SMTP credentials. Returns SMTP password once — save it. The account can then send/receive via this server.

NameTypeReqDescription
addressstringyesEmail address (e.g. [email protected])
display_namestringDisplay name for the account
domainstringSending domain (auto-derived from address if omitted)

No output schema declared.

No examples provided.

create_email_rule ~147

Create a rule that triggers actions when incoming emails match conditions. Actions: forward, auto_reply, webhook, flag, move, mcp_tool, log, reject.

NameTypeReqDescription
actionsarrayyesActions to execute when rule matches
descriptionstringWhat this rule does
matchobjectyesMatch conditions (ALL must match). Use from, domain, subject, subject_regex, body_contains, has_attachments, to, header.
namestringyesRule name (unique)
prioritynumberPriority (lower = evaluated first, default 100)
stopbooleanStop processing further rules after this one matches (default: false)

No output schema declared.

No examples provided.

create_mailbox ~66

Create a new local mailbox for receiving email (autonomous mode). Each address gets its own inbox accessible via MCP tools.

NameTypeReqDescription
addressstringyesEmail address for the mailbox (e.g. [email protected])
display_namestringDisplay name for the mailbox

No output schema declared.

No examples provided.

delete_email_account ~33

Delete an email account and revoke its SMTP credentials

NameTypeReqDescription
addressstringyesEmail address of the account to delete

No output schema declared.

No examples provided.

delete_email_rule ~28

Delete an email rule by ID

NameTypeReqDescription
rule_idstringyesRule ID to delete

No output schema declared.

No examples provided.

delete_mailbox ~37

Delete a local mailbox and all its stored emails (autonomous mode)

NameTypeReqDescription
addressstringyesEmail address of the mailbox to delete

No output schema declared.

No examples provided.

get_conversation_context ~49

Get full conversation context for a specific thread

NameTypeReqDescription
maxEmailsnumberMaximum number of emails to include in context
threadIdstringyesThread ID to get conversation for

No output schema declared.

No examples provided.

get_conversation_threads ~71

Get conversation threads with forwarded emails

NameTypeReqDescription
limitnumberMaximum number of threads to return
participantstringFilter threads by participant email address
sincestringFilter threads active since this date (ISO string)
subjectstringFilter threads by subject content

No output schema declared.

No examples provided.

get_dns_records ~125

Generate all required DNS records (A, MX, SPF, DKIM, DMARC) for autonomous email. Outputs copyable records for your DNS provider.

NameTypeReqDescription
dkim_selectorstringDKIM selector (default: emailmcp)
dmarc_policystringDMARC policy (default: reject)
domainstringyesYour email domain (e.g. company.com)
ipv4stringyesYour dedicated IPv4 address (from WireGuard provisioning)
mail_hostnamestringMail server hostname (default: mail.domain)

No output schema declared.

No examples provided.

get_domain_dns_records ~33

Get the DNS records a customer needs to add for a sending domain

NameTypeReqDescription
domainstringyesCustomer domain

No output schema declared.

No examples provided.

get_domain_verification_emails ~50

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

NameTypeReqDescription
domainstringyesDomain to filter on

No output schema declared.

No examples provided.

get_domain_verification_status ~24

Show active verification windows, the receiver state, and TTLs.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_email_usage ~68

Get email usage statistics — delivery rate, bounce rate, per-domain breakdown, top bounce reasons. Reads from persistent stats.

NameTypeReqDescription
accountstringFilter stats by account address
domainstringFilter stats by domain
periodstringTime period for usage statistics

No output schema declared.

No examples provided.

get_forwarded_emails ~73

Retrieve forwarded emails with optional filtering

NameTypeReqDescription
limitnumberMaximum number of emails to return
originalSenderstringFilter by original sender email address
sincestringFilter emails since this date (ISO string)
threadIdstringFilter by conversation thread ID

No output schema declared.

No examples provided.

get_health_status ~29

Get current health status of the email server — tunnel, SMTP, DNS, IP blocklist checks

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_idle_status ~31

Get status of IMAP IDLE watchers — which accounts are being watched, connection status, new email counts

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_mailbox_status ~84

Get status information for an email mailbox. If IMAP is configured in .env, no credentials needed. Use "account" to pick a named account.

NameTypeReqDescription
accountstringNamed account (e.g. "work", "personal"). Omit for default.
imap_configobject
mailboxstringMailbox to check

No output schema declared.

No examples provided.

get_smtp_receiver_status ~21

Get the current status of the SMTP forward receiver

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_suppression_list ~28

View all addresses on the bounce suppression list — these addresses will be rejected on send

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_threads_for_sender ~32

Get all conversation threads involving a specific sender

NameTypeReqDescription
senderAddressstringyesEmail address of the sender

No output schema declared.

No examples provided.

list_cloud_providers ~24

List supported cloud providers with pricing, regions, and PTR support info

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_email_accounts ~29

List all configured IMAP email accounts. Shows default and named accounts (work, personal, etc.).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_email_accounts_managed ~35

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

NameTypeReqDescription
domainstringFilter by domain

No output schema declared.

No examples provided.

list_email_rules ~24

List all email rules with their match conditions, actions, and hit counts

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_local_mailboxes ~23

List all local mailboxes on this server (autonomous mode)

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_mailboxes ~74

List all available mailboxes for an email account. If IMAP is configured in .env, no credentials needed. Use "account" to pick a named account.

NameTypeReqDescription
accountstringNamed account (e.g. "work", "personal"). Omit for default.
imap_configobject

No output schema declared.

No examples provided.

list_sending_domains ~20

List all configured sending domains with their verification status

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

provision_resume ~50

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

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

provision_start ~129

Phase 1: Create a cloud VPS with dedicated IP. Generates WireGuard config. Returns the IP and instructions to connect. Supports DigitalOcean, Vultr, Hetzner, OVH.

NameTypeReqDescription
cloud_api_keystringyesCloud provider API key
cloud_providerstringyesCloud provider
regionstringCloud region (e.g. nyc1, ewr, nbg1, GRA11). Omit for default.
service_domainstringyesDomain you own for the email service (e.g. emailrelay.xyz). NS will point here.

No output schema declared.

No examples provided.

provision_status ~23

Show current provisioning state — which phases are complete, what to do next

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

read_inbox ~121

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

NameTypeReqDescription
accountstringNamed account to read from (e.g. "work", "personal"). Omit for default account.
filterobject
imap_configobjectOptional if IMAP is configured in .env (IMAP_HOST, IMAP_EMAIL, IMAP_PASSWORD)
optionsobject

No output schema declared.

No examples provided.

regenerate_zone_file ~33

Regenerate the complete DNS zone file for the service domain including all customer subdomains. Use after adding/removing domains.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

remove_from_suppression ~38

Remove an address from the bounce suppression list (manual override to allow sending again)

NameTypeReqDescription
addressstringyesEmail address to unblock

No output schema declared.

No examples provided.

remove_sending_domain ~31

Remove a sending domain and its DKIM keys

NameTypeReqDescription
domainstringyesCustomer domain to remove

No output schema declared.

No examples provided.

request_email_ip ~54

Request a dedicated WireGuard IP for email sending. Submits to the provisioning queue.

NameTypeReqDescription
account_idstringOptional account identifier
email_domainstringyesYour email domain (e.g. company.com)

No output schema declared.

No examples provided.

reset_account_password ~35

Reset the SMTP password for an email account. Returns new password once.

NameTypeReqDescription
addressstringyesEmail address of the account

No output schema declared.

No examples provided.

send_email ~294

Send an email with text or HTML content

NameTypeReqDescription
attachmentsarrayArray of file attachments
bccarrayArray of BCC recipient email addresses
bulk_modestringRequired when sending to multiple recipients. "individual": sends a separate email to each recipient (safest). "bcc": puts first recipient in TO:, rest in BCC. "to": puts all in TO: (exposes addresse…
ccarrayArray of CC recipient email addresses
fromstringPersonal account address to send from. If set and matching account has personal SMTP/IMAP credentials (via set_personal_email_credentials), sends via that account and IMAP-APPENDs a copy to its Sent…
htmlstringHTML content of the email
providerstringSend via a specific provider instead of the default (e.g. smtp, mailgun, sendgrid, ses, gmail, resend). Requires that provider's credentials in env.
subjectstringyesEmail subject line
textstringyesPlain text content of the email
toarrayyesArray of recipient email addresses

No output schema declared.

No examples provided.

send_template_email ~159

Send an email using a predefined template

NameTypeReqDescription
bulk_modestringRequired when sending to multiple recipients. "individual": sends a separate email to each recipient (safest). "bcc": puts first recipient in TO:, rest in BCC. "to": puts all in TO: (exposes addresse…
providerstringSend via a specific provider instead of the default (e.g. smtp, mailgun, sendgrid, ses, gmail, resend)
subjectstringEmail subject (can override template subject)
templatestringyesTemplate name or path
toarrayyesArray of recipient email addresses
variablesobjectTemplate variables to replace

No output schema declared.

No examples provided.

set_personal_email_credentials ~274

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.

NameTypeReqDescription
addressstringyesAddress of the existing account (must already be created via create_email_account)
imap_hoststringyese.g. imap.mail.me.com, imap.gmail.com, imap.fastmail.com
imap_passwordstringyesIMAP password (often same as SMTP)
imap_portnumberDefault 993
imap_userstringyesIMAP username — usually the full email address
sent_folderstringOverride Sent folder name. Auto-discovered via SPECIAL-USE if omitted.
smtp_hoststringyese.g. smtp.mail.me.com (iCloud), smtp.gmail.com, smtp.fastmail.com
smtp_passwordstringyesSMTP password or app-specific password
smtp_portnumberDefault 587
smtp_userstringyesSMTP username — usually the full email address

No output schema declared.

No examples provided.

setup_autonomous_security ~97

Auto-configure DKIM, SPF, and DMARC for autonomous email. Generates DKIM keys, creates DNS records, and outputs everything needed.

NameTypeReqDescription
dkim_selectorstringDKIM selector (default: emailmcp)
dmarc_policystringDMARC policy (default: reject)
domainstringyesYour email domain
ipv4stringyesYour dedicated IPv4 address

No output schema declared.

No examples provided.

start_domain_verification ~183

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.

NameTypeReqDescription
domainstringyesDomain whose MX is being temporarily redirected (must be a POC we own in setipio-api)
forward_tostringyesAddress where verification mails are relayed in real time
real_mx_targetstringOptional. If provided, on teardown the MX is set to this target (e.g. apple.com) instead of restoring the pre-window snapshot.
ttl_minutesnumberAuto-teardown after this many minutes (default 60)

No output schema declared.

No examples provided.

start_health_monitor ~38

Start monitoring the provisioned email server — checks tunnel, SMTP, DNS, and IP reputation every 60 seconds. Auto-restarts on failure.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

start_idle_watch ~69

Start real-time IMAP IDLE watching on email accounts. Get push notifications when new emails arrive. Works with Gmail, iCloud, Office365, etc.

NameTypeReqDescription
accountstringAccount name to watch (e.g. "work", "personal"). Omit to watch all configured accounts.

No output schema declared.

No examples provided.

start_smtp_receiver ~87

Start the SMTP server to receive forwarded corporate emails

NameTypeReqDescription
allowedForwardersarrayIP addresses allowed to forward emails (empty = allow all)
enableThreadingbooleanEnable conversation threading
portnumberPort to listen on (default: 2525)
receivingDomainsarrayDomains to accept emails for (empty = accept all)

No output schema declared.

No examples provided.

stop_domain_verification ~82

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.

NameTypeReqDescription
domainstringyesDomain to tear down
real_mx_targetstringOptional final MX target (e.g. apple.com). Overrides the snapshot restore.

No output schema declared.

No examples provided.

stop_idle_watch ~40

Stop IMAP IDLE watching on an account (or all accounts)

NameTypeReqDescription
accountstringAccount to stop watching. Omit to stop all.

No output schema declared.

No examples provided.