EmailMCP
Server Details
AI agent email — 23 tools free to read inbox, 28 paid to send. $9.99/mo. Token auto-provisioned.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- nfodor/emailmcp
- GitHub Stars
- 0
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 3.6/5 across 56 of 56 tools scored. Lowest: 2.4/5.
Many tools have distinct purposes, but there are potential overlaps between similar-sounding tools like check_email_config, test_email_config, verify_email_setup, and verify_autonomous_setup, as well as multiple list_* tools. Descriptions help clarify, but with 56 tools, disambiguation is challenging.
Tool names consistently use snake_case and follow a verb_noun pattern (e.g., create_email_account, send_email). Minor deviations like get_dns_records vs get_domain_dns_records and some phrase-like names (start_domain_verification) are present but do not significantly break consistency.
56 tools is very high for an MCP server. The tool set includes both core email operations and an extensive provisioning subsystem (provision_start, start_health_monitor, etc.), which expands the scope beyond a focused email assistant. This large count undermines coherence and simplicity.
The tool set covers a broad range of email tasks: account management, rule handling, domain verification, provisioning, and monitoring. However, notable gaps exist, such as the absence of email search and attachment handling, which are common in email workflows.
Available Tools
56 toolsadd_sending_domainInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Customer domain (e.g. company.com) |
check_email_configInspect
Check if email providers are configured, guide setup if needed
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
check_ip_statusInspect
Check the status of a pending WireGuard IP provisioning request
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | Request ID from request_email_ip (omit to check saved request) |
configure_mailgunInspect
Configure Mailgun email provider with step-by-step guidance
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Mailgun domain (e.g., mg.yourdomain.com) | |
| api_key | Yes | Mailgun API Key (starts with "key-") | |
| from_email | Yes | From email address (e.g., noreply@yourdomain.com) |
create_email_accountInspect
Create an email account with SMTP credentials. Returns SMTP password once — save it. The account can then send/receive via this server.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No | Sending domain (auto-derived from address if omitted) | |
| address | Yes | Email address (e.g. sales@company.com) | |
| display_name | No | Display name for the account |
create_email_ruleInspect
Create a rule that triggers actions when incoming emails match conditions. Actions: forward, auto_reply, webhook, flag, move, mcp_tool, log, reject.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Rule name (unique) | |
| stop | No | Stop processing further rules after this one matches (default: false) | |
| match | Yes | Match conditions (ALL must match). Use from, domain, subject, subject_regex, body_contains, has_attachments, to, header. | |
| actions | Yes | Actions to execute when rule matches | |
| priority | No | Priority (lower = evaluated first, default 100) | |
| description | No | What this rule does |
create_mailboxInspect
Create a new local mailbox for receiving email (autonomous mode). Each address gets its own inbox accessible via MCP tools.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Email address for the mailbox (e.g. sales@company.com) | |
| display_name | No | Display name for the mailbox |
delete_email_accountInspect
Delete an email account and revoke its SMTP credentials
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Email address of the account to delete |
delete_email_ruleInspect
Delete an email rule by ID
| Name | Required | Description | Default |
|---|---|---|---|
| rule_id | Yes | Rule ID to delete |
delete_mailboxInspect
Delete a local mailbox and all its stored emails (autonomous mode)
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Email address of the mailbox to delete |
get_conversation_contextInspect
Get full conversation context for a specific thread
| Name | Required | Description | Default |
|---|---|---|---|
| threadId | Yes | Thread ID to get conversation for | |
| maxEmails | No | Maximum number of emails to include in context |
get_conversation_threadsInspect
Get conversation threads with forwarded emails
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of threads to return | |
| since | No | Filter threads active since this date (ISO string) | |
| subject | No | Filter threads by subject content | |
| participant | No | Filter threads by participant email address |
get_dns_recordsInspect
Generate all required DNS records (A, MX, SPF, DKIM, DMARC) for autonomous email. Outputs copyable records for your DNS provider.
| Name | Required | Description | Default |
|---|---|---|---|
| ipv4 | Yes | Your dedicated IPv4 address (from WireGuard provisioning) | |
| domain | Yes | Your email domain (e.g. company.com) | |
| dmarc_policy | No | DMARC policy (default: reject) | |
| dkim_selector | No | DKIM selector (default: emailmcp) | |
| mail_hostname | No | Mail server hostname (default: mail.domain) |
get_domain_dns_recordsInspect
Get the DNS records a customer needs to add for a sending domain
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Customer domain |
get_domain_verification_emailsInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain to filter on |
get_domain_verification_statusInspect
Show active verification windows, the receiver state, and TTLs.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
get_email_usageInspect
Get email usage statistics — delivery rate, bounce rate, per-domain breakdown, top bounce reasons. Reads from persistent stats.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No | Filter stats by domain | |
| period | No | Time period for usage statistics | day |
| account | No | Filter stats by account address |
get_forwarded_emailsInspect
Retrieve forwarded emails with optional filtering
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of emails to return | |
| since | No | Filter emails since this date (ISO string) | |
| threadId | No | Filter by conversation thread ID | |
| originalSender | No | Filter by original sender email address |
get_health_statusInspect
Get current health status of the email server — tunnel, SMTP, DNS, IP blocklist checks
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
get_idle_statusInspect
Get status of IMAP IDLE watchers — which accounts are being watched, connection status, new email counts
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
get_mailbox_statusInspect
Get status information for an email mailbox. If IMAP is configured in .env, no credentials needed. Use "account" to pick a named account.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Named account (e.g. "work", "personal"). Omit for default. | |
| mailbox | No | Mailbox to check | INBOX |
| imap_config | No |
get_smtp_receiver_statusInspect
Get the current status of the SMTP forward receiver
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
get_suppression_listInspect
View all addresses on the bounce suppression list — these addresses will be rejected on send
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
get_threads_for_senderInspect
Get all conversation threads involving a specific sender
| Name | Required | Description | Default |
|---|---|---|---|
| senderAddress | Yes | Email address of the sender |
list_cloud_providersInspect
List supported cloud providers with pricing, regions, and PTR support info
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
list_email_accountsInspect
List all configured IMAP email accounts. Shows default and named accounts (work, personal, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
list_email_accounts_managedInspect
List all email accounts with SMTP credentials (optionally filtered by domain)
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No | Filter by domain |
list_email_rulesInspect
List all email rules with their match conditions, actions, and hit counts
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
list_local_mailboxesInspect
List all local mailboxes on this server (autonomous mode)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
list_mailboxesInspect
List all available mailboxes for an email account. If IMAP is configured in .env, no credentials needed. Use "account" to pick a named account.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Named account (e.g. "work", "personal"). Omit for default. | |
| imap_config | No |
list_sending_domainsInspect
List all configured sending domains with their verification status
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
provision_resumeInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
provision_startInspect
Phase 1: Create a cloud VPS with dedicated IP. Generates WireGuard config. Returns the IP and instructions to connect. Supports DigitalOcean, Vultr, Hetzner, OVH.
| Name | Required | Description | Default |
|---|---|---|---|
| region | No | Cloud region (e.g. nyc1, ewr, nbg1, GRA11). Omit for default. | |
| cloud_api_key | Yes | Cloud provider API key | |
| cloud_provider | Yes | Cloud provider | |
| service_domain | Yes | Domain you own for the email service (e.g. emailrelay.xyz). NS will point here. |
provision_statusInspect
Show current provisioning state — which phases are complete, what to do next
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
read_inboxInspect
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.).
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | ||
| account | No | Named account to read from (e.g. "work", "personal"). Omit for default account. | |
| options | No | ||
| imap_config | No | Optional if IMAP is configured in .env (IMAP_HOST, IMAP_EMAIL, IMAP_PASSWORD) |
regenerate_zone_fileInspect
Regenerate the complete DNS zone file for the service domain including all customer subdomains. Use after adding/removing domains.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
remove_from_suppressionInspect
Remove an address from the bounce suppression list (manual override to allow sending again)
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Email address to unblock |
remove_sending_domainInspect
Remove a sending domain and its DKIM keys
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Customer domain to remove |
request_email_ipInspect
Request a dedicated WireGuard IP for email sending. Submits to the provisioning queue.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | No | Optional account identifier | |
| email_domain | Yes | Your email domain (e.g. company.com) |
reset_account_passwordInspect
Reset the SMTP password for an email account. Returns new password once.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Email address of the account |
send_emailInspect
Send an email with text or HTML content
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | Array of CC recipient email addresses | |
| to | Yes | Array of recipient email addresses | |
| bcc | No | Array of BCC recipient email addresses | |
| from | No | Personal 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 folder. If exactly one personal account exists and from is omitted, it is used. If multiple personal accounts exist and from is omitted, the call errors and lists choices. | |
| html | No | HTML content of the email | |
| text | Yes | Plain text content of the email | |
| subject | Yes | Email subject line | |
| provider | No | Send via a specific provider instead of the default (e.g. smtp, mailgun, sendgrid, ses, gmail, resend). Requires that provider's credentials in env. | |
| bulk_mode | No | Required 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 addresses — use only when intended, e.g. team threads). | |
| attachments | No | Array of file attachments |
send_template_emailInspect
Send an email using a predefined template
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Array of recipient email addresses | |
| subject | No | Email subject (can override template subject) | |
| provider | No | Send via a specific provider instead of the default (e.g. smtp, mailgun, sendgrid, ses, gmail, resend) | |
| template | Yes | Template name or path | |
| bulk_mode | No | Required 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 addresses — use only when intended). | |
| variables | No | Template variables to replace |
set_personal_email_credentialsInspect
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= sends via that SMTP and IMAP-APPENDs a copy to its Sent folder. Passwords are AES-256-GCM encrypted at rest with EMAILMCP_SECRET.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Address of the existing account (must already be created via create_email_account) | |
| imap_host | Yes | e.g. imap.mail.me.com, imap.gmail.com, imap.fastmail.com | |
| imap_port | No | Default 993 | |
| imap_user | Yes | IMAP username — usually the full email address | |
| smtp_host | Yes | e.g. smtp.mail.me.com (iCloud), smtp.gmail.com, smtp.fastmail.com | |
| smtp_port | No | Default 587 | |
| smtp_user | Yes | SMTP username — usually the full email address | |
| sent_folder | No | Override Sent folder name. Auto-discovered via SPECIAL-USE if omitted. | |
| imap_password | Yes | IMAP password (often same as SMTP) | |
| smtp_password | Yes | SMTP password or app-specific password |
setup_autonomous_securityInspect
Auto-configure DKIM, SPF, and DMARC for autonomous email. Generates DKIM keys, creates DNS records, and outputs everything needed.
| Name | Required | Description | Default |
|---|---|---|---|
| ipv4 | Yes | Your dedicated IPv4 address | |
| domain | Yes | Your email domain | |
| dmarc_policy | No | DMARC policy (default: reject) | |
| dkim_selector | No | DKIM selector (default: emailmcp) |
start_domain_verificationInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain whose MX is being temporarily redirected (must be a POC we own in setipio-api) | |
| forward_to | Yes | Address where verification mails are relayed in real time | |
| ttl_minutes | No | Auto-teardown after this many minutes (default 60) | |
| real_mx_target | No | Optional. If provided, on teardown the MX is set to this target (e.g. apple.com) instead of restoring the pre-window snapshot. |
start_health_monitorInspect
Start monitoring the provisioned email server — checks tunnel, SMTP, DNS, and IP reputation every 60 seconds. Auto-restarts on failure.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
start_idle_watchInspect
Start real-time IMAP IDLE watching on email accounts. Get push notifications when new emails arrive. Works with Gmail, iCloud, Office365, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account name to watch (e.g. "work", "personal"). Omit to watch all configured accounts. |
start_smtp_receiverInspect
Start the SMTP server to receive forwarded corporate emails
| Name | Required | Description | Default |
|---|---|---|---|
| port | No | Port to listen on (default: 2525) | |
| enableThreading | No | Enable conversation threading | |
| receivingDomains | No | Domains to accept emails for (empty = accept all) | |
| allowedForwarders | No | IP addresses allowed to forward emails (empty = allow all) |
stop_domain_verificationInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain to tear down | |
| real_mx_target | No | Optional final MX target (e.g. apple.com). Overrides the snapshot restore. |
stop_idle_watchInspect
Stop IMAP IDLE watching on an account (or all accounts)
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account to stop watching. Omit to stop all. |
stop_smtp_receiverInspect
Stop the SMTP forward receiver server
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
test_email_configInspect
Test email configuration by sending a test email
| Name | Required | Description | Default |
|---|---|---|---|
| test_email | No | Email address to send test email to (optional, defaults to from_email) |
update_email_ruleInspect
Update an existing email rule (enable/disable, change match/actions/priority)
| Name | Required | Description | Default |
|---|---|---|---|
| stop | No | Stop after match | |
| match | No | New match conditions | |
| actions | No | New actions | |
| enabled | No | Enable or disable the rule | |
| rule_id | Yes | Rule ID to update | |
| priority | No | New priority |
validate_emailInspect
Validate email addresses and check deliverability
| Name | Required | Description | Default |
|---|---|---|---|
| emails | Yes | Array of email addresses to validate | |
| check_mx | No | Check MX records for domain | |
| check_smtp | No | Perform SMTP validation |
verify_autonomous_setupInspect
Verify that autonomous email is properly configured: DNS records, DKIM, SMTP send/receive
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Your email domain to verify |
verify_email_setupInspect
Verify IP whitelisting and email provider configuration
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No | Domain to check for DNS records (required if include_dns is true) | |
| provider | Yes | Email provider to verify, or "all" for all configured providers | |
| test_email | No | Optional test email address to verify delivery | |
| include_dns | No | Include DNS record verification |
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!