Skip to content

    WeatherWithAttitude for ChatGPT

    Public documentation for the WeatherWithAttitude ChatGPT App.

    What the app does

    Built on OpenAI’s Apps SDK (MCP-based), the app exposes a single tool, get_weather_roast, inside ChatGPT. It returns the current temperature and conditions for a city as a one-line attitude roast and renders an OG-styled weather card widget directly in chat with a CTA back to the main site.

    When ChatGPT provides the user’s coarse location via _meta[“openai/userLocation”], no city argument is required — users can simply ask “what’s my weather?”

    Example prompts:

    • What's the weather like right now?
    • Roast my weather.
    • Give me the weather in Tokyo with attitude.

    In-chat widget

    • Hero card with temperature, condition, and the attitude line.
    • Copy roast: copies the attitude line plus a link back to the main site.
    • Share: opens a pre-filled share preview on the main site via window.openai.openExternal().
    • CTA: “Get your full forecast at weatherwithattitude.com” — opens the site for full hourly / daily detail.

    Content rating — strong language

    The brand is “weather with attitude.” The default tier of generated text contains profanity and insults. This mirrors the iOS 17+ rating and Google Play Mature rating already accepted on the native apps.

    Data handled

    • Inputs: a city name (passed by the user or by ChatGPT) and, when available, a coarse user location supplied by ChatGPT via the Apps SDK _meta field. No personal data, no chat content, no contact information.
    • No accounts, no auth: the app is anonymous. There is no OAuth, no API key on the user side, no per-user state stored.
    • Third-party calls: the city or coordinates are sent to OpenWeatherMap to look up current conditions.
    • Logs: standard Vercel request logs (timestamp, route, response code, IP). Used only to operate and rate-limit the service. No request bodies are persisted.

    See the privacy policy for full detail.

    Rate limits

    The endpoint enforces 60 requests per minute per IP. Excess requests receive a 429 Too Many Requests with a Retry-After header.

    Each call performs at most one geocoding lookup and one current-conditions fetch against OpenWeatherMap.

    Security

    • HTTPS only with managed TLS.
    • Per-IP rate limiting on every request.
    • Tool annotations declared: readOnlyHint, destructiveHint, idempotentHint, openWorldHint.
    • Widget content served from a fixed ui://weatherwithattitude/ resource URI; external navigations are routed through window.openai.openExternal() to weatherwithattitude.com only.

    Support

    Bug reports, feature ideas, or content concerns: support@weatherwithattitude.com

    Privacy or data-handling questions: privacy@weatherwithattitude.com