抽象 API MCP 服务器
模型上下文协议 (MCP) 服务器,使用抽象 API 服务提供电子邮件和电话验证工具。该服务器基于 FastMCP 构建,可轻松将验证功能集成到 AI 应用程序和工作流程中。
概述
该 MCP 服务器公开了三个主要验证工具:
- 电子邮件验证:全面的电子邮件地址验证和确认
- 电话验证:190多个国家的电话号码验证
- 电子邮件信誉:具有安全洞察的高级电子邮件信誉分析
特征
电子邮件验证
- 格式验证
- 可交付性检查
- 域验证
- SMTP 验证
- 检测一次性/角色/通用电子邮件
- 质量评分
电话验证
- 国际电话号码验证
- 格式标准化(国际/本地)
- 国家和运营商识别
- 电话类型检测(手机、座机等)
- 位置信息
电子邮件信誉
- 全面的可交付性分析
- 质量评分和风险评估
- 发件人和组织身份证明
- 域名安全分析(DMARC、SPF)
- 数据泄露历史追踪
- 欺诈和滥用检测
先决条件
安装
选项 1:使用 uv(推荐)
- 克隆存储库:
git clone https://github.com/avivshafir/abstractapi-mcp-server
cd abstractapi-mcp-server
- 创建虚拟环境并安装依赖项:
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv pip install .
- 设置环境变量:
cp .env.example .env
# Edit .env and add your Abstract API key
选项 2:使用传统 pip
- 克隆存储库:
git clone https://github.com/avivshafir/abstractapi-mcp-server
cd abstractapi-mcp-server
- 创建虚拟环境:
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
- 安装依赖项:
pip install -r requirements.txt
- 设置环境变量:
cp .env.example .env
# Edit .env and add your Abstract API key
您的.env
文件应包含:
ABSTRACT_API_KEY=your_abstract_api_key_here
用法
运行 MCP 服务器
该服务器可以在 stdio 模式下运行,以便与 MCP 客户端集成:
# With uv (if virtual environment is activated)
python server.py
# Or run directly with uv
uv run server.py
FastMCP 框架
此服务器使用FastMCP构建,这是一个简化 MCP 服务器开发的 Python 框架。FastMCP 提供以下功能:
- 自动工具注册:使用
@mcp.tool()
修饰的函数将自动公开为 MCP 工具 - 类型安全:完整的类型提示和验证
- 轻松异步支持:原生异步/等待支持
- 简化的服务器设置:最少的样板代码
FastMCP 关键概念
from mcp.server.fastmcp import FastMCP
# Initialize the server
mcp = FastMCP("abstract_api")
# Register a tool
@mcp.tool()
async def my_tool(param: str) -> dict:
"""Tool description for AI clients"""
return {"result": param}
# Run the server
mcp.run(transport="stdio")
可用工具
1. 电子邮件验证( verify_email
)
验证电子邮件地址并返回综合信息。
参数:
响应示例:
{
"email": "user@example.com",
"deliverability": "DELIVERABLE",
"quality_score": "0.99",
"is_valid_format": {"value": true, "text": "TRUE"},
"is_free_email": {"value": false, "text": "FALSE"},
"is_disposable_email": {"value": false, "text": "FALSE"},
"is_role_email": {"value": false, "text": "FALSE"},
"is_catchall_email": {"value": false, "text": "FALSE"},
"is_mx_found": {"value": true, "text": "TRUE"},
"is_smtp_valid": {"value": true, "text": "TRUE"}
}
2. 电话验证( validate_phone
)
验证来自 190 多个国家的电话号码。
参数:
phone
(str): 需要验证的电话号码country
(str,可选):上下文的 ISO 国家代码
响应示例:
{
"phone": "14152007986",
"valid": true,
"format": {
"international": "+14152007986",
"local": "(415) 200-7986"
},
"country": {
"code": "US",
"name": "United States",
"prefix": "+1"
},
"location": "California",
"type": "mobile",
"carrier": "T-Mobile USA, Inc."
}
3. 电子邮件信誉( check_email_reputation
)
提供全面的电子邮件信誉分析,包括安全见解和违规历史。
参数:
响应示例:
{
"email_address": "benjamin.richard@abstractapi.com",
"email_deliverability": {
"status": "deliverable",
"status_detail": "valid_email",
"is_format_valid": true,
"is_smtp_valid": true,
"is_mx_valid": true,
"mx_records": ["gmail-smtp-in.l.google.com", "..."]
},
"email_quality": {
"score": 0.8,
"is_free_email": false,
"is_username_suspicious": false,
"is_disposable": false,
"is_catchall": true,
"is_subaddress": false,
"is_role": false,
"is_dmarc_enforced": true,
"is_spf_strict": true,
"minimum_age": 1418
},
"email_sender": {
"first_name": "Benjamin",
"last_name": "Richard",
"email_provider_name": "Google",
"organization_name": "Abstract API",
"organization_type": "company"
},
"email_domain": {
"domain": "abstractapi.com",
"domain_age": 1418,
"is_live_site": true,
"registrar": "NAMECHEAP INC",
"date_registered": "2020-05-13",
"date_expires": "2025-05-13",
"is_risky_tld": false
},
"email_risk": {
"address_risk_status": "low",
"domain_risk_status": "low"
},
"email_breaches": {
"total_breaches": 2,
"date_first_breached": "2018-07-23T14:30:00Z",
"date_last_breached": "2019-05-24T14:30:00Z",
"breached_domains": [
{"domain": "apollo.io", "date_breached": "2018-07-23T14:30:00Z"},
{"domain": "canva.com", "date_breached": "2019-05-24T14:30:00Z"}
]
}
}
与 MCP 客户端集成
将此服务器添加到您的 mcp 配置中:
{
"mcpServers": {
"abstract-api": {
"command": "uv",
"args": ["run", "/path/to/mcp-abstract-api/server.py"],
"env": {
"ABSTRACT_API_KEY": "your_api_key_here"
}
}
}
}
或者,如果您更喜欢使用传统方法:
{
"mcpServers": {
"abstract-api": {
"command": "python",
"args": ["/path/to/mcp-abstract-api/server.py"],
"env": {
"ABSTRACT_API_KEY": "your_api_key_here"
}
}
}
}
其他 MCP 客户端
该服务器遵循标准 MCP 协议,可与任何兼容 MCP 的客户端集成。服务器通过 stdio 传输进行通信。
错误处理
该服务器包括全面的错误处理:
- API 密钥验证:检查是否缺少 API 密钥
- HTTP 错误处理:正确处理 API 响应错误
- 输入验证:类型检查和参数验证
- 优雅降级:用于调试的有意义的错误消息
API 速率限制
根据您的计划,抽象 API 具有不同的速率限制:
- 免费计划:每秒 1 个请求
- 付费计划:提供更高的费率限制
无论验证成功还是失败,每次 API 调用都算作一个积分。
发展
项目结构
mcp-abstract-api/
├── server.py # Main MCP server implementation
├── .env # Environment variables (not in repo)
├── .env.example # Environment template
├── requirements.txt # Python dependencies (pip format)
├── uv.lock # uv lock file for reproducible builds
├── pyproject.toml # Project configuration
├── README.md # This file
└── LICENSE # MIT License
添加新工具
要添加新的抽象 API 工具:
- 将 API 端点 URL 添加为常量
- 创建一个用
@mcp.tool()
装饰的新函数 - 添加包含参数和返回描述的综合文档字符串
- 按照现有模式实现错误处理
例子:
@mcp.tool()
async def new_validation_tool(param: str) -> dict[str, Any]:
"""
Description of what this tool does.
Args:
param (str): Description of parameter
Returns:
dict[str, Any]: Description of return value
"""
# Implementation here
pass
贡献
- 分叉存储库
- 创建功能分支
- 进行更改
- 如果适用,添加测试
- 提交拉取请求
执照
该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅LICENSE文件。
支持
对于相关问题:
致谢