Skip to main content
Glama
avivshafir

abstractapi-mcp-server

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)

  1. Klonen Sie das Repository:

git clone https://github.com/avivshafir/abstractapi-mcp-server
cd abstractapi-mcp-server
  1. Erstellen Sie eine virtuelle Umgebung und installieren Sie Abhängigkeiten:

uv venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
uv pip install .
  1. Umgebungsvariablen einrichten:

cp .env.example .env
# Edit .env and add your Abstract API key

Option 2: Verwendung von traditionellem Pip

  1. Klonen Sie das Repository:

git clone https://github.com/avivshafir/abstractapi-mcp-server
cd abstractapi-mcp-server
  1. Erstellen Sie eine virtuelle Umgebung:

python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
  1. Installieren Sie Abhängigkeiten:

pip install -r requirements.txt
  1. Umgebungsvariablen einrichten:

cp .env.example .env
# Edit .env and add your Abstract API key

Ihre .env Datei sollte Folgendes enthalten:

ABSTRACT_API_KEY=your_abstract_api_key_here

Verwendung

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.py

FastMCP-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 angezeigt

  • Typsicherheit : 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 Telefonnummer

  • country (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 License

Neue Tools hinzufügen

So fügen Sie neue Abstract-API-Tools hinzu:

  1. Fügen Sie die API-Endpunkt-URL als Konstante hinzu

  2. Erstellen Sie eine neue Funktion, die mit @mcp.tool() dekoriert ist

  3. Umfassende Docstrings mit Parameter- und Rückgabebeschreibungen hinzufügen

  4. 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
    pass

Beitragen

  1. Forken Sie das Repository

  2. Erstellen eines Feature-Zweigs

  3. Nehmen Sie Ihre Änderungen vor

  4. Fügen Sie gegebenenfalls Tests hinzu

  5. 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:

Danksagung

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Latest Blog Posts

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