{
  "base_url": "https://freightpulsehq.com/api/v1",
  "mcp_endpoint": "POST https://mcp.freightpulsehq.com/mcp",
  "guest_tier": "100 requests/day per IP, no API key required",
  "free_tier": "100 requests/month, 5 requests/minute, no credit card — see the register tool",
  "tools": [
    {
      "name": "get_fuel_prices",
      "method": "GET",
      "path": "/fuel-prices",
      "description": "Latest weekly average US diesel and gasoline prices by PADD region (EIA).",
      "params": []
    },
    {
      "name": "get_freight_rates",
      "method": "GET",
      "path": "/freight-rates",
      "description": "Trucking (ZIP-to-ZIP) or ocean/air quote from a limited set of Asian origins.",
      "params": [
        {
          "name": "mode",
          "required": false,
          "description": "trucking (default), ocean, or air"
        },
        {
          "name": "origin_zip",
          "required": false,
          "description": "5-digit US ZIP — required for mode=trucking"
        },
        {
          "name": "destination_zip",
          "required": false,
          "description": "5-digit US ZIP — required for mode=trucking"
        },
        {
          "name": "origin_country",
          "required": false,
          "description": "ISO country code of the Asian origin — required for mode=ocean/air"
        },
        {
          "name": "dest_zip",
          "required": false,
          "description": "5-digit US ZIP — required for mode=ocean/air"
        }
      ]
    },
    {
      "name": "get_port_congestion",
      "method": "GET",
      "path": "/port-congestion",
      "description": "Port-call activity vs. a 90-day baseline (IMF PortWatch). At least one of port/country/region is required.",
      "params": [
        {
          "name": "port",
          "required": false,
          "description": "Port name"
        },
        {
          "name": "country",
          "required": false,
          "description": "Country name"
        },
        {
          "name": "region",
          "required": false,
          "description": "Region name"
        },
        {
          "name": "congestion",
          "required": false,
          "description": "low, moderate, or high"
        }
      ]
    },
    {
      "name": "get_disruptions",
      "method": "GET",
      "path": "/disruptions",
      "description": "Active natural-hazard disruptions (GDACS/USGS/NOAA). Geopolitics/strikes not covered.",
      "params": [
        {
          "name": "type",
          "required": false,
          "description": "cyclone, earthquake, flood, volcano, drought, wildfire, or severe_weather"
        },
        {
          "name": "severity",
          "required": false,
          "description": "low, moderate, or high"
        },
        {
          "name": "country",
          "required": false,
          "description": "Country name"
        },
        {
          "name": "port",
          "required": false,
          "description": "Port name"
        }
      ]
    },
    {
      "name": "search_carriers",
      "method": "GET",
      "path": "/carriers",
      "description": "US trucking carrier lookup (FMCSA) or ocean NVOCC/OTI lookup (FMC).",
      "params": [
        {
          "name": "q",
          "required": false,
          "description": "Carrier name or DOT/organization number. Required unless type=ocean."
        },
        {
          "name": "type",
          "required": false,
          "description": "trucking (default), ocean, or air (air not implemented yet)"
        }
      ]
    },
    {
      "name": "get_historical_data",
      "method": "GET",
      "path": "/historical",
      "description": "Historical weekly series for fuel prices or curated port-congestion metrics.",
      "params": [
        {
          "name": "metric",
          "required": false,
          "description": "e.g. fuel_price_diesel_national. Default: fuel_price_diesel_national"
        },
        {
          "name": "period",
          "required": false,
          "description": "30d, 90d, or 1y. Ignored if from/to given. Default: 30d"
        },
        {
          "name": "from",
          "required": false,
          "description": "Y-m-d, overrides period"
        },
        {
          "name": "to",
          "required": false,
          "description": "Y-m-d, >= from"
        }
      ]
    },
    {
      "name": "register",
      "method": "POST",
      "path": "/oauth/register + /oauth/token",
      "description": "Self-service API key issuance, no human sign-up.",
      "params": [
        {
          "name": "client_name",
          "required": true,
          "description": "Identifies the calling agent/app"
        },
        {
          "name": "contact_email",
          "required": true,
          "description": "Abuse-contact email, not verified"
        }
      ]
    },
    {
      "name": "account_status",
      "method": "GET",
      "path": "/api/agents/health",
      "description": "Plan, quota, and rate-limit status for the current key.",
      "params": []
    }
  ]
}