Docs
How Show & Tell works
For players, assistant platforms, and reviewers
The game
Each day everyone gets the same secret word. The player can see it; their AI assistant can't. The player sends photos of the real world, and after each photo the AI makes one single-word guess and hears how close it is: cold, warm, hot, burning, or correct. Six shots a day. Photos with letters, numbers, or screens are fouls and don't use a shot. The player can spend up to three hints: the category (any time), the length (after 2 shots), and the first letter (after 4). The word changes at the player's local midnight.
The secret never passes through the AI. It sits behind a Hold to reveal button, either on the Show & Tell card in the chat or on a private link the AI hands over. Every reveal is logged, so the player can confirm afterward that only their own device saw the word.
Connect
- MCP server:
https://playshowandtell.com/mcp, Streamable HTTP, stateless, no sign-in. - Same server behind sign-in:
https://playshowandtell.com/mcp/auth, for assistants that only connect with OAuth. It uses OAuth 2.1 with PKCE, dynamic client registration and client metadata documents. Tapping Play makes a guest player with no account, and the token carries that player, so the AI never handles a player code. - REST API: the same five actions under
/api/v1/, described in openapi.json and llms.txt. - In-chat card: an MCP App (
text/html;profile=mcp-app) for hosts that show one. It loads only from playshowandtell.com: its fonts, and the word, which it fetches only while the button is held. Hosts without MCP Apps get plain text and the private link.
Players don't need an account. The first start_round returns a random player code, such as brave-otter-4821, which the assistant passes on later calls so streaks carry over. Players who want one streak across assistants can save it with a passkey or Google on their private word page, which links their codes into one account.
Tools
None of the tools reach outside Show & Tell, move money, or touch the player's other accounts or files. The four write tools only add to the player's round for the day; nothing is deleted.
| Tool | Access | Inputs | What it does |
|---|---|---|---|
start_round | Write | player?, timezone?, ai_name?, platform? | Starts or resumes today's round. Creates a player code on first play. Returns the score so far and how the player sees their word. Calling it again the same day changes nothing. |
submit_guess | Write | player, guess, read? | Records one guess for the newest photo and returns its temperature. Uses one of six shots; a repeated guess uses none. read is the AI's one-sentence description of the photo, kept for the recap. The photo itself is never sent. |
call_foul | Write | player, reason | Records a foul (letters, numbers, screen, spoken hint, or other). No shot is used. |
use_lifeline | Write | player, kind | Reveals the category, length, or first letter when the player asks for a hint, and marks it on their share grid. |
get_status | Read | player, timezone? | Reports whether today's word is played, the streak, whether it's at risk, and minutes until the next word. Changes nothing. |
No tool is sensitive: none is irreversible in a way that matters outside the game, and none spends money or sends messages. Each result has a short text summary for the AI and the same data as structuredContent. The text includes a host note, a one-line suggestion for how to react (for example "they're burning, build suspense"); it never contains the secret word.
Errors and limits
Mistakes come back as tool errors with a plain message the AI can act on, for example:
- Unknown player code: call
start_roundwithout a code to make a new one. - No round today yet: call
start_roundfirst. - Hint not unlocked yet, already used, or the round is over.
- Invalid input, such as an unknown timezone or a guess longer than three words.
The REST API returns the same errors as JSON with HTTP 400, 404, or 409. There are no published rate limits during the playtest; traffic that looks automated or abusive may be blocked.
Troubleshooting
- The AI says it doesn't know the rules: say "Let's play Show & Tell" so it calls
start_round. - The streak reset: the AI lost the player code. Ask it to use your old code, or email us both codes.
- The card doesn't appear: use the private link the AI gives you instead.
- The fair-play check flagged a reveal: something other than your device opened your word, often the AI's own browser. Tell it never to open Show & Tell links.