Skip to main content
Glama

abstractapi-mcp-server

MIT License

Servidor MCP de API abstracta

Un servidor de Protocolo de Contexto de Modelo (MCP) que proporciona herramientas de validación de correo electrónico y teléfono mediante servicios de API Abstract. Este servidor está desarrollado con FastMCP, lo que facilita la integración de funciones de validación en aplicaciones y flujos de trabajo de IA.

Descripción general

Este servidor MCP expone tres herramientas de validación principales:

  • Validación de correo electrónico : validación y verificación integral de direcciones de correo electrónico
  • Validación de teléfono : Validación de números de teléfono para más de 190 países
  • Reputación de correo electrónico : análisis avanzado de la reputación del correo electrónico con información sobre seguridad

Características

Validación de correo electrónico

  • Validación de formato
  • Comprobación de capacidad de entrega
  • Verificación de dominio
  • Validación SMTP
  • Detección de correos electrónicos desechables/de rol/generales
  • Puntuación de calidad

Validación telefónica

  • Validación de números de teléfono internacionales
  • Estandarización de formatos (internacionales/locales)
  • Identificación del país y del operador
  • Detección del tipo de teléfono (móvil, fijo, etc.)
  • Información de ubicación

Reputación del correo electrónico

  • Análisis integral de capacidad de entrega
  • Puntuación de calidad y evaluación de riesgos
  • Identificación del remitente y de la organización
  • Análisis de seguridad del dominio (DMARC, SPF)
  • Seguimiento del historial de violaciones de datos
  • Detección de fraudes y abusos

Prerrequisitos

  • Python 3.11+
  • uv (instalador rápido de paquetes de Python)
  • Clave API abstracta (obtenga una en abstractapi.com )

Instalación

Opción 1: Uso de rayos UV (recomendado)

  1. Clonar el repositorio:
git clone https://github.com/avivshafir/abstractapi-mcp-server cd abstractapi-mcp-server
  1. Crear entorno virtual e instalar dependencias:
uv venv source .venv/bin/activate # On Windows: .venv\Scripts\activate uv pip install .
  1. Configurar variables de entorno:
cp .env.example .env # Edit .env and add your Abstract API key

Opción 2: Utilizando pip tradicional

  1. Clonar el repositorio:
git clone https://github.com/avivshafir/abstractapi-mcp-server cd abstractapi-mcp-server
  1. Crear un entorno virtual:
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
  1. Instalar dependencias:
pip install -r requirements.txt
  1. Configurar variables de entorno:
cp .env.example .env # Edit .env and add your Abstract API key

Su archivo .env debe contener:

ABSTRACT_API_KEY=your_abstract_api_key_here

Uso

Ejecución del servidor MCP

El servidor se puede ejecutar en modo stdio para la integración con clientes MCP:

# With uv (if virtual environment is activated) python server.py # Or run directly with uv uv run server.py

Marco FastMCP

Este servidor se creó con FastMCP , un framework de Python que simplifica el desarrollo de servidores MCP. FastMCP ofrece:

  • Registro automático de herramientas : las funciones decoradas con @mcp.tool() se exponen automáticamente como herramientas MCP
  • Seguridad de tipos : sugerencias y validación de tipos completos
  • Soporte asincrónico sencillo : Soporte nativo para async/await
  • Configuración simplificada del servidor : código repetitivo mínimo
Conceptos clave de 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")

Herramientas disponibles

1. Validación de correo electrónico ( verify_email )

Valida direcciones de correo electrónico y devuelve información completa.

Parámetros:

  • email (str): Dirección de correo electrónico para validar

Ejemplo de respuesta:

{ "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. Validación del teléfono ( validate_phone )

Valida números de teléfono de más de 190 países.

Parámetros:

  • phone (str): Número de teléfono a validar
  • country (str, opcional): código de país ISO para contexto

Ejemplo de respuesta:

{ "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. Reputación del correo electrónico ( check_email_reputation )

Proporciona un análisis completo de la reputación del correo electrónico, que incluye información de seguridad e historial de infracciones.

Parámetros:

  • email (str): Dirección de correo electrónico para analizar

Ejemplo de respuesta:

{ "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"} ] } }

Integración con clientes MCP

Agregue este servidor a su configuración de mcp:

{ "mcpServers": { "abstract-api": { "command": "uv", "args": ["run", "/path/to/mcp-abstract-api/server.py"], "env": { "ABSTRACT_API_KEY": "your_api_key_here" } } } }

Alternativamente, si prefiere utilizar el enfoque tradicional:

{ "mcpServers": { "abstract-api": { "command": "python", "args": ["/path/to/mcp-abstract-api/server.py"], "env": { "ABSTRACT_API_KEY": "your_api_key_here" } } } }

Otros clientes de MCP

Este servidor sigue el protocolo MCP estándar y se puede integrar con cualquier cliente compatible con MCP. Se comunica mediante el transporte stdio.

Manejo de errores

El servidor incluye un manejo integral de errores:

  • Validación de clave API : Comprueba si faltan claves API
  • Manejo de errores HTTP : manejo adecuado de errores de respuesta de API
  • Validación de entrada : verificación de tipos y validación de parámetros
  • Degradación elegante : mensajes de error significativos para la depuración

Límites de velocidad de la API

La API abstracta tiene diferentes límites de velocidad según su plan:

  • Planes gratuitos: 1 solicitud por segundo
  • Planes pagos: Límites de tarifas más altos disponibles

Cada llamada a la API cuenta como un crédito, independientemente de si la validación tiene éxito o falla.

Desarrollo

Estructura del proyecto

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

Agregar nuevas herramientas

Para agregar nuevas herramientas de API abstracta:

  1. Agregue la URL del punto final de la API como una constante
  2. Crea una nueva función decorada con @mcp.tool()
  3. Agregue una cadena de documentación completa con descripciones de parámetros y retornos
  4. Implementar el manejo de errores siguiendo el patrón existente

Ejemplo:

@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

Contribuyendo

  1. Bifurcar el repositorio
  2. Crear una rama de características
  3. Realiza tus cambios
  4. Agregue pruebas si corresponde
  5. Enviar una solicitud de extracción

Licencia

Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.

Apoyo

Para cuestiones relacionadas con:

Expresiones de gratitud

Related MCP Servers

  • A
    security
    F
    license
    A
    quality
    An MCP server implementation that enables interaction with the Unstructured API, providing tools to list, create, update, and manage sources, destinations, and workflows.
    Last updated -
    39
    28
    • Apple
  • -
    security
    A
    license
    -
    quality
    Generate an MCP server for any OpenAPI documented endpoint.
    Last updated -
    201
    Go
    Apache 2.0
    • Apple
    • Linux

View all related MCP servers

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/abstractapi-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server