APIFreaks MCP server
APIFreaks MCP: live APIs for agents. Enable modules with ENABLE_MODULES; discover via list_modules.
0 stars123 downloads/wk
Reviews
Write oneNobody has reviewed APIFreaks MCP yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
APIFreaks MCP tools (100, 8 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
astronomy_lookupGet astronomy data for a location and date: sunrise/sunset, moon phase, twilight, golden/blue hour, solar noon, moonrise/moonset, and sun/moon position metrics. Provide one of: ip, location, or lat+long. At least one is required. Date format: YYYY-MM-DD (past or future), defaulting to today.
commodity_fluctuationGet start price, end price, absolute change, and percentage change for commodities over a custom date range. Values are rounded to 2 decimal places. There is no limit on range length. start_date must not be after end_date. For symbols with updateInterval PER_MONTH, fluctuation is computed between the first day of the start month and the first day of the end month.
commodity_historical_ratesGet OHLC (open, high, low, close) prices for commodities on a specific date, from January 1990 onwards. If a symbol has no rate on the requested date, the API falls back to the last available rate before it and returns that earlier date on the rate object. Symbols with updateInterval PER_MONTH only have a closing price \u2014 open, high, and low come back as 0.
commodity_latest_ratesGet the latest prices for one or more commodities, with unit and currency metadata. An optional quote parameter converts prices into a target currency. If quote conversion is temporarily unavailable, rates stay in each commodity's default currency and a warning is returned.
commodity_quotesList all supported commodity quote currencies with symbol and currency name. Use before 'commodity_latest_rates' when converting prices into a target quote currency.
commodity_symbol_infoValidate a commodity symbol and return its full metadata, including updateInterval (the symbol's own refresh cadence: PER_SECOND, PER_MINUTE, PER_10_MINUTES, PER_HOUR, PER_DAY, PER_WEEK, or PER_MONTH), plus name, category, status, currency, unit, and optional exchange/deprecationDate. Use this instead of 'commodity_symbols' when you already have a symbol. If status is 'inactive', latest rates are
commodity_symbolsList all 245+ supported commodity symbols across metals, energy, agriculture, industrial, raw materials, oils and meals, textiles, meats, poultry, and livestock. Each entry includes symbol, name, category, pricing currency, unit, status, and updateInterval (PER_SECOND, PER_MINUTE, PER_10_MINUTES, PER_HOUR, PER_DAY, PER_WEEK, or PER_MONTH \u2014 the symbol's own refresh cadence). Deprecated symbols
commodity_time_seriesGet daily OHLC (open, high, low, close) prices for commodities over a date range of up to 365 days. The response is a date-indexed map; non-trading days are excluded. A symbol counts as resolved if it appears on at least one date. Symbols with updateInterval PER_MONTH only have a closing price \u2014 open, high, and low come back as 0.
currency_fluctuationRetrieve exchange rate fluctuation metrics for currencies over a date range. For each requested currency returns: startRate, endRate, absolute change, and percent change. Useful for volatility analysis and comparing currency movements. startDate is required; endDate defaults to yesterday if omitted.
currency_geo_convertConvert an amount from a given currency to the local currency of an IP address's location. Returns the detected target currency, exchange rate, and converted amount. Useful for e-commerce checkout localization. Supports IPv4 and IPv6.
currency_historical_converterConvert an amount from one currency to another using exchange rates from a specific past date. Useful for financial auditing, tax reporting, and invoice reconciliation. Returns the exchange rate on that date, the given amount, and the converted amount.
currency_historical_data_limit_infoLook up the historical data availability window for one currency symbol. Use this instead of 'currency_historical_data_limits' when you already have a symbol and just need its date range.
currency_historical_data_limitsGet a map of currency codes to the date range when historical exchange-rate data is available (YYYY-MM-DD to YYYY-MM-DD). Covers fiat, crypto, and precious metals.
currency_historical_ratesRetrieve historical exchange rates for a specific past date. Supports 170+ fiat currencies and 830+ cryptocurrencies with data going back 40+ years.
currency_latest_converterConvert an amount from one currency to another using the latest exchange rates. Supports 170+ fiat currencies and 800+ cryptocurrencies. Returns the exchange rate used, the given amount, and the converted amount.
currency_latest_ratesRetrieve the latest exchange rates for 170+ fiat currencies and 830+ cryptocurrencies. Returns a 'rates' dictionary mapping currency codes to their rate relative to the base. Filter to specific symbols to reduce response size.
currency_supportedGet the supported currencies map. Each entry includes code, name, country data, status, availability dates, and icon. Covers 170+ fiat currencies and 830+ cryptocurrencies.
currency_symbol_infoValidate a currency symbol and return its full name. Use this instead of 'currency_symbols' when you already have a symbol and just need to confirm it's valid or get its display name.
currency_symbolsGet a map of supported currency symbols to currency names.
currency_time_seriesRetrieve historical exchange rates day-by-day across a custom date range. Returns a 'historicalRatesList' array where each entry has a date and a 'rates' dictionary. Useful for charting currency trends and analyzing multi-day rate movements. startDate is required; endDate defaults to yesterday if omitted. Max interval supported is 1 year.
dns_bulk_lookupRetrieve real-time DNS records for up to 100 hostnames at once. Supports A, AAAA, MX, NS, SOA, SPF, TXT, and CNAME record types. The response is an array under 'bulk_dns_info'. If a single hostname fails its entry has status=false while the rest are still returned.
dns_historyRetrieve historical DNS records for a hostname. Returns paginated snapshots of DNS records captured over time, up to 100 per page. Supports A, AAAA, MX, NS, SOA, SPF, TXT, and CNAME record types.
dns_lookupRetrieve real-time DNS records for a hostname or IP address. Supports A, AAAA, MX, NS, SOA, SPF, TXT, and CNAME record types. At least one of host_name or ip_address must be provided. When ip_address is provided, record_types must be ['all'].
dns_reverseFind all hostnames associated with a specific DNS record value. Supports reverse IP lookup (all domains on an IP/CIDR), reverse MX lookup (all domains using a mail provider), reverse NS lookup (all domains on a name server), and more. Wildcard patterns using '*' are supported for MX, NS, SOA, SPF, TXT, CNAME. Results are paginated at up to 100 DNS records per page.
domain_bulk_check_availabilityCheck domain name availability for up to 100 domains at once. Returns a 'bulk_domain_availability_response' array one result per input domain. Each result includes 'domain', 'domainAvailability' (true/false), and 'status' (true if the check succeeded). Always verify 'status' before trusting 'domainAvailability'.
domain_check_availabilityCheck whether a single domain name is available for registration. Returns a boolean 'domainAvailability' field. Use source='whois' for a more authoritative check, source='dns' for a faster one.
domain_check_availability_with_suggestionsCheck domain name availability and receive alternative domain name suggestions across different TLDs and SLDs if the domain is taken. Returns a 'domain_available_response' array with availability status for the queried domain plus the requested number of suggestions (up to 100).
domain_reputation_lookupdomain_subdomain_lookupList subdomains discovered for a domain, with first-seen and last-seen dates. Results are paginated at 100 subdomains per page. The response includes 'domain', 'status', 'current_page', 'total_pages', 'total_records', and a 'subdomains' array. Each subdomain object has 'subdomain' and 'last_seen'; 'first_seen' can be absent, and 'inactive_from' appears only on inactive records. Defaults to status=
domain_typosquatting_lookupemail_bulk_validatewrite actionValidate up to 10 email addresses in one request. Each address is checked independently, so one failure does not drop the rest of the batch. The response is 'emailResponse': an array of the same per-email result as 'email_validate'.
email_validatewrite actionfinancial_iban_validateValidate an IBAN against country-specific format, length, and checksum rules. Returns whether it is valid (false is still HTTP 200, not an error), the submitted IBAN, per-check flags, an optional BBAN checksum (unknown means that country does not support BBAN checks), and bank/SEPA metadata \u2014 BIC, bank name, codes, country, city, address, account, and SEPA eligibility. Most bank fields are nu
financial_supported_countriesGet the countries (and, for VAT, some states) supported by the VAT, IBAN, and SWIFT APIs. Returns three arrays: VAT entries as single-key objects keyed by lowercase underscore names (each with a code and, for a few countries, nested states), plus IBAN and SWIFT lists of country name and ISO code. Pass kind to return only that category. If you already have a country name or code, prefer 'financial_
financial_supported_country_infoLook up whether a country is supported by the VAT, IBAN, and/or SWIFT APIs. A match returns the query plus whichever of vat, iban, and swift hit (VAT: name plus code and optional states; IBAN/SWIFT: name and country code). A miss is plain text pointing at 'financial_supported_countries'. Use this instead of the list tool when you already have a country name or code.
financial_swift_finderProgressively drill down from supported countries to a bank's SWIFT/BIC codes. Returns a JSON array of strings: country names with no parameters, bank names with country, cities with country + bank, or SWIFT/BIC codes with country + bank + city. Parameters must be supplied in that order or the API returns 400. An unmatched combination returns 200 with an empty array, not an error. Country is a ful
financial_swift_lookupLook up an 8- or 11-character SWIFT/BIC code and return one bank record: the code itself (8-character input is padded to 11 with XXX), bank name, the 4-character bank prefix, branch address, city, country name, and ISO country code. Headquarters and branch codes are both supported. Wrong length returns 400; an unknown code returns 404. If you do not have a code, use 'financial_swift_finder' to dri
financial_vat_rates_bulkGet VAT rates for up to 100 countries or country/state combinations in one request. Returns a JSON array of the same rate objects as 'financial_vat_rates_by_country' (decimal standard_rate, optional reduced/category rates), in request order. Invalid country/state entries are omitted, so the array can be shorter than the request. A missing/malformed body returns 400; a payload over the size limit r
financial_vat_rates_by_countryGet VAT rates for one country, including standard, reduced, and super-reduced rates where published. Returns a JSON array of one rate object: country, tax type, currency, and standard_rate as a decimal (0.19 = 19%). EU/UK may also include reduced, super-reduced, parking, and category rates. State-level entries include state; currency may be an empty string. Covers EU and major global jurisdictions
financial_vat_rates_by_ipGet VAT rates for the country resolved from an IP address. Returns a JSON array of one rate object (same shape as 'financial_vat_rates_by_country', including state when the IP maps to sub-national tax). Rates are decimals (0.20 = 20%). Supports IPv4 and IPv6. If ip_address is omitted, the API uses the originating request IP \u2014 from this MCP server that is the server's egress address, not the e
financial_vat_validateValidate an EU VAT number against VIES or a UK VAT number against HMRC. Returns the country prefix, the number without prefix, a timestamp, validity plus the consultation authority, and company name/address (may be empty strings). Pass requester_vat_number to also get a consultation number for audit. Unsupported prefix returns 400; an unregistered number returns 404.
geocode_forwardConvert a free-form address, place name, landmark, or business name into WGS84 coordinates. Returns a JSON array of matches (default 1, max 40), each with coordinates, address components (street, postcode, city, state, country), a bounding box [lat_min, lat_max, lon_min, lon_max], and optional points of interest. Pass all four of min_lat, max_lat, min_lon, and max_lon together to bias results towa
geocode_reverseTurn WGS84 coordinates into the nearest street address. A single request returns one result: the closest match, with address components, a bounding box, and nearby points of interest. lat is -90 to 90; lon is -180 to 180. Optional accept_language localizes names (default English). Out-of-range or missing coordinates return 400; no match returns 404.
geodb_admin_levelsList the administrative level types defined for a country (e.g. state, district, province, outlying area). Returns an 'admin_levels' array of strings. Use those names with 'geodb_admin_units' via admin_level. A valid two-letter country code is required; invalid codes return 400 and countries without published admin levels return 404.
geodb_admin_unit_detailsGet details for one administrative unit identified by country code and admin unit code. Returns name, admin_code, admin_iso3166_2, admin_level, country_iso3166_2, and country_name. admin_iso3166_2 can be absent for some units. Both country and admin_unit are required; invalid combinations return 400, unmatched combinations return 404. Use 'geodb_admin_units' to find a valid admin_unit code.
geodb_admin_unitsList administrative units (states, provinces, governorates, districts) for a country. Returns an 'admin_units' array; each item has name, admin_code, and admin_level. Optionally filter by one or more levels with a comma-separated admin_level list. A level name that matches nothing returns 200 with an empty admin_units array, not an error. Countries without published admin units return 404. Use 'ge
geodb_citiesList all cities for a country. Returns a 'cities' array; each item has name, latitude, longitude, iso_alpha_2, and a nested admin_unit object (name, admin_code, admin_level). Optionally filter by admin_unit code. There is no pagination: large countries return every city in one response, which can be very large. Prefer filtering with admin_unit (from 'geodb_admin_units') when you only need one subd
geodb_countriesList 250 countries and territories. Returns a 'countries' array; each item has name, iso_alpha_2, iso_alpha_3, iso_numeric, capital, region, and subregion. Optionally filter by region or subregion name. capital, region, and subregion are empty strings (not omitted) for a handful of uninhabited or dependent territories with no assigned value \u2014 e.g. Bouvet Island and Heard Island and McDonald I
geodb_country_detailsGet metadata for one country by ISO 3166-1 alpha-2 code. Returns name, iso_alpha_2, iso_alpha_3, iso_numeric, phone_code, capital, top_level_domain, native_name, region, subregion, nationality, flag_emoji, currency_code, currency_name, and currency_symbol. capital, region, and subregion are empty strings for the same uninhabited/dependent territories as 'geodb_countries'; every other field, includ
geodb_flagRetrieve a country or international-organization flag image. Requires name, type ('country' or 'organization'), and shape ('flat' or 'round'). For country flags, name is an ISO 3166-1 alpha-2 code. For organization flags, name is case-sensitive and must exactly match an entry from 'geodb_flags_supported' (e.g. NATO, European_Union, United_Nations) \u2014 lowercase or abbreviated forms return 404.
geodb_flags_supportedList country and international-organization flags supported by 'geodb_flag'. Returns 'supported_countries' (238 entries of name, iso2, iso3 \u2014 not iso_alpha_2) and 'supported_organizations' (22 case-sensitive identifier strings such as United_Nations, NATO, European_Union). Organization identifiers must be passed to 'geodb_flag' exactly as listed here, including underscores and capitalization.
geodb_regionsList the geographical regions supported by GeoDB. Returns a 'regions' array of exactly 6 names: Africa, Americas, Asia, Europe, Oceania, and Polar. Use a returned name with 'geodb_subregions' to list subregions, or with 'geodb_countries' to filter countries.
geodb_subregionsList subregions within a geographical region, or all subregions across every region when 'region' is omitted. Returns a 'subregions' array of names such as Western Europe, Southern Asia, or Northern America. Use 'geodb_regions' for valid region names. An invalid region name returns 400; a region with no subregions (Polar) returns 404.
ip_security_bulk_lookupIP threat intelligence for up to 50,000 IP addresses in one request. Returns an array of threat scores plus VPN, proxy, Tor, residential proxy, relay, bot, spam, known-attacker, and cloud-provider detection for each IP.
ip_security_lookupIP threat intelligence for a single IP address. Returns a threat score plus VPN, proxy, Tor, residential proxy, relay, bot, spam, known-attacker, and cloud-provider detection.
ipgeolocation_bulk_lookupLook up geolocation data for up to 50,000 IP addresses or hostnames in one request. Returns an array of geolocation objects \u2014 same fields as the single lookup. Individual IP failures include a 'message' field; they don't block other results.
ipgeolocation_lookupLook up geolocation data for an IP address, IPv6 address, or hostname. Returns location, network/ASN, currency, timezone and optionally security, dma_code, hostname, abuse contact, and user-agent data. 'ip' field is required \u2014 pass the IP or hostname to look up.
pdf_compressReduce PDF file size. compression_level is required: low, balanced, high, or extreme.
pdf_decryptwrite actionRemove encryption (open password and restrictions). file_password is required.
pdf_encryptPassword-protect a PDF (AES-256). user_password is required to open the file.
pdf_extract_pagesExtract pages into a new PDF (or one PDF per page as a ZIP when separated is true).
pdf_file_deletewrite actionPermanently delete a stored PDF by file_id. The ID cannot be used again.
pdf_file_statusMetadata for one stored file: name, type, size, created/expiry timestamps. Stored files last up to 30 days depending on plan, unless destroy was used.
pdf_filesList PDFs uploaded or generated for this API key (file ID and name). Organization members cannot call this \u2014 only the organization administrator.
pdf_generateRender an APIFreaks PDF template and return a hosted 'pdf_url' plus created_at and expiration_time. This call is synchronous (no taskId). Provide JSON 'data' or a 'data_url' (one is required). template_id comes from the PDF Template Builder. Pin 'version' (must start with v, e.g. v2) so later edits do not change production output; omit version to use latest. Generation can take up to 100 seconds.
pdf_generate_bulkRender one PDF per CSV row against a template. Returns an array of results with 'pdf_url' per row; one row failing does not stop the rest. Synchronous (no taskId). CSV path must be absolute. CSV must be 10 MB or smaller. Can take up to 100 seconds.
pdf_linearizeRestructure a PDF for Fast Web View (byte-range streaming so it can start displaying before the full file downloads).
pdf_mergeMerge PDF files into one, in the order given. Total upload payload up to 1GB.
pdf_remove_pageswrite actionRemove pages from a PDF.
pdf_restrictApply permission restrictions (print, copy, edit, \u2026). user_password and restrictions are required.
pdf_rotateRotate pages clockwise by 0, 90, 180, 270, or the negative of those.
pdf_splitSplit a PDF into smaller files by page numbers or ranges.
pdf_task_statusOne status check for one async PDF job (the taskId from the job you just started). Returns the API JSON (queued, processing, completed, or failed). This tool does not loop. Show the JSON. If queued or processing, ask the user before calling again. If completed, present a clear download list for the user: use every https://api.apifreaks.com/v1.0/pdf/resource/download URL in the JSON (outputUrls, zi
pdf_to_imageConvert PDF pages to PNG, JPG, TIFF, BMP, or GIF (ZIP of images).
pdf_unrestrictwrite actionRemove usage restrictions while keeping the PDF encrypted. file_password and user_password are required.
pdf_uploadwrite actionNOT a first step before split/merge/compress/convert unless the user explicitly asked to upload first. Same rule as pdf_upload_binary. Those job tools take 'path' and upload the file themselves. Call this when the user wants PDFs stored now so later jobs can pass file_id, or they said to upload first. Multipart; one or more local PDFs. Returns JSON with a 'files' array of fileName and fileId. For
pdf_upload_binarywrite actionNOT a first step before a job unless the user explicitly asked to upload first. Same rule as pdf_upload: for a one-off, pass 'path' on the job tool. Use this only to store one large local PDF as raw bytes for later file_id reuse. file_name must end with .pdf. Returns fileName and fileId (not a files array).
phone_bulk_validateValidate up to 100 phone numbers in one request. Each number is processed independently \u2014 invalid entries return per-number results without affecting the rest of the batch. Each result uses the same structure as 'phone_validate'. Maximum 100 numbers per request. region and dialer_region follow the same rules as the single-number tool and must not be combined on one entry.
phone_validateValidate a single phone number and return carrier, line type, location, time zones, and four standardized formats. Response fields include raw_input, possible, valid, country_prefix, national_number, country_code, location, time_zones, line_type, formats (E164, International, National, RFC3966), area_code_length, ndc_length, and can_be_internationally_dialled. line_type is one of: MOBILE, FIXED_LI
scraper_scrapeScrape a server-rendered page without a browser (POST /v1.0/scraping, jsEnabled omitted). Cheaper than JS rendering \u2014 start here and switch to 'scraper_scrape_js' only if the response is an empty shell. Empty instructions return the full page. Prefer an extract step so the client gets named fields instead of the whole document. Each instruction must set exactly one of: extract, postForm, getF
scraper_scrape_jsscreenshot_bulk_captureCapture screenshots of up to 50 webpages in a single request. Returns a JSON response with per-URL results \u2014 each entry includes the screenshot download URL, fulfillment status, and any error message. If any URL needs a specific element targeted via CSS selector, use web_fetch on that page first to identify the correct selector before calling this tool. Note: `multiple_scrolling` is NOT suppo
screenshot_captureCapture a static screenshot of a webpage and return a JSON response containing the screenshot URL which can be downloaded or shared directly. **Always ask the user before calling this tool:** - Full page or just the visible viewport? - Specific element, or the whole page? (If a specific element is needed, help identify the CSS selector via web_fetch on the target URL first.) - Image format: PNG, J
screenshot_capture_scrollingRecord a scrolling video or animated GIF of a webpage and return a JSON response containing the video download URL. **Always ask the user before calling this tool:** - What format? MP4 (default, best compatibility), WebM (smaller), or GIF (looping animation)? - How long should it scroll \u2014 how many seconds (up to 60)? - Scroll speed: slow, normal, or fast? - Should it scroll back to the top af
ssl_live_chain_lookupRetrieve the complete live SSL certificate chain for a domain. Includes the leaf certificate plus intermediate and root CA certificates when available. Each certificate includes chain order, validity window, subject and issuer details, public key details, key usages, SAN, and PEM output. To retrieve only the end-user certificate, use 'ssl_live_lookup' instead.
ssl_live_lookupRetrieve the live SSL certificate for a domain (end-user/leaf certificate only, no chain). Returns validity dates, serial number, signature algorithm, subject/issuer details, public key info, key usages, Subject Alternative Names, and the PEM-encoded certificate. To retrieve the full certificate chain use 'ssl_live_chain_lookup' instead.
timezone_convertConvert a date/time from one timezone to another. Specify the source and destination timezone each using ONE of: timezone name (tz_from/tz_to), coordinates (lat/long_from + lat/long_to), city address (location_from/location_to), IATA code (iata_from/iata_to), ICAO code (icao_from/icao_to), or UN/LOCODE (locode_from/locode_to).
timezone_lookupLook up timezone information for a location. Accepts one of: IP address, timezone name, city/address, lat/long, IATA code, ICAO code, or UN/LOCODE. At least one input is required \u2014 provide IP if location fields are not provided. Returns current time, UTC offset, DST status, and timezone metadata. Airport/LOCODE inputs also return venue details.
user_agent_bulk_parseParse up to 100 user-agent strings in a single request. Returns an array of parsed objects \u2014 same fields as single parse. Individual parse failures include a 'message' field without blocking other results.
user_agent_parseParse a single user-agent string to extract browser, device, OS, and engine details. Also identifies crawlers/bots and flags potential attack user-agents.
weather_air_qualityGet air quality data either real-time or forecast. Returns PM2.5, PM10, CO, NO\u2082, SO\u2082, ozone, dust, and UV index. Real-time mode also includes AQI summary indices (US & EU); forecast mode returns raw pollutant values only. Omit dates for real-time AQI. Provide 'start_date' and 'end_date' for hourly AQI forecast (max 6 days, current/future dates only). NOTE: Use this tool over 'weather_cur
weather_bulk_currentGet real-time weather for up to 50 locations at once. Each location in the array can be a city name, lat/long pair, or IP address. Returns weather + astronomy data for each location wrapped in a 'bulk' array.
weather_currentGet real-time weather for a location, including temperature, humidity, wind, pressure, air quality (AQI), and astronomy (sunrise/sunset/moon phase). Provide at least one of: 'location', lat+long, or 'ip'.
weather_flood_forecastGet flood forecast data \u2014 river discharge and flow percentiles (mean, median, min/max, p25/p75). Forecast range up to 16 days. Only current or future dates are allowed. Data may be limited for locations far from rivers. Provide at least one of: 'location', lat+long, or 'ip'.
weather_forecastGet weather forecast for up to 16 days with daily, hourly, or minutely precision. Use EITHER 'forecast_days' OR 'start_date'+'end_date' to define the range, not both. Only current or future dates are allowed. Provide at least one of: 'location', lat+long, or 'ip'.
weather_historicalGet historical weather data for a specific past date (back to 1940). Returns daily or hourly weather + astronomy for the given date. Only past dates are allowed \u2014 current or future dates are rejected. Provide at least one of: 'location', lat+long, or 'ip'.
weather_marineGet marine/ocean weather, real-time or forecast, up to 16 days. Returns wave height, swell, wind speed/direction, and sea-surface data. Omit dates for real-time conditions. Provide 'start_date' and 'end_date' for forecast mode (max 16 days, current/future dates only). Coordinates (lat/long) are recommended for offshore/ocean queries since city names resolve to land. Provide at least one of: 'locat
weather_time_seriesGet historical weather data over a date range (time series). Max range: 90 days for daily precision, 7 days for hourly. Only past dates are allowed \u2014 current or future dates are rejected. Data available back to 1940. Provide at least one of: 'location', lat+long, or 'ip'.
whois_domain_lookupRetrieve live WHOIS data for a domain name. Returns registrar details, registrant/admin/technical contacts, name servers, domain status, expiry dates, and raw WHOIS text.
whois_ip_lookupRetrieve live WHOIS ownership and network data for an IPv4 or IPv6 address. Returns network block info, CIDR ranges, organization details, technical/abuse contacts, and raw WHOIS text from the relevant RIR.
Public scan report
scanner v0.1.5 · 2026-09-19 · same rubric, same numbers if you re-run it
- Code scan2 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitystatic API keys via environment variables6/15
- Maintenancelast push 4 days ago15/15
- Maintainer identityregistry namespace matches repository owner7/10
Install directly
Runs npx -y @apifreaks/mcp on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add apifreaks-mcp -- npx -y @apifreaks/mcp
APIFreaks MCP: common questions
- Is APIFreaks MCP server safe?
- Mostly: it is graded B (82/100). Read the APIFreaks MCP safety report
- How do I install APIFreaks MCP?
- It runs on your machine. Copy the Claude Code, Claude Desktop or Cursor config from the install section.
- Does APIFreaks MCP need an API key?
- Yes. The registry entry asks for
APIFREAKS_API_KEY. - Is APIFreaks MCP maintained?
- The last commit was 6 days ago (2026-09-15). The latest release is v2.2.0.