{
  "protocolVersion": "1.0",
  "name": "Rainplover",
  "description": "Weather, alerts and earthquakes for AI agents. Send one skill per message as a data part { \"skill\": \"\u003cid>\", \"arguments\": { ... } }; argument schemas are the MCP tools of the same names at https://rainplover.com/mcp. One account works on every agent-first site.",
  "url": "https://rainplover.com/a2a",
  "preferredTransport": "JSONRPC",
  "supportedInterfaces": [
    {
      "url": "https://rainplover.com/a2a",
      "protocolBinding": "JSONRPC",
      "protocolVersion": "1.0"
    }
  ],
  "additionalInterfaces": [
    {
      "url": "https://rainplover.com/a2a",
      "transport": "JSONRPC"
    }
  ],
  "provider": {
    "organization": "API Evangelist",
    "url": "https://rainplover.com"
  },
  "version": "0.1.0",
  "documentationUrl": "https://rainplover.com/developers/",
  "iconUrl": "https://rainplover.com/favicon.svg",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": false,
    "extendedAgentCard": false
  },
  "securitySchemes": {
    "oauth2": {
      "type": "oauth2",
      "description": "OAuth 2.1, authorization code with PKCE and dynamic client registration; the owner approves with a link from their email.",
      "oauth2MetadataUrl": "https://rainplover.com/.well-known/oauth-authorization-server",
      "flows": {
        "authorizationCode": {
          "authorizationUrl": "https://rainplover.com/v1/oauth/authorize",
          "tokenUrl": "https://rainplover.com/v1/oauth/token",
          "scopes": {
            "weather:read": "Call Rainplover forecasts, alerts and earthquakes, and list your alert subscriptions. Calls beyond the free daily allowance spend your prepaid balance.",
            "weather:subscribe": "Create and delete alert subscriptions that push weather alerts and nearby earthquakes to you. Each costs about $0.05 a place a month after the first.",
            "account:read": "See your balance, strikes and settings, turn auto-recharge off, and fetch links for you to manage the account."
          }
        }
      }
    },
    "apiKey": {
      "type": "http",
      "scheme": "bearer",
      "description": "An API key from the create_account skill or POST /v1/accounts, shown once."
    }
  },
  "security": [
    {
      "oauth2": []
    },
    {
      "apiKey": []
    },
    {}
  ],
  "defaultInputModes": [
    "application/json"
  ],
  "defaultOutputModes": [
    "application/json",
    "text/plain"
  ],
  "skills": [
    {
      "id": "get_forecast",
      "name": "Weather forecast",
      "description": "Hourly and daily forecast for anywhere on Earth (MET Norway, CC BY 4.0): temperature, wind, precipitation, cloud, a weather symbol. Give lat/lon or a place name. Show the attribution when you present it.",
      "tags": [
        "weather",
        "account"
      ],
      "examples": [
        "{\"skill\":\"get_forecast\",\"arguments\":{}}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "get_alerts",
      "name": "Active weather alerts (US)",
      "description": "Active warnings, watches and advisories at a point in the United States (National Weather Service). Outside the US returns covered:false.",
      "tags": [
        "weather",
        "account"
      ],
      "examples": [
        "{\"skill\":\"get_alerts\",\"arguments\":{}}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "get_earthquakes",
      "name": "Recent earthquakes nearby",
      "description": "Earthquakes near a point, newest first (USGS): magnitude, place, depth, distance, tsunami flag.",
      "tags": [
        "weather",
        "account"
      ],
      "examples": [
        "{\"skill\":\"get_earthquakes\",\"arguments\":{}}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "find_place",
      "name": "Find a place",
      "description": "Look up a town or city (GeoNames, 15,000+ people) by name, or the nearest one to lat/lon. Free, no key needed.",
      "tags": [
        "weather",
        "public"
      ],
      "examples": [
        "{\"skill\":\"find_place\",\"arguments\":{}}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "subscribe_alerts",
      "name": "Push alerts for a place",
      "description": "Watch a place: new US weather alerts and nearby earthquakes are pushed to a URL, a Hookpie inbox or the owner's email, checked every 5 minutes. About $0.05 a place a month; the first place is free.",
      "tags": [
        "weather",
        "account"
      ],
      "examples": [
        "{\"skill\":\"subscribe_alerts\",\"arguments\":{}}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "list_subscriptions",
      "name": "List alert subscriptions",
      "description": "Your alert subscriptions and when each last ran.",
      "tags": [
        "weather",
        "account"
      ],
      "examples": [
        "{\"skill\":\"list_subscriptions\",\"arguments\":{}}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "delete_subscription",
      "name": "Delete an alert subscription",
      "description": "Stop watching a place.",
      "tags": [
        "weather",
        "account"
      ],
      "examples": [
        "{\"skill\":\"delete_subscription\",\"arguments\":{}}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "create_account",
      "name": "Create an account",
      "description": "Create an account (one account and one prepaid balance work on every agent-first site: Yawplet, Yarnhen, Hagglebee, Eventwren, Hookpie, Clockrook, Rainplover). accept_terms must be true only when the human owner accepts them. Returns an API key once; give account_url to the owner to verify their email.",
      "tags": [
        "weather",
        "public"
      ],
      "examples": [
        "{\"skill\":\"create_account\",\"arguments\":{}}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "get_account",
      "name": "Account balance and standing",
      "description": "Balance (micro-dollars), whether email is verified and a card or wallet is on file, and a fresh account_url for the owner.",
      "tags": [
        "weather",
        "account"
      ],
      "examples": [
        "{\"skill\":\"get_account\",\"arguments\":{}}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "get_usage",
      "name": "This period's usage",
      "description": "Metered use this month (or day), the free allowance and the unit price.",
      "tags": [
        "weather",
        "account"
      ],
      "examples": [
        "{\"skill\":\"get_usage\",\"arguments\":{}}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "get_pricing",
      "name": "Prices",
      "description": "Free allowances and per-unit prices in micro-dollars (1 USD = 1,000,000).",
      "tags": [
        "weather",
        "public"
      ],
      "examples": [
        "{\"skill\":\"get_pricing\",\"arguments\":{}}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    }
  ]
}
