Skip to content

MCPFax Public-Data Utility API

by mcpscores.com · remote · no sign-in to list tools · v1.0.9 · published by com.mcpscores

One public fact when you have no API key: where, what time, what rate. 31 lookups.

Final · 3Changes · 27

31 tools: 3 do something that can't be undone, 27 change things and 1 only read.

Scanned Oct 21, 2026

7 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http public-data-api https://mcpfax-utility.bowling-anthony.workers.dev/mcp

Findings

Matches of fixed checks, with the text they matched.

7 warn
  • Warnv1_zip

    The server marks "v1_zip" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The input takes a statement or command to run (input.code), which can change anything it can reach.

    What this check looks for
  • Warnv1_fx

    The server marks "v1_fx" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The input addresses people (input.to): what it sends cannot be taken back.

    What this check looks for
  • The server marks "v1_inflation" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The input addresses people (input.to): what it sends cannot be taken back.

    What this check looks for
  • The server marks "v1_icd10" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The input takes a statement or command to run (input.code), which can change anything it can reach.

    What this check looks for
  • The server marks "v1_naics" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The input takes a statement or command to run (input.code), which can change anything it can reach.

    What this check looks for
  • The server marks "v1_drug_label" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "v1_drug_label" says "label": a word for a change.

    What this check looks for
Show 1 more finding
  • The server marks "v1_unit_convert" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "v1_unit_convert" says "convert": a word for a change.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

31 tools

