Skip to content
Cassette

Find a game for someone to play

Online page: https://cassette.gg/agents/find-a-game.md. Fetch it again before you act on it; don't work from a saved copy.

Cassette is a store of games that run in the browser: nothing to install, no sign-in to look around. When a person asks you for something to play, find it here and answer with a link that opens the game. You can't see their account, their library or what they own, so ask them what they like and what they've played.

Two ways to the same catalog, both without a key:

  • MCP: https://cassette.gg/mcp (Streamable HTTP). Tools: search_games, get_game, similar_games, list_genres. Every answer carries each game's facts, its store page and its play link.
  • HTTP: https://cassette.gg/v1/games?… with the filters below; https://cassette.gg/v1/openapi.json lists every route.

Ask first

Ask only what changes the answer, in one message, and skip what they've already said:

  1. Device: phone, tablet or desktop? (device)
  2. Time: a few minutes or an evening? (read facts.session)
  3. With whom: alone, on one screen, or online? (multiplayer)
  4. Age: is anyone young playing? (maxAge: 0, 7, 12, 16 or 18, the youngest player's age rounded down)
  5. Price: free only, or a limit? (free, maxPrice)
  6. Connection: slow, or a phone with little room? (maxSizeMb)

If you can search without an answer, search and ask afterwards.

curl -s 'https://cassette.gg/v1/games?q=relaxing&device=phone&free=1&maxAge=7&limit=8&format=md'
curl -s 'https://cassette.gg/v1/games/<slug>/similar?device=phone&format=md'
curl -s 'https://cassette.gg/v1/tags'
ParameterMeaning
qthe person's words, matched across title, tagline, description, tags and genres, best match first; use one to three plain words, and try a second search with other words before you say nothing fits
devicephone, tablet or desktop: games that run there, those built for it first
free=1, maxPrice=4.99free only; at most that many dollars (free games always pass, 0 is free only)
multiplayerany, local (one screen) or online
maxAgehighest age rating allowed
maxSizeMblargest download, in megabytes
genre, tagone value from https://cassette.gg/v1/tags or a game's own genres
sorttrending (the default without q), new, top (most played)
format=mdthe answer as a few lines of text per game, the same as MCP gives, instead of JSON. Read this one: a list's JSON carries every game's facts in nested objects and is easy to misread across games

A value that means nothing is a 400 that says what is allowed. https://cassette.gg/v1/search?q=… takes the same filters and also returns community games (JSON only).

Read the facts, then rank

Every game has facts, copied from what its developer declared (and, for play data, from real play). A fact that isn't there was not declared: don't fill it in.

FieldMeans
devicesphone, tablet, desktop: full is built for it, playable works but isn't built for it
controlskeyboard, mouse, touch, gamepad: required, supported or unsupported
playersmin, max, modes (single, local-coop, local-versus, online-coop, online-versus), multiplayer
sessiontypicalMinutes as declared; measuredMinutes is what players really spend, shown only when at least five players made it up; endless when there is no end
requiresAccountneeds a Cassette sign-in to play
savesFollowYouprogress is kept on their account across devices; a guest's stays on one device
worksOfflineplays without a connection once loaded
downloadBytessize of the game's files
ratingage (0 is all ages, then 7, 12, 16, 18), descriptors (what earns it), interactiveFeatures (chat, multiplayer, content by other players)
languages, accessibility, stageinterface languages; features the game really has (noTimePressure, difficultyOptions…); released, early-access, demo-only, prototype or jam

Rank in this order:

  1. Hard limits first. A game that can't run on their device, is over their age or price limit, or needs players they don't have is out, however well it matches the words.
  2. Built for it over works on it. devices.<theirs>: full before playable; touch support for a phone, controls.keyboard: required is a problem without a keyboard.
  3. Time. session.typicalMinutes near the time they have; with measuredMinutes present, trust it over the declared one. A game with endless or long sessions is a poor fit for ten minutes.
  4. Mood and kind. The search order, then tags and accessibility (noTimePressure for something calm).
  5. Friction. No account, a small download and a demo (demo) beat the opposite when they want to start now; savesFollowYou matters for a long game. Reviews: https://cassette.gg/v1/reviews/badges.

What to share

One to three games, not a list. For each: the title, one sentence on why it fits them that names a fact, the price, and the link that opens it, https://cassette.gg/play/<slug>, with its page https://cassette.gg/g/<slug> for pictures and details. Say what could stop them: keyboard only, an account needed, a large download. Never give them a playUrl from the JSON or a …/b/… address: those refuse direct visits.

  • A paid game opens on its price. GET https://cassette.gg/v1/config has pay.sales: when it isn't on, nothing can be bought yet, so say so rather than offering it (a game with a free demo still plays).
  • A community game is listed from another site: its link opens the maker's site, Cassette hasn't checked its facts, and the maker is the one to credit. Keep these apart from hosted games when you answer.

When nothing fits

Say so. Cassette has few games and no one gains from a stretched match. Name what's closest and what's missing ("one racing game with friends, but it needs a keyboard"), or loosen a limit and ask. Never name a game the catalog didn't return.


Code in this document is MIT-licensed: SPDX-License-Identifier: MIT, Copyright (c) 2026 Delegas Labs, S.L. Copy and adapt it freely.