Abstract API MCP by usefulapi
by usefulapi.io · remote · no sign-in to list tools · v1.3.3 · published by io.usefulapi
Validate emails, phones, IBAN, VAT; look up IPs and companies; rates, holidays, time via Abstract.
14 tools: 4 change things and 10 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things4Claude Code: ask: see these tools
- Only reads10Claude Code: allow: see these tools
2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http abstract-api https://abstract-api.usefulapi.io/mcpFindings
Matches of fixed checks, with the text they matched.
The server marks "abstractapi_convert_currency" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "abstractapi_convert_currency" says "convert": a word for a change.
The server marks "abstractapi_convert_time" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "abstractapi_convert_time" says "convert": a word for a change.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
14 tools
Changes things 4Claude Code: ask
abstractapi_calculate_vatWork out the VAT-compliant price for an amount in a country: the amounts without and with VAT, the VAT amount and the rate.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Work out the VAT-compliant price for an amount in a country: the amounts without and with VAT, the VAT amount and the rate. Set is_vat_incl to true for the reverse calculation (the amount already contains VAT). VAT Validation API. Spends 1 credit of your VAT Validation plan per request (a failed request counts too); needs the VAT Validation API key.
Annotations the server declares
- title: Calculate VAT
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
abstractapi_convert_currencyConvert an amount from a base currency to one target currency, at the latest rate or at the rate of a past date.1 finding
Why it is in this group
- The name "abstractapi_convert_currency" says "convert": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "abstractapi_convert_currency" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "abstractapi_convert_currency" says "convert": a word for a change.
Description, as the server wrote it Convert an amount from a base currency to one target currency, at the latest rate or at the rate of a past date. Exchange Rates API. Spends 1 credit of your Exchange Rates plan per request (a failed request counts too); needs the Exchange Rates API key.
Annotations the server declares
- title: Convert currency
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
abstractapi_convert_timeConvert a date and time from one location to another (places, coordinates or IP addresses).1 finding
Why it is in this group
- The name "abstractapi_convert_time" says "convert": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "abstractapi_convert_time" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "abstractapi_convert_time" says "convert": a word for a change.
Description, as the server wrote it Convert a date and time from one location to another (places, coordinates or IP addresses). Without base_datetime the current time is converted. Timezone API. Spends 1 credit of your Timezone plan per request (a failed request counts too); needs the Timezone API key.
Annotations the server declares
- title: Convert time between locations
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
abstractapi_enrich_companyFirmographic data for a company web domain: name, description, logo, address, industry (SIC/NAICS), employee and revenue ranges, contacts, social profiles, technologies.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Firmographic data for a company web domain: name, description, logo, address, industry (SIC/NAICS), employee and revenue ranges, contacts, social profiles, technologies. Company Enrichment API. Spends 1 credit of your Company Enrichment plan per request (a failed request counts too); needs the Company Enrichment API key.
Annotations the server declares
- title: Enrich company
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
Only reads 10Claude Code: allow
abstractapi_get_current_timeThe current local date, time and timezone (name, abbreviation, GMT offset, daylight saving) of a place, coordinates or IP address.No findings
Why it is in this group
- The name "abstractapi_get_current_time" says "get": a word for reading.
Description, as the server wrote it The current local date, time and timezone (name, abbreviation, GMT offset, daylight saving) of a place, coordinates or IP address. Timezone API. Spends 1 credit of your Timezone plan per request (a failed request counts too); needs the Timezone API key.
Annotations the server declares
- title: Get current time
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
abstractapi_get_exchange_ratesLatest foreign-exchange and cryptocurrency rates for a base currency against one or more targets (all supported currencies if none is given).No findings
Why it is in this group
- The name "abstractapi_get_exchange_rates" says "get": a word for reading.
Description, as the server wrote it Latest foreign-exchange and cryptocurrency rates for a base currency against one or more targets (all supported currencies if none is given). Exchange Rates API. Spends 1 credit of your Exchange Rates plan per request (a failed request counts too); needs the Exchange Rates API key.
Annotations the server declares
- title: Get exchange rates
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
abstractapi_get_historical_ratesExchange rates of a base currency on a past date.No findings
Why it is in this group
- The name "abstractapi_get_historical_rates" says "get": a word for reading.
Description, as the server wrote it Exchange rates of a base currency on a past date. Abstract lists this endpoint as closed beta: a key may be refused (HTTP 401/403) until Abstract enables it. Exchange Rates API. Spends 1 credit of your Exchange Rates plan per request (a failed request counts too); needs the Exchange Rates API key.
Annotations the server declares
- title: Get historical exchange rates
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
abstractapi_get_holidaysPublic, local and religious holidays of a country for a date, a month or a year.No findings
Why it is in this group
- The name "abstractapi_get_holidays" says "get": a word for reading.
Description, as the server wrote it Public, local and religious holidays of a country for a date, a month or a year. Free Abstract plans require year, month and day together; paid plans default missing values to today. Public Holidays API. Spends 1 credit of your Public Holidays plan per request (a failed request counts too); needs the Public Holidays API key.
Annotations the server declares
- title: Get public holidays
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
abstractapi_list_vat_ratesThe latest VAT rates of one country: the standard rate and each reduced-rate category with its description.No findings
Why it is in this group
- The name "abstractapi_list_vat_rates" says "list": a word for reading.
Description, as the server wrote it The latest VAT rates of one country: the standard rate and each reduced-rate category with its description. VAT Validation API. Abstract answers this endpoint without checking the key and may not count it as a credit; this tool still needs the VAT API key.
Annotations the server declares
- title: List VAT rates
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
abstractapi_lookup_ipGeolocation and security intelligence for one IPv4 or IPv6 address: VPN/proxy/Tor/hosting/abuse flags, ASN, company, location, timezone, flag and currency.No findings
Why it is in this group
- The name "abstractapi_lookup_ip" says "lookup": a word for reading.
Description, as the server wrote it Geolocation and security intelligence for one IPv4 or IPv6 address: VPN/proxy/Tor/hosting/abuse flags, ASN, company, location, timezone, flag and currency. IP Intelligence API. An explicit ip_address is required (without one Abstract would look up the caller's own address, which here is this server's). Spends 1 credit of your IP Intelligence plan per request (a failed request counts too); needs the IP Intelligence API key.
Annotations the server declares
- title: Look up IP address
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
abstractapi_lookup_phoneValidate and enrich one phone number: format, carrier, line type (mobile, landline, VoIP), location, line status, risk and known breaches.No findings
Why it is in this group
- The name "abstractapi_lookup_phone" says "lookup": a word for reading.
Description, as the server wrote it Validate and enrich one phone number: format, carrier, line type (mobile, landline, VoIP), location, line status, risk and known breaches. Phone Intelligence API. Spends 1 credit of your Phone Intelligence plan per request (a failed request counts too); needs the Phone Intelligence API key.
Annotations the server declares
- title: Look up phone number
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
abstractapi_validate_emailCheck one email address: deliverability (format, MX, SMTP), quality score, free/disposable/role/catch-all flags, sender details and known data breaches.No findings
Why it is in this group
- The name "abstractapi_validate_email" says "validate": a word for reading.
Description, as the server wrote it Check one email address: deliverability (format, MX, SMTP), quality score, free/disposable/role/catch-all flags, sender details and known data breaches. Email Reputation API. Spends 1 credit of your Email Reputation plan per request (a failed request counts too); needs the Email Reputation API key.
Annotations the server declares
- title: Validate email
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
abstractapi_validate_ibanCheck the structure and check digits of one International Bank Account Number.No findings
Why it is in this group
- The name "abstractapi_validate_iban" says "validate": a word for reading.
Description, as the server wrote it Check the structure and check digits of one International Bank Account Number. It does not prove that the account exists. IBAN Validation API. Spends 1 credit of your IBAN Validation plan per request (a failed request counts too); needs the IBAN Validation API key.
Annotations the server declares
- title: Validate IBAN
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
abstractapi_validate_vatCheck whether a VAT number is valid and, if it is, return the registered company name and address.No findings
Why it is in this group
- The name "abstractapi_validate_vat" says "validate": a word for reading.
Description, as the server wrote it Check whether a VAT number is valid and, if it is, return the registered company name and address. VAT Validation API. Spends 1 credit of your VAT Validation plan per request (a failed request counts too); needs the VAT Validation API key.
Annotations the server declares
- title: Validate VAT number
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.3.3. Values in angle brackets are yours to fill in.
claude mcp add --transport http abstract-api https://abstract-api.usefulapi.io/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__abstract-api__abstractapi_validate_email",
"mcp__abstract-api__abstractapi_lookup_phone",
"mcp__abstract-api__abstractapi_lookup_ip",
"mcp__abstract-api__abstractapi_validate_iban",
"mcp__abstract-api__abstractapi_validate_vat",
"mcp__abstract-api__abstractapi_list_vat_rates",
"mcp__abstract-api__abstractapi_get_exchange_rates",
"mcp__abstract-api__abstractapi_get_historical_rates",
"mcp__abstract-api__abstractapi_get_holidays",
"mcp__abstract-api__abstractapi_get_current_time"
],
"ask": [
"mcp__abstract-api__abstractapi_enrich_company",
"mcp__abstract-api__abstractapi_calculate_vat",
"mcp__abstract-api__abstractapi_convert_currency",
"mcp__abstract-api__abstractapi_convert_time"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as abstract-api. Review it before you use it.