Can't be undone 3Claude Code: ask
  • v1_fxCurrency exchange rates: Reference FX rates (ECB) with optional amount conversion.1 finding

    Why it is in this group

    • The input addresses people (input.to): what it sends cannot be taken back.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "v1_fx" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The input addresses people (input.to): what it sends cannot be taken back.

      What this check looks for
    Description, as the server wrote it
    Currency exchange rates: Reference FX rates (ECB) with optional amount conversion. Source: Frankfurter (ECB) / open.er-api. $0.005 per call · GET /v1/fx

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • v1_inflationInflation calculator: Adjust an amount between years using CPI (any country, not just US).1 finding

    Why it is in this group

    • The input addresses people (input.to): what it sends cannot be taken back.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "v1_inflation" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The input addresses people (input.to): what it sends cannot be taken back.

      What this check looks for
    Description, as the server wrote it
    Inflation calculator: Adjust an amount between years using CPI (any country, not just US). Source: World Bank CPI. $0.008 per call · GET /v1/inflation

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • v1_unit_convertUnit conversion: Convert between units (length, mass, volume, speed, area, data, time, pressure, energy, temperature, angle).1 finding

    Why it is in this group

    • The name "v1_unit_convert" says "convert": a word for a change.
    • The input addresses people (input.to): what it sends cannot be taken back.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "v1_unit_convert" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "v1_unit_convert" says "convert": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Unit conversion: Convert between units (length, mass, volume, speed, area, data, time, pressure, energy, temperature, angle). Source: deterministic edge compute. $0.005 per call · GET /v1/unit-convert

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
Changes things 27Claude Code: ask
  • v1_air_qualityAir quality: US & European AQI plus pollutant concentrations by coordinate.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
    Air quality: US & European AQI plus pollutant concentrations by coordinate. Source: Open-Meteo Air Quality (CAMS). $0.005 per call · GET /v1/air-quality

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • v1_airports_nearestNearest airports: Coordinates → nearest airports (IATA/ICAO) by distance.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
    Nearest airports: Coordinates → nearest airports (IATA/ICAO) by distance. Source: OurAirports (edge dataset). $0.008 per call · GET /v1/airports/nearest

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • v1_business_daysBusiness-day math: Count business days in a range, or add/subtract N business days, skipping weekends & holidays.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
    Business-day math: Count business days in a range, or add/subtract N business days, skipping weekends & holidays. Source: computed + Nager.Date. $0.005 per call · GET /v1/business-days

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • v1_cfrCFR legal text: Fetch current Code of Federal Regulations text for a citation.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
    CFR legal text: Fetch current Code of Federal Regulations text for a citation. Source: eCFR (GovInfo). $0.01 per call · GET /v1/cfr

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • v1_countryCountry metadata: Name/ISO code → currency, capital, calling code, languages, flag.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
    Country metadata: Name/ISO code → currency, capital, calling code, languages, flag. Source: ISO 3166 (edge dataset). $0.005 per call · GET /v1/country

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • v1_crypto_priceCrypto spot price: Spot price for a crypto asset in a fiat/crypto quote currency.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
    Crypto spot price: Spot price for a crypto asset in a fiat/crypto quote currency. Source: Coinbase / CoinGecko. $0.005 per call · GET /v1/crypto-price

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • v1_dnsDNS lookup: Resolve DNS records via DNS-over-HTTPS.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
    DNS lookup: Resolve DNS records via DNS-over-HTTPS. Source: Google / Cloudflare DoH. $0.005 per call · GET /v1/dns

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • v1_drug_labelFDA drug label: openFDA structured drug labeling (uses, warnings, dosage).1 finding

    Why it is in this group

    • The name "v1_drug_label" says "label": 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 "v1_drug_label" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "v1_drug_label" says "label": a word for a change.

      What this check looks for
    Description, as the server wrote it
    FDA drug label: openFDA structured drug labeling (uses, warnings, dosage). Source: openFDA. $0.01 per call · GET /v1/drug-label

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • v1_econ_indicatorEconomic indicator: World Bank indicator time series for a country (GDP, unemployment, etc.).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
    Economic indicator: World Bank indicator time series for a country (GDP, unemployment, etc.). Source: World Bank Open Data. $0.008 per call · GET /v1/econ-indicator

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • v1_geocodeForward geocoding: Place name → coordinates, country, timezone.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
    Forward geocoding: Place name → coordinates, country, timezone. Source: Open-Meteo / Nominatim. $0.005 per call · GET /v1/geocode

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • v1_holidaysPublic holidays: Public holidays for a country & year.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
    Public holidays: Public holidays for a country & year. Source: Nager.Date. $0.005 per call · GET /v1/holidays

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • v1_icd10ICD-10-CM search: Search ICD-10-CM diagnosis codes by term or code.1 finding

    Why it is in this group

    • The input takes a statement or command to run (input.code), which can change anything it can reach.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "v1_icd10" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The input takes a statement or command to run (input.code), which can change anything it can reach.

      What this check looks for
    Description, as the server wrote it
    ICD-10-CM search: Search ICD-10-CM diagnosis codes by term or code. Source: NLM Clinical Tables. $0.008 per call · GET /v1/icd10

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • v1_ip_geolocationIP geolocation: IP address → location, ASN, ISP.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
    IP geolocation: IP address → location, ASN, ISP. Source: ipwho.is / ip-api. $0.005 per call · GET /v1/ip-geolocation

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • v1_leiLEI lookup: Legal Entity Identifier record by LEI code or entity name.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
    LEI lookup: Legal Entity Identifier record by LEI code or entity name. Source: GLEIF. $0.008 per call · GET /v1/lei

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • v1_naicsNAICS lookup: Official 2022 NAICS code → title, hierarchy, children; or keyword search.1 finding

    Why it is in this group

    • The input takes a statement or command to run (input.code), which can change anything it can reach.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "v1_naics" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The input takes a statement or command to run (input.code), which can change anything it can reach.

      What this check looks for
    Description, as the server wrote it
    NAICS lookup: Official 2022 NAICS code → title, hierarchy, children; or keyword search. Source: U.S. Census 2022 NAICS (edge dataset). $0.008 per call · GET /v1/naics

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • v1_rdapRDAP whois: Structured domain/IP registration data (modern whois).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
    RDAP whois: Structured domain/IP registration data (modern whois). Source: RDAP (rdap.org). $0.005 per call · GET /v1/rdap

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • v1_reverse_geocodeReverse geocoding: Coordinates → nearest address.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
    Reverse geocoding: Coordinates → nearest address. Source: Nominatim / BigDataCloud. $0.005 per call · GET /v1/reverse-geocode

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • v1_robotsrobots.txt / llms.txt: Fetch and parse a site's robots.txt and llms.txt.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
    robots.txt / llms.txt: Fetch and parse a site's robots.txt and llms.txt. Source: direct fetch. $0.005 per call · GET /v1/robots

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • v1_sec_company_factsSEC EDGAR company facts: Company profile + recent filings; or XBRL financial facts for a concept.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
    SEC EDGAR company facts: Company profile + recent filings; or XBRL financial facts for a concept. Source: SEC EDGAR. $0.01 per call · GET /v1/sec-company-facts

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • v1_stock_quoteStock quote: Delayed quote & key stats for an equity/ETF/index.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
    Stock quote: Delayed quote & key stats for an equity/ETF/index. Source: Yahoo Finance. $0.005 per call · GET /v1/stock-quote

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • v1_sunSunrise / sunset: Sunrise, sunset, solar noon, day length by coordinate.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
    Sunrise / sunset: Sunrise, sunset, solar noon, day length by coordinate. Source: sunrise-sunset.org / Open-Meteo. $0.005 per call · GET /v1/sun

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • v1_timezoneTimezone by coordinate: Coordinates → IANA timezone, UTC offset, local time.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
    Timezone by coordinate: Coordinates → IANA timezone, UTC offset, local time. Source: Open-Meteo. $0.005 per call · GET /v1/timezone

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • v1_vin_decodeVIN decode: Decode a US-market Vehicle Identification Number.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
    VIN decode: Decode a US-market Vehicle Identification Number. Source: NHTSA vPIC. $0.01 per call · GET /v1/vin-decode

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • v1_weatherWeather forecast: Current conditions, the next 12 hours with rain probability, a multi-day forecast, and a plain answer to "will it rain".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
    Weather forecast: Current conditions, the next 12 hours with rain probability, a multi-day forecast, and a plain answer to "will it rain". Source: Open-Meteo / NWS. $0.005 per call · GET /v1/weather

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • v1_weather_alertsActive weather alerts: Active NWS watches/warnings for a US coordinate.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
    Active weather alerts: Active NWS watches/warnings for a US coordinate. Source: US National Weather Service. $0.008 per call · GET /v1/weather-alerts

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • v1_wikipediaWikipedia summary: Lead summary/extract for a Wikipedia page.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
    Wikipedia summary: Lead summary/extract for a Wikipedia page. Source: Wikipedia REST. $0.005 per call · GET /v1/wikipedia

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • v1_zipPostal code lookup: ZIP/postal code → place(s) & coordinates.1 finding

    Why it is in this group

    • The input takes a statement or command to run (input.code), which can change anything it can reach.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "v1_zip" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The input takes a statement or command to run (input.code), which can change anything it can reach.

      What this check looks for
    Description, as the server wrote it
    Postal code lookup: ZIP/postal code → place(s) & coordinates. Source: Zippopotam.us. $0.005 per call · GET /v1/zip

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
Only reads 1Claude Code: allow
  • v1_validate_emailEmail validation: Syntax check + live MX/deliverability + disposable-domain flag.No findings

    Why it is in this group

    • The name "v1_validate_email" says "validate": a word for reading.
    Description, as the server wrote it
    Email validation: Syntax check + live MX/deliverability + disposable-domain flag. Source: edge compute + DoH. $0.005 per call · GET /v1/validate-email

    Annotations the server declares

    • 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.0.9. Values in angle brackets are yours to fill in.

