MCP Server for Abstract API with comprehensive tooling for email validation, phone validation, VAT validation, IP geolocation, timezone conversion, holidays, exchange rates, company enrichment, web scraping, and screenshots
The Abstract API MCP server provides 14 tools with consistent naming conventions (all start with action verbs: validate_, get_, convert_, geolocate_, scrape_, take_). Tool descriptions are present and moderately detailed (average ~110 chars), explaining what each tool does. However, there are significant gaps: parameter descriptions are sparse or missing entirely, input schemas lack detailed constraints (no enums, ranges, or format specifications), and output schemas are not documented in the visible code. All tools are READ_ONLY, which is appropriate for an API wrapper, but error handling guidance is absent. The server demonstrates competent naming and basic structure but falls short of production-grade quality due to incomplete schema documentation and minimal parameter guidance.
Convert amount between currencies. Converts a specified amount from one currency to another using current exchange rates.
Convert time between timezones. Converts a datetime from one timezone to another, handling daylight saving time automatically.
Get location data from IP address. Returns comprehensive geolocation data including city, region, country, coordinates, timezone, currency, and ISP information.
Get IP geolocation with security/threat analysis. Analyzes IP address to determine if it's from a VPN, proxy server, tor exit node, or datacenter. Returns full geolocation data along with security information.
Get company information from domain. Retrieves company details including founding year, industry, employee count, location, LinkedIn profile, and logo from a domain name.
Parameter descriptions are missing or minimal. Parameters like 'fields' (in geolocate_ip) have only trivial descriptions ('Comma-separated fields to return') without examples or constraints. LLMs cannot infer valid field names without explicit guidance.
No output schemas are documented in the visible code. The tool definitions show input schemas but no indication of what fields/structure each tool returns. This forces LLMs to guess the response structure and plan incorrectly.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 59 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 57 | - | v1 |
Get current currency exchange rates. Returns live exchange rates for a base currency. If target is specified, returns rates for that specific target currency.
Get public holidays for a country and year. Returns list of public holidays with names, dates, types, and descriptions. Can be filtered by month and/or day.
Get detailed IP information (ISP, ASN, connection details). Provides complete IP information including ISP, autonomous system number, connection type, and network details.
Get timezone from location or coordinates. Returns current time and timezone information for a location or coordinate pair. Either location OR latitude/longitude must be provided.
Scrape content from a website. Extracts text content, links, images, and metadata from a web page.
Take screenshot of a website. Captures a screenshot of a web page at a given URL and returns it as image data.
Validate email address and check deliverability. Checks email format, domain validity, MX records, SMTP validation, and detects disposable/role-based emails.
Validate phone number and get carrier info. Validates phone format, identifies carrier, determines phone type (mobile/landline), and provides location information.
Validate EU VAT numbers. Checks VAT number validity and returns associated company information.
No input validation or constraint documentation. Parameters lack enums, ranges, or format specifications. E.g., 'country' (in get_holidays) accepts a string but does not document that it must be ISO 3166-1 alpha-2 codes. 'month' and 'day' lack range constraints (1-12, 1-31).
No error handling guidance. Descriptions do not explain what errors might occur (e.g., invalid email format, no MX records, rate limits) or what the LLM should do next if a call fails. This leaves agents without recovery strategies.
Optional parameter handling is unclear. Several parameters are nullable (country_code, fields, month, day, target, latitude, longitude) but descriptions do not explain what happens if they are omitted or what the default behavior is.
No pagination or result-limiting documentation. Tools that return lists (e.g., scrape_website returning links/images, get_holidays returning holidays) do not document if results are paginated, truncated, or capped. This risks context window overflow.
Tool composition risks. Several tools return data (e.g., get_company_info returns domain info, geolocate_ip returns location) but it is unclear if those outputs contain IDs or references that downstream tools need. Tool chaining cannot be planned without documented output schemas.
Scrape and screenshot tools lack usage guardrails. No description explains rate limits, robots.txt compliance, timeout behavior, or what constitutes acceptable use. LLMs may call these tools excessively or against sites that prohibit scraping.