Skip to main content
Glama
avivshafir

abstractapi-mcp-server

추상 API MCP 서버

Abstract API 서비스를 사용하여 이메일 및 전화 유효성 검사 도구를 제공하는 모델 컨텍스트 프로토콜(MCP) 서버입니다. 이 서버는 FastMCP 기반으로 구축되어 있어 AI 애플리케이션 및 워크플로에 유효성 검사 기능을 쉽게 통합할 수 있습니다.

개요

이 MCP 서버는 세 가지 주요 검증 도구를 제공합니다.

  • 이메일 검증 : 포괄적인 이메일 주소 검증 및 확인

  • 전화번호 확인 : 190개국 이상의 전화번호 확인

  • 이메일 평판 : 보안 통찰력을 갖춘 고급 이메일 평판 분석

Related MCP server: mcp-perplexity

특징

이메일 검증

  • 형식 검증

  • 전달 가능성 확인

  • 도메인 확인

  • SMTP 검증

  • 일회용/역할/포괄 이메일 감지

  • 품질 평가

전화 확인

  • 국제 전화번호 확인

  • 형식 표준화(국제/지역)

  • 국가 및 통신사 식별

  • 전화 유형 감지(휴대전화, 유선전화 등)

  • 위치 정보

이메일 평판

  • 포괄적인 전달 가능성 분석

  • 품질 평가 및 위험 평가

  • 발신자 및 조직 식별

  • 도메인 보안 분석(DMARC, SPF)

  • 데이터 침해 내역 추적

  • 사기 및 남용 감지

필수 조건

  • 파이썬 3.11+

  • uv (빠른 Python 패키지 설치 프로그램)

  • Abstract API 키( abstractapi.com 에서 받으세요)

설치

옵션 1: uv 사용(권장)

  1. 저장소를 복제합니다.

지엑스피1

  1. 가상 환경을 생성하고 종속성을 설치합니다.

uv venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
uv pip install .
  1. 환경 변수 설정:

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

옵션 2: 기존 pip 사용

  1. 저장소를 복제합니다.

git clone https://github.com/avivshafir/abstractapi-mcp-server
cd abstractapi-mcp-server
  1. 가상 환경 만들기:

python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
  1. 종속성 설치:

pip install -r requirements.txt
  1. 환경 변수 설정:

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

.env 파일에는 다음이 포함되어야 합니다.

ABSTRACT_API_KEY=your_abstract_api_key_here

용법

MCP 서버 실행

MCP 클라이언트와 통합하기 위해 서버를 stdio 모드로 실행할 수 있습니다.

# With uv (if virtual environment is activated)
python server.py

# Or run directly with uv
uv run server.py

FastMCP 프레임워크

이 서버는 MCP 서버 개발을 간소화하는 Python 프레임워크인 FastMCP를 사용하여 구축되었습니다. 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 (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 전송을 통해 통신합니다.

오류 처리

서버에는 포괄적인 오류 처리 기능이 포함되어 있습니다.

  • 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 도구를 추가하려면:

  1. API 엔드포인트 URL을 상수로 추가합니다.

  2. @mcp.tool() 로 장식된 새로운 함수를 생성합니다.

  3. 매개변수 및 반환 설명이 포함된 포괄적인 docstring 추가

  4. 기존 패턴에 따라 오류 처리를 구현합니다.

예:

@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

기여하다

  1. 저장소를 포크하세요

  2. 기능 브랜치 생성

  3. 변경 사항을 만드세요

  4. 해당되는 경우 테스트를 추가하세요

  5. 풀 리퀘스트 제출

특허

이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여되었습니다. 자세한 내용은 라이선스 파일을 참조하세요.

지원하다

다음과 관련된 문제:

감사의 말

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