claude mcp add --transport http public-data-api https://mcpfax-utility.bowling-anthony.workers.dev/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__public-data-api__v1_validate_email"
    ],
    "ask": [
      "mcp__public-data-api__v1_geocode",
      "mcp__public-data-api__v1_reverse_geocode",
      "mcp__public-data-api__v1_timezone",
      "mcp__public-data-api__v1_zip",
      "mcp__public-data-api__v1_airports_nearest",
      "mcp__public-data-api__v1_ip_geolocation",
      "mcp__public-data-api__v1_country",
      "mcp__public-data-api__v1_weather",
      "mcp__public-data-api__v1_weather_alerts",
      "mcp__public-data-api__v1_air_quality",
      "mcp__public-data-api__v1_sun",
      "mcp__public-data-api__v1_holidays",
      "mcp__public-data-api__v1_business_days",
      "mcp__public-data-api__v1_fx",
      "mcp__public-data-api__v1_crypto_price",
      "mcp__public-data-api__v1_stock_quote",
      "mcp__public-data-api__v1_sec_company_facts",
      "mcp__public-data-api__v1_inflation",
      "mcp__public-data-api__v1_econ_indicator",
      "mcp__public-data-api__v1_lei",
      "mcp__public-data-api__v1_vin_decode",
      "mcp__public-data-api__v1_icd10",
      "mcp__public-data-api__v1_naics",
      "mcp__public-data-api__v1_cfr",
      "mcp__public-data-api__v1_drug_label",
      "mcp__public-data-api__v1_wikipedia",
      "mcp__public-data-api__v1_unit_convert",
      "mcp__public-data-api__v1_dns",
      "mcp__public-data-api__v1_rdap",
      "mcp__public-data-api__v1_robots"
    ],
    "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 public-data-api. Review it before you use it.