Skip to content

    Words With Attitude for Claude

    Public documentation for the Words With Attitude Claude connector.

    What the connector does

    Words With Attitude is a daily word puzzle with attitude. You get six tries to guess a hidden cheeky word: a mild British insult or a grim weather word. Each guess gets a running commentary.

    Every guess is checked on our server. The answer stays hidden until the game ends: a correct guess, the sixth miss, or giving up. There is a new puzzle every day.

    Where Claude supports interactive cards (MCP Apps), the board shows as a Words With Attitude card you can type guesses into and share your result from. Elsewhere Claude shows the board as text, so the game works in any chat.

    How to add the connector

    The MCP server URL is:

    https://www.weatherwithattitude.com/api/words/claude/mcp

    No sign-in, no account and no API key. Paste the URL and it works.

    Claude.ai (web)

    1. Open claude.ai and sign in.
    2. Go to Settings → Connectors.
    3. Click Add custom connector.
    4. Name: Words With Attitude. URL: paste the URL above.
    5. Save and toggle the connector on.
    6. Start a new chat and ask Claude to start today’s Words With Attitude puzzle.

    Claude Desktop

    1. Open Claude Desktop → Settings → Connectors → Add custom connector.
    2. Paste the same MCP URL. Save.
    3. Restart Claude Desktop if the tools do not appear straight away.

    Claude Code (CLI)

    claude mcp add --transport http words-with-attitude https://www.weatherwithattitude.com/api/words/claude/mcp

    Then run claude mcp list to confirm the server is connected, and start a fresh claude session to use the tools.

    Tools

    • start_daily_puzzle: Starts today’s puzzle. Returns the puzzle number, the word length and an empty board, never the answer.
    • submit_guess: Checks a guess. Returns every guess so far marked letter by letter (right letter in the right place, right letter in the wrong place, or not in the word) and a short comment. A guess that is not letters only, or not the right length, comes back with a reason and does not count.
    • give_up: Ends the game and shows the word, with the board and a share grid that gives nothing away.

    The tools are read only. Nothing is stored on the server: the chat holds the game. Each call sends the puzzle number and the guesses made so far, and the server works the board out again from them.

    The card also uses an app-only tool, record_card_event, that Claude’s model never sees, to report that a result was shared or a link was opened.

    Example conversation

    A short, made-up game. The real puzzle and comments are different.

    1. You

      Let’s play today’s Words With Attitude puzzle.

    2. Claude (uses start_daily_puzzle)

      WordsWithAttitude #12: a 6-letter word, 6 guesses. Shows the empty board.

    3. You

      GLOOMY

    4. Claude (uses submit_guess)

      Shows GLOOMY marked letter by letter, guess 1 of 6, with a comment on the guess.

    5. You

      I give up.

    6. Claude (uses give_up)

      WordsWithAttitude #12: given up. The word was NUMPTY. Shows the board and a share grid.

    Data handled

    • No sign-in, no account: the connector is anonymous. There is no OAuth and no API key.
    • Inputs: the puzzle number, the guesses in this game and, when Claude knows it, your time zone, so the puzzle follows your date. The time zone is used only to pick the puzzle. It is not stored and is not sent to analytics.
    • Usage statistics: anonymous events to PostHog when the connector connects, for each tool call (success or the type of error, and the response time), when a puzzle starts, for each counted guess (its number, never the word), and when the game ends (won or not, guesses used, whether you gave up). The card adds one when a result is shared and one when a link is opened. Each event carries the puzzle number, which word list it uses and the tool name where they apply, the connector version, the MCP client’s name and version when the client provides them, a marker for our own test traffic, and a random per-connection id. None of them includes the words you guess, the answer, any location, your IP address, your prompt or an account. We keep these events for 12 months and then delete them.
    • Logs: standard Vercel request logs (timestamp, route, response code, IP), used only to run and rate-limit the service.
    • Website links: tagged utm_campaign=words. Links from the game also carry the random per-connection id as wwa_cid; the share text never carries it.

    See Words With Attitude in the privacy policy for full detail.

    Rate limits

    The endpoint allows 60 requests per minute per IP. Extra requests get a 429 Too Many Requests with a Retry-After header. The card’s usage events have their own allowance, so they never use up the game’s.

    Security

    • HTTPS only with managed TLS.
    • Origin-header allowlist on the MCP endpoint: claude.ai, *.anthropic.com, and a missing or null Origin (Claude Desktop, server-to-server). All others are rejected with 403.

    Troubleshooting

    • Connector won’t connect. Check the URL is exactly https://www.weatherwithattitude.com/api/words/claude/mcp with no trailing slash. The server uses Streamable HTTP; SSE is not supported.
    • Tools aren’t appearing in chat. In Claude.ai, check the connector toggle is on for your conversation. In Claude Desktop, restart the app. In Claude Code, start a fresh claude session.
    • 429 / rate-limit error. Wait 60 seconds and try again.

    Also in the Weather With Attitude connector

    The same daily puzzle is also part of the Weather With Attitude connector for Claude, under its own tool names (weather_word_puzzle_start, weather_word_puzzle_guess and weather_word_puzzle_give_up) so the two connectors never offer Claude identical tools. If you already have that one, you can play the puzzle there without adding this connector.

    Support

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

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