Абстрактный API MCP-сервер
Сервер Model Context Protocol (MCP), который предоставляет инструменты проверки электронной почты и телефона с использованием служб Abstract API. Этот сервер создан с использованием FastMCP, что упрощает интеграцию возможностей проверки в приложения и рабочие процессы ИИ.
Обзор
Этот сервер MCP предоставляет три основных инструмента проверки:
Проверка адреса электронной почты : комплексная проверка и верификация адреса электронной почты
Проверка телефона : проверка номера телефона для более чем 190 стран
Репутация электронной почты : расширенный анализ репутации электронной почты с учетом безопасности
Related MCP server: mcp-perplexity
Функции
Проверка электронной почты
Проверка формата
Проверка доставляемости
Проверка домена
Проверка SMTP
Обнаружение одноразовых/ролевых/универсальных писем
Оценка качества
Проверка телефона
Международная проверка номера телефона
Стандартизация формата (международная/локальная)
Идентификация страны и оператора
Определение типа телефона (мобильный, стационарный и т. д.)
Информация о местоположении
Репутация электронной почты
Комплексный анализ доставляемости
Оценка качества и риска
Идентификация отправителя и организации
Анализ безопасности домена (DMARC, SPF)
Отслеживание истории утечек данных
Обнаружение мошенничества и злоупотреблений
Предпосылки
Питон 3.11+
uv (быстрый установщик пакетов Python)
Ключ API Abstract (получите его на abstractapi.com )
Установка
Вариант 1: Использование УФ (рекомендуется)
Клонируйте репозиторий:
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: использование традиционного пипа
Клонируйте репозиторий:
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 , фреймворка Python, который упрощает разработку сервера MCP. FastMCP обеспечивает:
Автоматическая регистрация инструментов : функции, помеченные
@mcp.tool()автоматически отображаются как инструменты MCP.Безопасность типов : Полные подсказки типов и проверка
Простая поддержка асинхронности : собственная поддержка async/await
Упрощенная настройка сервера : минимальный шаблонный код
Ключевые концепции 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(str): Адрес электронной почты для проверки
Пример ответа:
{
"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(str): Адрес электронной почты для анализа
Пример ответа:
{
"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 transport.
Обработка ошибок
Сервер включает в себя комплексную обработку ошибок:
Проверка ключа API : проверка на наличие отсутствующих ключей API.
Обработка ошибок HTTP : правильная обработка ошибок ответа API
Проверка входных данных : проверка типа и параметров
Постепенная деградация : осмысленные сообщения об ошибках для отладки
Ограничения скорости API
Abstract 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Добавление новых инструментов
Чтобы добавить новые инструменты Abstract API:
Добавьте URL-адрес конечной точки API как константу
Создайте новую функцию, декорированную
@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 .
Поддерживать
По вопросам, связанным с:
Этот сервер MCP : Открыть проблему в этом репозитории
Abstract API : свяжитесь со службой поддержки Abstract API
Фреймворк FastMCP : проверьте документацию FastMCP
Благодарности
Абстрактный API для предоставления услуг проверки
FastMCP для серверной платформы MCP
Модель контекстного протокола для спецификации протокола