atdata-email-verification-mcp-server
This server provides email verification services using AtData's SafeToSend API to validate email addresses and filter out invalid and high-risk ones, helping improve email campaign performance.
Core Features:
Single email verification: Check individual email addresses for validity, deliverability, risk level, and detailed verification status
Batch email verification: Process multiple emails simultaneously with detailed results for each address and summary statistics (total count, success rate, failures)
Risk level analysis: Evaluate the risk associated with each email address (low, medium, high)
Deliverability assessment: Determine whether an email can actually receive messages
Technical Capabilities:
Flexible API key management: Supports environment variables (ATDATA_API_KEY) or direct parameter input
Comprehensive error handling: Manages missing API keys, invalid formats, authentication errors, bad requests, rate limiting, and network issues
Multiple deployment options: Can be run via Python execution, FastMCP CLI, uv package manager, or installed for Claude Desktop
Benefits: Improves email campaign metrics by achieving higher open rates, clicks, and conversions through identification and filtering of invalid or risky email addresses.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@atdata-email-verification-mcp-serververify if john.doe@company.com is a valid email address"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
AtData SafeToSend MCP Server
A Model Context Protocol (MCP) server that provides email verification services using AtData's SafeToSend API. This server allows you to verify email addresses to filter out invalid and high-risk ones, resulting in higher open rates, clicks, and conversions.
https://docs.atdata.com/reference/safe-to-send
Features
Email Verification: Verify individual email addresses using AtData's SafeToSend API
Batch Verification: Verify multiple email addresses at once with summary statistics
Comprehensive Error Handling: Detailed error messages for different failure scenarios
Environment Variable Support: Secure API key management through environment variables
Rate Limiting Awareness: Proper handling of API rate limits
Related MCP server: email-verify
Installation
Clone this repository:
git clone <repository-url>
cd atdata-mcp-serverInstall dependencies using uv (recommended) or pip:
# Using uv
uv sync
# Using pip
uv pip install .Setup
Get AtData API Key
Sign up for an AtData account at https://atdata.com
Obtain your API key from the AtData dashboard
Set up your API key as an environment variable:
export ATDATA_API_KEY="your-api-key-here"Or create a .env file in the project root:
ATDATA_API_KEY=your-api-key-hereUsage
Running the Server
Method 1: Direct Python execution
python server.pyMethod 2: Using FastMCP CLI
fastmcp run server.pyMethod 3: Install for Claude Desktop
fastmcp install server.pyUsing with uv
If you're using uv, you can also run the server with:
{
"mcpServers": {
"atdata-email-verification-mcp-server": {
"command": "uv",
"args": ["run", "python", "server.py"],
"cwd": "/path/to/your/atdata-email-verification-mcp-server",
"env": {
"ATDATA_API_KEY": "your_api_key_here"
}
}
}
}Available Tools
1. verify_email
Verify a single email address.
Parameters:
email(string, required): The email address to verifyapi_key(string, optional): AtData API key (uses environment variable if not provided)
Example:
{
"email": "user@example.com",
"api_key": "your-api-key" # Optional if ATDATA_API_KEY is set
}Response:
{
"success": True,
"email": "user@example.com",
"verification_result": {
"email": "user@example.com",
"status": "valid",
"deliverable": True,
"risk_level": "low",
# Additional verification details from AtData API
}
}2. batch_verify_emails
Verify multiple email addresses in batch.
Parameters:
emails(array of strings, required): List of email addresses to verifyapi_key(string, optional): AtData API key (uses environment variable if not provided)
Example:
{
"emails": ["user1@example.com", "user2@domain.com", "invalid@email"],
"api_key": "your-api-key" # Optional if ATDATA_API_KEY is set
}Response:
{
"results": [
{
"success": True,
"email": "user1@example.com",
"verification_result": { /* verification details */ }
},
{
"success": True,
"email": "user2@domain.com",
"verification_result": { /* verification details */ }
},
{
"error": "Bad request. Please check the email format.",
"email": "invalid@email",
"status_code": 400
}
],
"summary": {
"total": 3,
"successful": 2,
"failed": 1,
"success_rate": 66.67
}
}Error Handling
The server provides comprehensive error handling for various scenarios:
Missing API Key: Returns error when no API key is provided
Authentication Errors: Handles invalid API keys (401 status)
Bad Requests: Handles invalid email formats (400 status)
Rate Limiting: Handles API rate limit exceeded (429 status)
Network Issues: Handles connection errors and timeouts
Unexpected Errors: Catches and reports any unexpected exceptions
API Documentation
This server is based on the AtData SafeToSend API. For more details about the underlying API, see:
Development
Project Structure
atdata-mcp-server/
├── src/
│ └── server.py # Main MCP server implementation
├── pyproject.toml # Project configuration and dependencies
├── uv.lock # Locked dependencies
└── README.md # This fileContributing
Fork the repository
Create a feature branch
Make your changes
Add tests if applicable
Submit a pull request
License
This project is licensed under the MIT License. See the LICENSE file for details.
Support
For issues related to:
This MCP Server: Open an issue in this repository
AtData API: Contact AtData support or check their documentation
FastMCP Framework: Check the FastMCP documentation
Available Tools
2 toolsbatch_verify_emailsA
Verify multiple email addresses using AtData's SafeToSend API.
This tool allows you to verify multiple email addresses in batch,
processing each one individually through the SafeToSend API.
Args:
emails: List of email addresses to verify
api_key: AtData API key (if not provided, will try to get from ATDATA_API_KEY env var)
Returns:
Dictionary containing:
- results: List of verification results for each email
- summary: Summary statistics of the batch verification
| Name | Required | Description | Default |
|---|---|---|---|
| emails | Yes | ||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explains the batch processing approach and API key fallback behavior, but doesn't cover important aspects like rate limits, error handling, authentication requirements beyond the API key, or what happens if the API is unavailable. It provides basic operational context but lacks comprehensive behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly structured and concise with zero wasted words. It opens with the core purpose, explains the batch nature, provides clear parameter documentation in a structured format, and describes the return value. Every sentence earns its place and information is front-loaded effectively.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter tool with no annotations and no output schema, the description provides adequate coverage of inputs and basic operation but lacks details about the verification results format, error conditions, or API limitations. The return value description is helpful but doesn't fully compensate for the missing output schema, leaving the agent uncertain about the exact structure of verification results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully compensates by clearly explaining both parameters: 'emails' as 'List of email addresses to verify' and 'api_key' with its fallback behavior to environment variable. The description adds essential meaning beyond the bare schema, including the optional nature and default behavior of the api_key parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('verify multiple email addresses'), the resource ('using AtData's SafeToSend API'), and distinguishes from the sibling tool 'verify_email' by emphasizing batch processing. The phrase 'in batch, processing each one individually' explicitly differentiates it from single-email verification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool ('verify multiple email addresses in batch'), but doesn't explicitly state when not to use it or mention the sibling 'verify_email' as an alternative for single emails. The guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_emailA
Verify an email address using AtData's SafeToSend API.
This tool verifies email addresses to filter out invalid and high-risk ones,
which results in higher open rates, clicks, and conversions.
Args:
email: The email address to verify
api_key: AtData API key (if not provided, will try to get from ATDATA_API_KEY env var)
Returns:
Dictionary containing the verification results including:
- email: The email address that was verified
- status: The verification status
- deliverable: Whether the email is deliverable
- risk_level: Risk assessment of the email
- additional verification details
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | |||
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the core functionality and business purpose well, but lacks details about error handling, rate limits, authentication requirements beyond the API key parameter, or what happens when the API key isn't provided. The description doesn't contradict any annotations since none exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and appropriately sized. It begins with the core purpose, adds business context, then provides clear sections for Args and Returns. Every sentence earns its place, with no redundant information or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 2 parameters, no annotations, and no output schema, the description does a good job covering the essentials. It explains what the tool does, provides parameter semantics, and describes the return structure. However, it could benefit from more behavioral context about error cases or performance characteristics given the lack of annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully compensates by providing clear semantic explanations for both parameters. It explains that 'email' is 'The email address to verify' and that 'api_key' is the 'AtData API key' with fallback behavior to environment variable. This adds significant value beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('verify an email address'), identifies the resource ('email address'), and specifies the external service ('AtData's SafeToSend API'). It distinguishes from the sibling tool 'batch_verify_emails' by being for single email verification rather than batch processing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context about when to use this tool ('to filter out invalid and high-risk ones, which results in higher open rates, clicks, and conversions'), but doesn't explicitly mention when NOT to use it or provide detailed alternatives. The sibling tool 'batch_verify_emails' is implied as an alternative for batch operations, but not explicitly called out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
The two tools have clearly distinct purposes: verify_email handles single email verification, while batch_verify_emails processes multiple emails in batch. There is no overlap or ambiguity between them, as each serves a specific use case within the email verification domain.
Both tools follow a consistent verb_noun naming pattern (verify_email and batch_verify_emails) that clearly indicates their function. The naming is predictable and readable, with no deviations in style or convention.
With only 2 tools, the server feels under-scoped for a comprehensive email verification service. While the tools cover basic verification, there are likely missing operations such as checking verification status, managing API keys, or handling bulk results that would enhance completeness.
The toolset is severely incomplete for an email verification domain. It lacks essential operations like checking verification history, managing batch jobs, or providing domain-level insights. The current tools only offer basic verification without supporting common workflows or lifecycle management.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Cloudflare Workers MCP server: email-validator
MCP server for Tomba email finder, verification, and contact enrichment API
Emailable MCP — wraps the Emailable email verification API (emailable.com)
An MCP server that provides email capabilities, hosted on Alpic platform
Related MCP Servers
- AlicenseAqualityCmaintenanceEmail validation MCP server using MailboxValidator API to determine validity of an email address.3731MIT
- AlicenseAqualityBmaintenanceEnables real-time email verification via MCP tools, checking syntax, MX, disposable domains, and optional SMTP probe to determine deliverability with a VALID/RISKY/INVALID verdict.231MIT
- AlicenseNot gradedqualityBmaintenanceMCP server for verifying B2B contact records via email syntax and DNS/MX checks, serving verified data with per-tenant isolation.Apache 2.0
- FlicenseNot gradedqualityDmaintenanceComprehensive email validation MCP server that checks syntax, MX records, disposable domains, role-based accounts, SPF/DKIM, typo suggestions, and risk scoring.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/avivshafir/atdata-email-verification-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server