Abstrakter API-MCP-Server
Ein Model Context Protocol (MCP)-Server, der E-Mail- und Telefonvalidierungstools mithilfe abstrakter API-Dienste bereitstellt. Dieser Server basiert auf FastMCP und erleichtert die Integration von Validierungsfunktionen in KI-Anwendungen und Workflows.
Überblick
Dieser MCP-Server stellt drei Hauptvalidierungstools bereit:
E-Mail-Validierung : Umfassende Validierung und Verifizierung von E-Mail-Adressen
Telefonvalidierung : Validierung von Telefonnummern für über 190 Länder
E-Mail-Reputation : Erweiterte E-Mail-Reputationsanalyse mit Sicherheitseinblicken
Related MCP server: mcp-perplexity
Merkmale
E-Mail-Validierung
Formatvalidierung
Zustellbarkeitsprüfung
Domänenüberprüfung
SMTP-Validierung
Erkennung von Wegwerf-/Rollen-/Catchall-E-Mails
Qualitätsbewertung
Telefonvalidierung
Validierung internationaler Telefonnummern
Formatstandardisierung (international/lokal)
Länder- und Betreiberidentifikation
Erkennung des Telefontyps (Mobiltelefon, Festnetz usw.)
Standortinformationen
E-Mail-Reputation
Umfassende Zustellbarkeitsanalyse
Qualitätsbewertung und Risikobewertung
Absender- und Organisationsidentifikation
Domänensicherheitsanalyse (DMARC, SPF)
Verfolgung des Verlaufs von Datenschutzverletzungen
Betrugs- und Missbrauchserkennung
Voraussetzungen
Python 3.11+
uv (schneller Python-Paketinstaller)
Abstrakter API-Schlüssel (erhalten Sie einen unter abstractapi.com )
Installation
Option 1: Verwenden von UV (empfohlen)
Klonen Sie das Repository:
git clone https://github.com/avivshafir/abstractapi-mcp-server
cd abstractapi-mcp-serverErstellen Sie eine virtuelle Umgebung und installieren Sie Abhängigkeiten:
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv pip install .Umgebungsvariablen einrichten:
cp .env.example .env
# Edit .env and add your Abstract API keyOption 2: Verwendung von traditionellem Pip
Klonen Sie das Repository:
git clone https://github.com/avivshafir/abstractapi-mcp-server
cd abstractapi-mcp-serverErstellen Sie eine virtuelle Umgebung:
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activateInstallieren Sie Abhängigkeiten:
pip install -r requirements.txtUmgebungsvariablen einrichten:
cp .env.example .env
# Edit .env and add your Abstract API keyIhre .env Datei sollte Folgendes enthalten:
ABSTRACT_API_KEY=your_abstract_api_key_hereVerwendung
Ausführen des MCP-Servers
Der Server kann zur Integration mit MCP-Clients im Standardmodus ausgeführt werden:
# With uv (if virtual environment is activated)
python server.py
# Or run directly with uv
uv run server.pyFastMCP-Framework
Dieser Server basiert auf FastMCP , einem Python-Framework, das die Entwicklung von MCP-Servern vereinfacht. FastMCP bietet:
Automatische Tool-Registrierung : Mit
@mcp.tool()dekorierte Funktionen werden automatisch als MCP-Tools angezeigtTypsicherheit : Vollständige Typhinweise und Validierung
Einfache asynchrone Unterstützung : Native asynchrone/wartende Unterstützung
Vereinfachte Servereinrichtung : Minimaler Boilerplate-Code
Wichtige FastMCP-Konzepte
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")Verfügbare Tools
1. E-Mail-Validierung ( verify_email )
Überprüft E-Mail-Adressen und gibt umfassende Informationen zurück.
Parameter:
email(str): Zu validierende E-Mail-Adresse
Beispielantwort:
{
"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. Telefonvalidierung ( validate_phone )
Validiert Telefonnummern aus über 190 Ländern.
Parameter:
phone(str): Zu validierende Telefonnummercountry(str, optional): ISO-Ländercode für den Kontext
Beispielantwort:
{
"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. E-Mail-Reputation ( check_email_reputation )
Bietet eine umfassende E-Mail-Reputationsanalyse, einschließlich Sicherheitseinblicken und Verletzungsverlauf.
Parameter:
email(str): Zu analysierende E-Mail-Adresse
Beispielantwort:
{
"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"}
]
}
}Integration mit MCP-Clients
Fügen Sie diesen Server zu Ihrer MCP-Konfiguration hinzu:
{
"mcpServers": {
"abstract-api": {
"command": "uv",
"args": ["run", "/path/to/mcp-abstract-api/server.py"],
"env": {
"ABSTRACT_API_KEY": "your_api_key_here"
}
}
}
}Alternativ, wenn Sie lieber den traditionellen Ansatz verwenden möchten:
{
"mcpServers": {
"abstract-api": {
"command": "python",
"args": ["/path/to/mcp-abstract-api/server.py"],
"env": {
"ABSTRACT_API_KEY": "your_api_key_here"
}
}
}
}Andere MCP-Clients
Dieser Server folgt dem Standard-MCP-Protokoll und kann in jeden MCP-kompatiblen Client integriert werden. Die Kommunikation erfolgt über stdio-Transport.
Fehlerbehandlung
Der Server beinhaltet eine umfassende Fehlerbehandlung:
API-Schlüsselvalidierung : Prüft auf fehlende API-Schlüssel
HTTP-Fehlerbehandlung : Richtige Behandlung von API-Antwortfehlern
Eingabevalidierung : Typprüfung und Parametervalidierung
Graceful Degradation : Aussagekräftige Fehlermeldungen zum Debuggen
API-Ratenbegrenzungen
Die Abstract API hat je nach Plan unterschiedliche Ratenbegrenzungen:
Kostenlose Pläne: 1 Anfrage pro Sekunde
Kostenpflichtige Tarife: Höhere Ratenlimits verfügbar
Jeder API-Aufruf zählt als ein Guthaben, unabhängig davon, ob die Validierung erfolgreich ist oder fehlschlägt.
Entwicklung
Projektstruktur
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 LicenseNeue Tools hinzufügen
So fügen Sie neue Abstract-API-Tools hinzu:
Fügen Sie die API-Endpunkt-URL als Konstante hinzu
Erstellen Sie eine neue Funktion, die mit
@mcp.tool()dekoriert istUmfassende Docstrings mit Parameter- und Rückgabebeschreibungen hinzufügen
Implementieren Sie die Fehlerbehandlung nach dem vorhandenen Muster
Beispiel:
@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
passBeitragen
Forken Sie das Repository
Erstellen eines Feature-Zweigs
Nehmen Sie Ihre Änderungen vor
Fügen Sie gegebenenfalls Tests hinzu
Senden einer Pull-Anfrage
Lizenz
Dieses Projekt ist unter der MIT-Lizenz lizenziert – Einzelheiten finden Sie in der Datei LICENSE .
Unterstützung
Bei Problemen im Zusammenhang mit:
Dieser MCP-Server : Öffnen Sie ein Problem in diesem Repository
Abstract API : Kontaktieren Sie den Abstract API-Support
FastMCP-Framework : Lesen Sie die FastMCP-Dokumentation
Danksagung
Abstrakte API zur Bereitstellung der Validierungsdienste
FastMCP für das MCP-Server-Framework
Model Context Protocol für die Protokollspezifikation