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
가상 환경을 생성하고 종속성을 설치합니다.
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: 기존 pip 사용
저장소를 복제합니다.
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 서버 실행
MCP 클라이언트와 통합하기 위해 서버를 stdio 모드로 실행할 수 있습니다.
# With uv (if virtual environment is activated)
python server.py
# Or run directly with uv
uv run server.pyFastMCP 프레임워크
이 서버는 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 도구를 추가하려면:
API 엔드포인트 URL을 상수로 추가합니다.
@mcp.tool()로 장식된 새로운 함수를 생성합니다.매개변수 및 반환 설명이 포함된 포괄적인 docstring 추가
기존 패턴에 따라 오류 처리를 구현합니다.
예:
@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 라이선스에 따라 라이선스가 부여되었습니다. 자세한 내용은 라이선스 파일을 참조하세요.
지원하다
다음과 관련된 문제:
이 MCP 서버 : 이 저장소에서 문제를 엽니다.
Abstract API : Abstract API 지원팀 에 문의하세요
FastMCP 프레임워크 : FastMCP 설명서 확인
감사의 말
검증 서비스 제공을 위한 추상 API
MCP 서버 프레임워크를 위한 FastMCP
프로토콜 사양을 위한 모델 컨텍스트 프로토콜
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