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
_metafield. 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 throughwindow.openai.openExternal()toweatherwithattitude.comonly.
Support
Bug reports, feature ideas, or content concerns: support@weatherwithattitude.com
Privacy or data-handling questions: privacy@weatherwithattitude.com