EmailConsul MCP Server
EmailConsul offers comprehensive email deliverability solutions, including DMARC monitoring, spam traps detection, seedlisting and inbox placement tests, Google Postmaster Monitoring, SNDS Postmaster Monitoring, IP and Domain Blocklist Monitoring, lookalike detection, and logs monitoring.
- Host
- mcp.emailconsul.com
- Tools
- 119
- Connection URL
- https://mcp.emailconsul.com/
Tools
Get IPs
Get list of all monitored IP addresses with their CURRENT RBL (blocklist/blacklist) status (NOT historical data). Returns snapshot of IPs and their present state. USE THIS when user asks for: - "list of IPs", "show all IPs", "which IPs are monitored" - "is IP X.X.X.X in RBL (blacklisted/blocklisted)?", "check IP X.X.X.X", "which RBLs (blocklists/blacklists) has IP X.X.X.X?" - "which RBLs (blocklists/blacklists) is IP X.X.X.X on?", "show RBL (blocklist/blacklist) status for IP" - Any query where
Add IPs (bulk)
Add one or more IP addresses for monitoring. Starts tracking RBL (blocklist/blacklist) status for the specified IPs. USE THIS when user asks to: - "add IPs for monitoring", "start monitoring IP", "track IP X.X.X.X" - "add multiple IPs", "bulk add IPs" RESPONSE STRUCTURE: { "added": 3, // Number of IPs successfully added "skipped": 1, // Number of IPs that were already being monitored "errors": [] // Array of IPs that failed to add } IMPORTANT: - Pass an array of individual IPv4 addresse
Add IPs by netmask
Add all IP addresses within a CIDR subnet for monitoring in one operation. USE THIS when user asks to: - "add IP range", "monitor entire subnet", "add all IPs in 192.168.1.0/24" - "add IPs from network block", "bulk add by netmask" RESPONSE STRUCTURE: { "added": 254, // Number of IPs successfully added "skipped": 0, // Number of IPs already monitored "errors": [] } IMPORTANT: - Accepts CIDR notation only (e.g., "192.168.1.0/24", "10.0.0.0/8") - To add individual IPs use add_ips_bulk ins
Get IPs aggregated stats
Get CURRENT aggregated summary statistics for IP addresses - returns COUNTS ONLY, not individual IP details. USE THIS when user asks for: - "how many IPs are monitored?", "total number of IPs" - "how many IPs are in RBL (blacklisted/blocklisted)?", "count of RBL (blacklisted/blocklisted) IPs" - "statistics summary", "overview of all IPs" DO NOT USE THIS for: - "which RBLs (blocklists/blacklists) is IP X.X.X.X on?" → Use get_all_ips instead - "show me IP X.X.X.X status" → Use get_all_ips instea
Get IPs available count
Get the number of additional IP addresses that can still be added under the current subscription plan. USE THIS when user asks: - "how many more IPs can I add?", "what is my IP monitoring limit?" - "do I have quota left?", "can I add more IPs?" RESPONSE STRUCTURE: { "available": 50 // Number of IPs that can still be added } IMPORTANT: - Returns remaining capacity, not the total plan limit - If 0, no more IPs can be added until the plan is upgraded or existing IPs are deleted - Check this be
Refresh IP
Force a fresh RBL (blocklist/blacklist) check for a specific IP address. Resets status to WAITING and schedules an immediate recheck against all RBLs. USE THIS when user asks to: - "refresh IP status", "recheck IP X.X.X.X", "force update for IP" - "update RBL (blocklist/blacklist) status for IP", "re-scan IP" WORKFLOW: 1. Call get_all_ips with ip parameter to find the IP's internal "id" field 2. Call refresh_ip with that id IMPORTANT: - Requires the internal ID (from "id" field in get_all_ips
Delete IP by ID
Delete a single monitored IP address by its internal database ID. USE THIS when you already have the internal ID of the IP entry (e.g., from a previous get_all_ips call or from context). IMPORTANT: - Requires the internal ID (MongoDB ObjectId), NOT the IP address string like "1.2.3.4" - If you only have the IP address, use delete_ips with the ip filter instead - This action is irreversible — all monitoring data for this IP is removed
Get IP RBL changes log
Retrieve the RBL status change history for a specific monitored IP address. USE THIS when user asks for: - "history of RBL (blocklist/blacklist) changes for IP X.X.X.X", "when was IP listed/delisted?" - "RBL change log for IP", "RBL (blocklist/blacklist) history", "show status changes for IP" WORKFLOW: 1. Call get_all_ips with ip parameter to find the IP's internal "id" field 2. Call get_ip_rbl_changes_log with that id RESPONSE STRUCTURE: { "data": { "ip": "2.2.2.1", "data": [
Export IPs to CSV
Export monitored IP addresses to CSV format. Returns CSV text content with all matching IPs. USE THIS when user asks to: - "export IPs to CSV", "download IPs list", "get CSV of monitored IPs" - "export RBL (blacklisted/blocklisted) IPs", "export IPs matching filter" RESPONSE: Returns CSV text content that can be saved as a .csv file.
Import IPs from CSV
Import IP addresses for monitoring from CSV content. Each line in the CSV should contain one IPv4 address. USE THIS when user asks to: - "import IPs from CSV", "bulk import IPs via file", "upload IP list" - "add IPs from CSV content" RESPONSE STRUCTURE: { "data": { "added": 10, // Number of IPs successfully added "not_added": 2, // Number of IPs that were not added (already exist or quota exceeded) "not_valid": ["bad-entry"] // List of entries that failed validation } } IMPORT
Delete IPs (bulk)
Delete monitored IP addresses matching the specified filters. Works for both single IP deletion by address and bulk removal. USE THIS when user asks to: - "delete IP 1.2.3.4" — pass the exact IP address in the ip filter - "delete all RBL (blacklisted/blocklisted) IPs", "remove all IPs in subnet X", "clean up monitored IPs" - "bulk delete IPs", "remove IPs matching criteria" USE delete_ip_by_id instead only when you already have the internal database ID. EXAMPLE — delete a specific IP by addre
Get Domains
Get list of all monitored domains with their CURRENT RBL (blocklist/blacklist) status (NOT historical data). Returns snapshot of domains and their present state. USE THIS when user asks for: - "list of domains", "show all domains", "which domains are monitored" - "is domain example.com in RBL (blacklisted/blocklisted)?", "check domain example.com", "which RBLs (blocklists/blacklists) has domain example.com?" - "which RBLs (blocklists/blacklists) is domain example.com on?", "show RBL (blocklist/
Add Domains (bulk)
Add one or more domain names for monitoring. Starts tracking RBL (blocklist/blacklist) status for the specified domains. USE THIS when user asks to: - "add domains for monitoring", "start monitoring domain", "track domain example.com" - "add multiple domains", "bulk add domains" RESPONSE STRUCTURE: { "added": 3, // Number of domains successfully added "skipped": 1, // Number of domains that were already being monitored "errors": [] // Array of domains that failed to add } IMPORTANT: - P
Populate Domains with DKIM selectors
Add multiple domains together with their DKIM selectors for monitoring in one operation. USE THIS when user asks to: - "add domain with DKIM selectors", "monitor domain with DKIM" - "bulk add domains with selectors", "set up domain monitoring with DKIM" RESPONSE STRUCTURE: { "added": 2, // Number of domains successfully added "skipped": 0, // Number of domains already monitored "errors": [] } IMPORTANT: - Use this instead of add_domains_bulk when you also need to associate DKIM selector
Get Domains aggregated stats
Get CURRENT aggregated summary statistics for domains - returns COUNTS ONLY, not individual domain details. USE THIS when user asks for: - "how many domains are monitored?", "total number of domains" - "how many domains are in RBL (blacklisted/blocklisted)?", "count of RBL (blacklisted/blocklisted) domains" - "statistics summary for domains", "overview of all domains" DO NOT USE THIS for: - "which RBLs (blocklists/blacklists) is domain example.com on?" → Use get_all_domains instead - "show me
Get Domains available count
Get the number of additional domains that can still be added under the current subscription plan. USE THIS when user asks: - "how many more domains can I add?", "what is my domain monitoring limit?" - "do I have quota left for domains?", "can I add more domains?" RESPONSE STRUCTURE: { "available": 25 // Number of domains that can still be added } IMPORTANT: - Returns remaining capacity, not the total plan limit - If 0, no more domains can be added until the plan is upgraded or existing do
Refresh Domain
Force a fresh RBL (blocklist/blacklist) check for a specific domain. Resets status to WAITING and schedules an immediate recheck against all RBLs. USE THIS when user asks to: - "refresh domain status", "recheck domain example.com", "force update for domain" - "update RBL (blocklist/blacklist) status for domain", "re-scan domain" WORKFLOW: 1. Call get_all_domains with domain parameter to find the domain's internal "id" field 2. Call refresh_domain with that id IMPORTANT: - Requires the interna
Update Domain
Update the details of a monitored domain, such as its associated DKIM selectors. USE THIS when user asks to: - "update DKIM selectors for domain", "add DKIM selector to domain" - "change domain settings", "modify domain monitoring config" WORKFLOW: 1. Call get_all_domains with domain parameter to find the domain's internal "id" field 2. Call update_domain with that id and the new values IMPORTANT: - Requires the internal ID (from "id" field in get_all_domains response), NOT the domain name st
Delete Domain by ID
Delete a single monitored domain by its internal database ID. USE THIS when you already have the internal ID of the domain entry (e.g., from a previous get_all_domains call or from context). IMPORTANT: - Requires the internal ID (MongoDB ObjectId), NOT the domain name string like "example.com" - If you only have the domain name, use delete_domains with the domain filter instead - This action is irreversible — all monitoring data for this domain is removed
Get Domain by ID
Retrieve a single monitored domain by its internal database ID. USE THIS ONLY when you already have the internal MongoDB ObjectId (e.g., "507f1f77bcf86cd799439011") directly from a previous tool call or from context. DO NOT USE THIS when: - User provides a domain name like "example.com" → use get_all_domains with domain filter instead - You need to search for a domain → use get_all_domains with domain filter instead RESPONSE STRUCTURE: { "data": { "id": "507f1f77bcf86cd799439011", "
Get Domain RBL changes log
Retrieve the RBL status change history for a specific monitored domain. USE THIS when user asks for: - "history of RBL (blocklist/blacklist) changes for domain example.com", "when was domain listed/delisted?" - "RBL change log for domain", "RBL (blocklist/blacklist) history for domain", "show status changes for domain" WORKFLOW: 1. Call get_all_domains with domain parameter to find the domain's internal "id" field 2. Call get_domain_rbl_changes_log with that id RESPONSE STRUCTURE: { "data":
Export Domains to CSV
Export monitored domains to CSV format. Returns CSV text content with all matching domains. USE THIS when user asks to: - "export domains to CSV", "download domains list", "get CSV of monitored domains" - "export RBL (blacklisted/blocklisted) domains", "export domains matching filter" RESPONSE: Returns CSV text content that can be saved as a .csv file.
Import Domains from CSV
Import domain names for monitoring from CSV content. USE THIS when user asks to: - "import domains from CSV", "bulk import domains via file", "upload domain list" - "add domains from CSV content" CSV FORMAT: - Must include a "domain" column with the domain name - Optional "selectors" column with semicolon-separated DKIM selectors (e.g., "default;google") RESPONSE STRUCTURE: { "data": { "added": 10, // Number of domains successfully added "not_added": 2, // Number of domains that wer
Delete Domains (bulk)
Delete monitored domains matching the specified filters. Works for both single domain deletion by name and bulk removal. USE THIS when user asks to: - "delete domain example.com" — pass the exact domain name in the domain filter - "delete all RBL (blacklisted/blocklisted) domains", "remove all domains in profile X", "clean up monitored domains" - "bulk delete domains", "remove domains matching criteria" USE delete_domain_by_id instead only when you already have the internal database ID. EXAMP
Get Alerts
Get list of all configured alert rules with pagination and filtering. USE THIS when user asks for: - "list of alerts", "show all alerts", "my alert rules" - "alert configurations", "notification settings" - "what alerts do I have?" RESPONSE STRUCTURE: { "data": [ { "id": "507f1f77bcf86cd799439011", "name": "High Blacklist Alert", "is_active": true, "profile_id": "abc123", "rules": [...], "created_at": "2024-01-01T00:00:00Z" } ], "meta": { "coun
Use in your AI tool
One-click into Claude, Cursor, VS Code, and more — connects straight to this server’s public endpoint.
https://mcp.emailconsul.com/