utilities
Comprehensive email validation with RFC 5322 syntax validation, DNS MX verification, disposable email detection, risk scoring, and typo suggestions using dynamic data sources
While you can view all details here, using this MCP server's API requires a Enterprise subscription. API calls with FREE plan keys will return an access error.
View Pricing PlansNo tools documented yet.
Add the Email Address Validator MCP server to your MCP client configuration:
{
"mcpServers": {
"email-validator": {
"command": "curl",
"args": [
"-X", "POST",
"https://apistack.online/api/mcp/utilities/email-address-validator/sse",
"-H", "Content-Type: application/json",
"-H", "Authorization: Bearer YOUR_API_KEY",
"--data-raw", "@-"
],
"transport": "sse"
}
}
}
Ensure your API key has PRO or ENTERPRISE plan access:
export MCP_EMAIL_VALIDATOR_API_KEY="your-api-key"
const result = await mcpClient.callTool('validate_email', {
email: 'user@example.com',
validationType: 'comprehensive'
});
const result = await mcpClient.callTool('validate_emails_bulk', {
emails: ['user1@gmail.com', 'user2@company.com', 'temp@mailinator.com'],
checkDisposable: true
});
const result = await mcpClient.callTool('check_email_syntax', {
email: 'user@domain.com'
});
const result = await mcpClient.callTool('suggest_email_correction', {
email: 'user@gmai.com'
});
The server returns comprehensive error messages:
try {
const result = await mcpClient.callTool('validate_email', {
email: 'invalid-email'
});
} catch (error) {
console.error('Validation failed:', error.message);
}
Use appropriate validation types:
syntax for quick checksdomain for deliverabilitycomprehensive for securityBatch processing: Use validate_emails_bulk for multiple emails
Cache results: Store validation results to reduce API calls
Handle typos: Use suggest_email_correction for user-friendly error messages
Risk-based workflows: Implement different flows based on risk scores:
The Email Address Validator MCP server provides comprehensive email validation and verification functionality through the Model Context Protocol (MCP). This server wraps our battle-tested Email Address Validator API to provide AI agents with professional email validation capabilities.
This MCP server exposes 5 tools for AI agents:
validate_emailPurpose: Comprehensive email address validation with all security and quality checks
email (string, required) - Email address to validate (max 254 characters)validationType (string, optional) - Type: "syntax", "domain", or "comprehensive" (default)checkMX (boolean, optional) - Check domain MX records (default: true)checkDisposable (boolean, optional) - Check for disposable email providers (default: true)checkFreeProvider (boolean, optional) - Check for free email providers (default: true)checkRoleAccount (boolean, optional) - Check for role-based accounts (default: true)suggestTypos (boolean, optional) - Suggest typo corrections (default: true)includeRiskScore (boolean, optional) - Include risk score 0-100 (default: true)validate_emails_bulkPurpose: Validate multiple email addresses in a single request (up to 100 emails)
emails (array, required) - Array of 1-100 email addresses to validatecheck_email_syntaxPurpose: Quick RFC 5322 compliant syntax-only validation (fastest method)
email (string, required) - Email address to checkcheck_domain_mxPurpose: Check if a domain has valid MX records for email delivery
domain (string, required) - Domain name to check (max 253 characters)suggest_email_correctionPurpose: Suggest corrections for emails with potential domain typos
email (string, required) - Email address to analyze/api/mcp/utilities/email-address-validator/sse/api/utilities/email-address-validator/v1Endpoint: https://apistack.online/api/mcp/utilities/email-address-validator/sse
Method: POST
Headers:
Content-Type: application/json
Authorization: Bearer YOUR_API_KEY
{
"jsonrpc": "2.0",
"id": "list-tools",
"method": "tools/list"
}
{
"jsonrpc": "2.0",
"id": "validate-1",
"method": "tools/call",
"params": {
"name": "validate_email",
"arguments": {
"email": "user@example.com",
"validationType": "comprehensive",
"includeRiskScore": true
}
}
}
{
"jsonrpc": "2.0",
"id": "bulk-1",
"method": "tools/call",
"params": {
"name": "validate_emails_bulk",
"arguments": {
"emails": ["user1@gmail.com", "admin@company.com", "temp@10minutemail.com"],
"checkDisposable": true,
"includeRiskScore": true
}
}
}
{
"jsonrpc": "2.0",
"id": "syntax-1",
"method": "tools/call",
"params": {
"name": "check_email_syntax",
"arguments": {
"email": "user@domain.com"
}
}
}
import requests
import json
class EmailValidatorMCPClient:
def __init__(self, base_url, api_key):
self.base_url = base_url
self.headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {api_key}"
}
self.endpoint = f"{base_url}/api/mcp/utilities/email-address-validator/sse"
def validate_email(self, email, validation_type="comprehensive", include_risk_score=True):
request = {
"jsonrpc": "2.0",
"id": "validate",
"method": "tools/call",
"params": {
"name": "validate_email",
"arguments": {
"email": email,
"validationType": validation_type,
"includeRiskScore": include_risk_score
}
}
}
response = requests.post(self.endpoint, headers=self.headers, json=request)
result = response.json()
return result["result"]
def validate_bulk(self, emails, check_disposable=True):
request = {
"jsonrpc": "2.0",
"id": "bulk",
"method": "tools/call",
"params": {
"name": "validate_emails_bulk",
"arguments": {
"emails": emails,
"checkDisposable": check_disposable,
"includeRiskScore": True
}
}
}
response = requests.post(self.endpoint, headers=self.headers, json=request)
result = response.json()
return result["result"]
def check_syntax(self, email):
request = {
"jsonrpc": "2.0",
"id": "syntax",
"method": "tools/call",
"params": {
"name": "check_email_syntax",
"arguments": {"email": email}
}
}
response = requests.post(self.endpoint, headers=self.headers, json=request)
result = response.json()
return result["result"]
def suggest_correction(self, email):
request = {
"jsonrpc": "2.0",
"id": "suggest",
"method": "tools/call",
"params": {
"name": "suggest_email_correction",
"arguments": {"email": email}
}
}
response = requests.post(self.endpoint, headers=self.headers, json=request)
result = response.json()
return result["result"]
# Usage
client = EmailValidatorMCPClient("https://apistack.online", "YOUR_API_KEY")
# Validate single email
result = client.validate_email("user@example.com")
print(f"Valid: {result['isValid']}, Risk Score: {result['riskScore']['score']}")
# Bulk validation
emails_to_check = ["user1@gmail.com", "temp@10minutemail.com", "admin@company.com"]
bulk_results = client.validate_bulk(emails_to_check)
print(f"Validated {len(bulk_results['results'])} emails")
# Quick syntax check
syntax_result = client.check_syntax("user@domain.com")
print(f"Syntax Valid: {syntax_result['isValid']}")
# Get typo suggestion
suggestion = client.suggest_correction("user@gmai.com")
if suggestion['hasSuggestion']:
print(f"Did you mean: {suggestion['suggestion']}?")
const axios = require('axios');
class EmailValidatorMCPClient {
constructor(baseUrl, apiKey) {
this.baseUrl = baseUrl;
this.endpoint = `${baseUrl}/api/mcp/utilities/email-address-validator/sse`;
this.headers = {
'Content-Type': 'application/json',
'Authorization': `Bearer ${apiKey}`
};
}
async validateEmail(email, validationType = 'comprehensive', includeRiskScore = true) {
const request = {
jsonrpc: "2.0",
id: "validate",
method: "tools/call",
params: {
name: "validate_email",
arguments: {
email,
validationType,
includeRiskScore
}
}
};
const response = await axios.post(this.endpoint, request, { headers: this.headers });
return response.data.result;
}
async validateBulk(emails, checkDisposable = true) {
const request = {
jsonrpc: "2.0",
id: "bulk",
method: "tools/call",
params: {
name: "validate_emails_bulk",
arguments: {
emails,
checkDisposable,
includeRiskScore: true
}
}
};
const response = await axios.post(this.endpoint, request, { headers: this.headers });
return response.data.result;
}
async checkSyntax(email) {
const request = {
jsonrpc: "2.0",
id: "syntax",
method: "tools/call",
params: {
name: "check_email_syntax",
arguments: { email }
}
};
const response = await axios.post(this.endpoint, request, { headers: this.headers });
return response.data.result;
}
async suggestCorrection(email) {
const request = {
jsonrpc: "2.0",
id: "suggest",
method: "tools/call",
params: {
name: "suggest_email_correction",
arguments: { email }
}
};
const response = await axios.post(this.endpoint, request, { headers: this.headers });
return response.data.result;
}
}
// Usage
(async () => {
const client = new EmailValidatorMCPClient("https://apistack.online", "YOUR_API_KEY");
// Validate single email
const result = await client.validateEmail("user@example.com");
console.log(`Valid: ${result.isValid}, Risk: ${result.riskScore.score}`);
// Bulk validation
const emails = ["user1@gmail.com", "temp@10minutemail.com", "admin@company.com"];
const bulkResults = await client.validateBulk(emails);
console.log(`Validated ${bulkResults.results.length} emails`);
// Quick syntax check
const syntaxResult = await client.checkSyntax("user@domain.com");
console.log(`Syntax Valid: ${syntaxResult.isValid}`);
// Typo suggestion
const suggestion = await client.suggestCorrection("user@gmai.com");
if (suggestion.hasSuggestion) {
console.log(`Did you mean: ${suggestion.suggestion}?`);
}
})();
# List available tools
curl -X POST "https://apistack.online/api/mcp/utilities/email-address-validator/sse" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"jsonrpc": "2.0",
"id": "list-tools",
"method": "tools/list"
}'
# Validate single email
curl -X POST "https://apistack.online/api/mcp/utilities/email-address-validator/sse" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"jsonrpc": "2.0",
"id": "validate",
"method": "tools/call",
"params": {
"name": "validate_email",
"arguments": {
"email": "user@example.com",
"validationType": "comprehensive",
"includeRiskScore": true
}
}
}'
# Bulk validate
curl -X POST "https://apistack.online/api/mcp/utilities/email-address-validator/sse" \
-H "Content-Type": "application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"jsonrpc": "2.0",
"id": "bulk",
"method": "tools/call",
"params": {
"name": "validate_emails_bulk",
"arguments": {
"emails": ["user1@gmail.com", "temp@10minutemail.com", "admin@company.com"],
"checkDisposable": true
}
}
}'
# Quick syntax check
curl -X POST "https://apistack.online/api/mcp/utilities/email-address-validator/sse" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"jsonrpc": "2.0",
"id": "syntax",
"method": "tools/call",
"params": {
"name": "check_email_syntax",
"arguments": {
"email": "user@domain.com"
}
}
}'
All tool responses follow the MCP protocol format:
{
"jsonrpc": "2.0",
"id": "validate",
"result": {
"content": [{
"type": "text",
"text": "π§ Email: user@example.com\nβ
Valid: YES\nπ€ Syntax: Valid\nπ MX Records: Valid (1 records)\nπ« Disposable: NO\nπ§ Free Provider: NO\nπ€ Role Account: NO\nβ οΈ Risk Score: 5/100 (low)"
}],
"isError": false
}
}
{
"jsonrpc": "2.0",
"id": "bulk",
"result": {
"content": [{
"type": "text",
"text": "π Bulk Validation Results:\n\nTotal Emails: 3\nβ
Valid: 2\nβ Invalid: 1\nπ« Disposable: 1\nβ οΈ High Risk: 1"
}],
"isError": false
}
}
{
"jsonrpc": "2.0",
"id": "request-id",
"error": {
"code": -32603,
"message": "Email address is required and must be a string"
}
}
You can test the MCP server using the provided cURL examples above or create a simple test script.
AI Agent/Client
β
MCP Protocol (JSON-RPC 2.0)
β
Email Validator MCP Server (/api/mcp/utilities/email-address-validator/sse)
β
Authentication & Validation
β
Email Validator API (/api/utilities/email-address-validator/v1)
β
- RFC 5322 Syntax Validation
- DNS MX Record Lookup
- Disposable Email Detection (Dynamic GitHub sources)
- Risk Scoring Engine
- Typo Suggestion Algorithm
β
Response via MCP Protocol
{
"name": "validate_email",
"description": "Comprehensive email validation with syntax, MX, disposable detection, and risk scoring",
"inputSchema": {
"type": "object",
"properties": {
"email": {
"type": "string",
"maxLength": 254,
"description": "Email address to validate"
},
"validationType": {
"type": "string",
"enum": ["syntax", "domain", "comprehensive"],
"default": "comprehensive"
},
"checkMX": {"type": "boolean", "default": true},
"checkDisposable": {"type": "boolean", "default": true},
"checkFreeProvider": {"type": "boolean", "default": true},
"checkRoleAccount": {"type": "boolean", "default": true},
"suggestTypos": {"type": "boolean", "default": true},
"includeRiskScore": {"type": "boolean", "default": true}
},
"required": ["email"]
}
}
{
"name": "validate_emails_bulk",
"description": "Validate multiple emails in bulk (up to 100)",
"inputSchema": {
"type": "object",
"properties": {
"emails": {
"type": "array",
"items": {"type": "string", "maxLength": 254},
"minItems": 1,
"maxItems": 100
},
"checkMX": {"type": "boolean", "default": true},
"checkDisposable": {"type": "boolean", "default": true},
"checkFreeProvider": {"type": "boolean", "default": true},
"checkRoleAccount": {"type": "boolean", "default": true},
"suggestTypos": {"type": "boolean", "default": true},
"includeRiskScore": {"type": "boolean", "default": true}
},
"required": ["emails"]
}
}
{
"name": "check_email_syntax",
"description": "Quick RFC 5322 syntax validation only",
"inputSchema": {
"type": "object",
"properties": {
"email": {
"type": "string",
"maxLength": 254,
"description": "Email to check syntax"
}
},
"required": ["email"]
}
}
{
"name": "check_domain_mx",
"description": "Check domain MX records for email delivery capability",
"inputSchema": {
"type": "object",
"properties": {
"domain": {
"type": "string",
"maxLength": 253,
"description": "Domain to check MX records"
}
},
"required": ["domain"]
}
}
{
"name": "suggest_email_correction",
"description": "Suggest corrections for email typos",
"inputSchema": {
"type": "object",
"properties": {
"email": {
"type": "string",
"maxLength": 254,
"description": "Email to analyze for typos"
}
},
"required": ["email"]
}
}
For issues, feature requests, or integration help:
Note: This MCP server requires a PRO or ENTERPRISE subscription and valid API authentication. The server provides enterprise-grade email validation with dynamic data sources for disposable email detection and comprehensive risk assessment.
Comprehensive email validation with all security and quality checks.
Input Parameters:
email (string, required) - Email address to validate (max 254 characters)validationType (string, optional) - "syntax", "domain", or "comprehensive" (default)checkMX (boolean, optional) - Check domain MX records (default: true)checkDisposable (boolean, optional) - Check for disposable providers (default: true)checkFreeProvider (boolean, optional) - Check for free providers (default: true)checkRoleAccount (boolean, optional) - Check for role accounts (default: true)suggestTypos (boolean, optional) - Suggest typo corrections (default: true)includeRiskScore (boolean, optional) - Include risk score (default: true)Example:
{
"email": "user@example.com",
"validationType": "comprehensive",
"includeRiskScore": true
}
Output:
Validate multiple email addresses in bulk (up to 100 emails per request).
Input Parameters:
emails (array, required) - Array of 1-100 email addressesExample:
{
"emails": ["user1@gmail.com", "temp@10minutemail.com", "admin@company.com"],
"checkDisposable": true,
"includeRiskScore": true
}
Output:
Quick RFC 5322 compliant syntax validation only (fastest method).
Input Parameters:
email (string, required) - Email address to checkExample:
{
"email": "user@domain.com"
}
Output:
Check if a domain has valid MX records for email delivery.
Input Parameters:
domain (string, required) - Domain name to check (max 253 characters)Example:
{
"domain": "gmail.com"
}
Output:
Suggest corrections for email addresses with potential typos.
Input Parameters:
email (string, required) - Email address to analyzeExample:
{
"email": "user@gmai.com"
}
Output:
Add this configuration to your MCP client:
Note: Replace "YOUR_API_KEY" with a valid Enterprise API key. FREE plan keys will receive access errors.
{
"mcpServers": {
"email-address-validator-utilities": {
"command": "curl",
"args": [
"-X",
"POST",
"https://apistack.online/api/mcp/utilities/email-address-validator/sse",
"-H",
"Content-Type: application/json",
"-H",
"Authorization: Bearer YOUR_API_KEY",
"--data-raw",
"@-"
],
"transport": "sse"
}
}
}Use the MCP configuration above in your AI client, or test the underlying APIs in our playground.
API playground requires a Enterprise subscription for access.