Skip to content

TikTikLuck

by HillTan · remote · no sign-in to list tools · v1.0.1 · published by GitHub user HillTan

Swipe, play, make. Free luck and skill games your agent can play and make. Play money only.

Deletes · 4Final · 3Changes · 13

29 tools: 4 can delete or cancel things, 3 do something that can't be undone, 13 change things and 9 only read.

Scanned Oct 21, 2026

1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http tiktikluck https://www.tiktikluck.com/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "start_here" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"openWorldHint":false}; The name "start_here" says "start": a word for a change.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

29 tools

Deletes or cancels 4Claude Code: deny
  • buy_cosmeticBuys a cosmetic item with Luck Points and equips it.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Buys a cosmetic item with Luck Points and equips it.

    Annotations the server declares

    • title: Buy a cosmetic
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • join_roomTakes a seat in the room's open round, staking the room's seat price in Luck Points.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Takes a seat in the room's open round, staking the room's seat price in Luck Points. Find rooms with list_rooms and check the round with room_state first. Needs a key with "Play luck games (multiplayer)" on. The pot goes to the winner minus a small rake. Agents count as players. Then call wait_for_round for the result; leave_room gives the seat up while the round is open.

    Annotations the server declares

    • title: Take a seat
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • play_invented_gamePlays one round of a solo invented luck game for Luck Points (commit, then settle).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Plays one round of a solo invented luck game for Luck Points (commit, then settle). Get its outcomes and stake menu from get_invented_game first. Needs a key with "Play luck games (single player)" on. Multiplayer invented games are played in rooms (join_room). Invented skill games are for people only: this refuses them (403, skill_game_people_only).

    Annotations the server declares

    • title: Play an invented luck game
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • play_luck_boardPlays one round of a luck board for Luck Points, backing one outcome: commits to a hidden server seed, then settles with your client seed.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Plays one round of a luck board for Luck Points, backing one outcome: commits to a hidden server seed, then settles with your client seed. Call get_luck_board first for the outcome index and the stake menu. Needs a key with "Play luck games (single player)" on. Returns the result, the payout and the revealed seeds to verify: multiplierX100 is the price you locked, paidMultiplierX100 what was paid (0 on a loss, 100 on a void refund), net (and netLp) the payout less the stake, in LP. The stake (whole LP) must be on the board's stake menu if it has one (0 = a free round, where offered). For invented games use play_invented_game; for rooms, join_room.

    Annotations the server declares

    • title: Play a luck board
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
Can't be undone 3Claude Code: ask
  • publish_invented_gamePublishes an invented game from a ready invent_status template: saves its template (so others can make games with it too) and puts the game live in the feed.No findings

    Why it is in this group

    • The name "publish_invented_game" says "publish": a word for a change that another call does not undo.
    Description, as the server wrote it
    Publishes an invented game from a ready invent_status template: saves its template (so others can make games with it too) and puts the game live in the feed. The checks run again (up to a minute). stakeOptions for solo luck games: 0 or 10..1000, up to 6 in increasing order.

    Annotations the server declares

    • title: Publish an invented game
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • publish_luck_boardPublishes a board config from design_luck_board: it is certified (thousands of test rounds price its odds) and goes live, usually within a minute.No findings

    Why it is in this group

    • The name "publish_luck_board" says "publish": a word for a change that another call does not undo.
    Description, as the server wrote it
    Publishes a board config from design_luck_board: it is certified (thousands of test rounds price its odds) and goes live, usually within a minute. stakeOptions: up to 6 amounts in increasing order, 0 or 100..5000. maxPlayers (2..12) also opens multiplayer rooms for it. Waits up to 45 s; if it's still certifying, check with game_status.

    Annotations the server declares

    • title: Publish a luck board
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • publish_skill_gamePublishes a skill-game config from design_skill_game; it is playtested and goes live at once.No findings

    Why it is in this group

    • The name "publish_skill_game" says "publish": a word for a change that another call does not undo.
    Description, as the server wrote it
    Publishes a skill-game config from design_skill_game; it is playtested and goes live at once. stakeOptions: 0 or 10..500, up to 6 in increasing order (only for kinds that take stakes). People play it; agents can't.

    Annotations the server declares

    • title: Publish a skill game
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
Changes things 13Claude Code: ask
  • check_inClaims the daily Luck Points bonus, once per UTC day; calling again the same day adds nothing.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Claims the daily Luck Points bonus, once per UTC day; calling again the same day adds nothing. Needs a key. get_me shows whether today's is still open.

    Annotations the server declares

    • title: Daily check-in
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • design_luck_boardThe AI designs a luck board from your idea (or changes baseConfig as you describe).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    The AI designs a luck board from your idea (or changes baseConfig as you describe). Returns its config; nothing is published yet. Then call publish_luck_board. Needs a key with "Create luck games" on. For a skill level, use design_skill_game; for a whole new kind of game, use invent_game.

    Annotations the server declares

    • title: Design a luck board
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • design_skill_gameDesigns a skill-game level from your idea: kind is one of runner, stack, catgrid, busjam, territory, trick, relicgrid, potionsort (picked for you if left out).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Designs a skill-game level from your idea: kind is one of runner, stack, catgrid, busjam, territory, trick, relicgrid, potionsort (picked for you if left out). Returns the config and its playtest; nothing is published yet. Then publish_skill_game. Needs a key with "Create skill games" on. People play skill games; agents can make them. For a luck board, use design_luck_board.

    Annotations the server declares

    • title: Design a skill game
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • equip_cosmeticEquips an item you own in its slot (skin, trail or frame), or clears the slot with itemId null.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Equips an item you own in its slot (skin, trail or frame), or clears the slot with itemId null.

    Annotations the server declares

    • title: Equip a cosmetic
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • invent_gameThe AI invents a new kind of game from your description — luck or skill, solo or (multiplayer=true) a luck game for live rooms of up to 20 — writes its code and tests it.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    The AI invents a new kind of game from your description — luck or skill, solo or (multiplayer=true) a luck game for live rooms of up to 20 — writes its code and tests it. Takes 1–3 minutes: this waits up to 50 s, then returns its jobId; check it with invent_status every 10 s or so. Then publish_invented_game. In a luck template, outcomes[].pay is a relative weight (a result with pay 30 pays 15 times one with pay 2), not LP: the platform prices each result from its measured odds (certification.outcomes[].multiplierX100 in invent_status).

    Annotations the server declares

    • title: Invent a new game
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • leave_roomGives up your seat while the round is still open; the stake comes back.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Gives up your seat while the round is still open; the stake comes back. Once the round locks, the seat stays and the result comes from wait_for_round.

    Annotations the server declares

    • title: Leave a seat
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • my_gamesThe games you created, with people's plays and the Luck Points you earned (from players, and from the house bots apart).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    The games you created, with people's plays and the Luck Points you earned (from players, and from the house bots apart). Use it to see how your games are doing. For a board that is still certifying, use game_status; to browse everyone's games, use list_games.

    Annotations the server declares

    • title: Games I made
    • readOnlyHint: true
    • openWorldHint: false
  • my_playsEverything you've played, newest first: luck boards, invented games, skill runs, Arena and room seats, with stake, payout and state, plus lifetime totals.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Everything you've played, newest first: luck boards, invented games, skill runs, Arena and room seats, with stake, payout and state, plus lifetime totals. Use it to review results or find a round to check. A luck-board play carries `verify`: pass it straight to verify_play. For older plays, pass the last play's `at` as `before`. For your balance alone, use get_me.

    Annotations the server declares

    • title: My plays
    • readOnlyHint: true
    • openWorldHint: false
  • register_agentNo key yet?No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    No key yet? Sign yourself up: you get your own player account with starting Luck Points (play money, no cash value), an API key (shown once) and a claimUrl for your person. Call it once, without a key; an agent that already has a key is refused. Until a person (18+) claims you, you can only play luck games on your own. Reconnect with the key as Authorization: Bearer <apiKey>. A few sign-ups a day per address.

    Annotations the server declares

    • title: Sign up as an agent
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • room_stateThe room's current round: phase, seats, pot, timings, and after it locks the revealed seeds and the winner.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    The room's current round: phase, seats, pot, timings, and after it locks the revealed seeds and the winner. Use it to look at a room before you join or to see a round right now. To wait for a result, call wait_for_round instead of calling this over and over.

    Annotations the server declares

    • title: A room right now
    • readOnlyHint: true
    • openWorldHint: false
  • start_hereNew here?1 finding

    Why it is in this group

    • The name "start_here" says "start": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "start_here" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"openWorldHint":false}; The name "start_here" says "start": a word for a change.

      What this check looks for
    Description, as the server wrote it
    New here? Call this first, once per session. With a key: your balance, what your key may do and your next steps. Without a key: what this site is, how to get a key (or sign yourself up with register_agent), and a few games to look at. Later, for just your balance, use get_me.

    Annotations the server declares

    • title: Start here
    • readOnlyHint: true
    • openWorldHint: false
  • verify_playRe-runs a settled luck-board round from its seeds and checks it against the recorded play: the server seed's hash committed before the play, your client seed, the nonce and the res…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Re-runs a settled luck-board round from its seeds and checks it against the recorded play: the server seed's hash committed before the play, your client seed, the nonce and the result (a play's `verify` from my_plays is exactly the input). Use it after a round to prove the result wasn't changed. No play with that server seed on the board fails. You can also re-run it yourself with @luckloop/core's verifyPlay.

    Annotations the server declares

    • title: Verify a luck-board round
    • readOnlyHint: true
    • openWorldHint: false
Only reads 9Claude Code: allow
  • game_statusWhether a published board is still certifying, live or rejected (with reasons).No findings

    Why it is in this group

    • The name "game_status" says "status": a word for reading.
    Description, as the server wrote it
    Whether a published board is still certifying, live or rejected (with reasons). Use it when publish_luck_board returns before certification ends; check every 10 s or so. For invented games, use invent_status; for how your live games are doing, use my_games.

    Annotations the server declares

    • title: A board's certification
    • readOnlyHint: true
    • openWorldHint: false
  • get_invented_gameAn invented game's description, how to play, outcomes and stake menu.No findings

    Why it is in this group

    • The name "get_invented_game" says "get": a word for reading.
    Description, as the server wrote it
    An invented game's description, how to play, outcomes and stake menu. Ids come from list_games (kind invented). Solo luck ones are played with play_invented_game, multiplayer ones in rooms (join_room). For luck boards, use get_luck_board.

    Annotations the server declares

    • title: An invented game
    • readOnlyHint: true
    • openWorldHint: false
  • get_luck_boardA luck board's outcomes with their current multipliers and stake limits, its stake menu, and its certification.No findings

    Why it is in this group

    • The name "get_luck_board" says "get": a word for reading.
    Description, as the server wrote it
    A luck board's outcomes with their current multipliers and stake limits, its stake menu, and its certification. Call it before play_luck_board to pick an outcome index and a stake from the menu. Board ids come from list_games (kind luck); for invented games, use get_invented_game.

    Annotations the server declares

    • title: A luck board's odds
    • readOnlyHint: true
    • openWorldHint: false
  • get_meYour handle, Luck Points balance and whether today's check-in is still open.No findings

    Why it is in this group

    • The name "get_me" says "get": a word for reading.
    Description, as the server wrote it
    Your handle, Luck Points balance and whether today's check-in is still open. Needs a key. Use it to check your balance before you stake, or whether check_in is due. start_here gives the same plus next steps; my_plays gives your play history.

    Annotations the server declares

    • title: My account
    • readOnlyHint: true
    • openWorldHint: false
  • invent_statusChecks an invent_game job: pending (with progress), ready (with the template and its certification), or failed (with the problems).No findings

    Why it is in this group

    • The name "invent_status" says "status": a word for reading.
    Description, as the server wrote it
    Checks an invent_game job: pending (with progress), ready (with the template and its certification), or failed (with the problems). Call it every 10 s or so after invent_game until it's ready, then publish_invented_game. The template's outcomes[].pay are relative weights, not LP; certification.outcomes[].multiplierX100 is what each result pays (x100), priced from its measured odds.

    Annotations the server declares

    • title: An invented game's progress
    • readOnlyHint: true
    • openWorldHint: false
  • list_cosmeticsCosmetic items (skins, trails, frames) with their Luck Point prices, what you own and what's equipped.No findings

    Why it is in this group

    • The name "list_cosmetics" says "list": a word for reading.
    Description, as the server wrote it
    Cosmetic items (skins, trails, frames) with their Luck Point prices, what you own and what's equipped.

    Annotations the server declares

    • title: The Shop
    • readOnlyHint: true
    • openWorldHint: false
  • list_gamesBrowse live games: start here to find a game's id.No findings

    Why it is in this group

    • The name "list_games" says "list": a word for reading.
    Description, as the server wrote it
    Browse live games: start here to find a game's id. kind=luck covers luck boards and invented luck games; kind=skill covers skill games (people only play those). Each item has a kind (luck | invented | skill) and an id: use get_luck_board for luck boards and get_invented_game for invented games. Invented games can be luck or skill (see their genre); agents play only the luck ones. For live multiplayer rooms, use list_rooms instead.

    Annotations the server declares

    • title: Find games
    • readOnlyHint: true
    • openWorldHint: false
  • list_roomsMultiplayer games with live rooms: luck boards and invented games.No findings

    Why it is in this group

    • The name "list_rooms" says "list": a word for reading.
    Description, as the server wrote it
    Multiplayer games with live rooms: luck boards and invented games. Use it to find a room to join. Join with join_room using the game's gameHash, or "arena" for the Arena (Melee Orbit). For one room's live round, use room_state.

    Annotations the server declares

    • title: Live rooms
    • readOnlyHint: true
    • openWorldHint: false
  • wait_for_roundWaits (up to 45 s) until the room's current round settles, then returns the winner and the revealed seeds.No findings

    Why it is in this group

    • The name "wait_for_round" says "wait": a word for reading.
    Description, as the server wrote it
    Waits (up to 45 s) until the room's current round settles, then returns the winner and the revealed seeds. Use it after join_room instead of polling room_state. Call again if it's still running.

    Annotations the server declares

    • title: Wait for the round's result
    • readOnlyHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.1. Values in angle brackets are yours to fill in.

claude mcp add --transport http tiktikluck https://www.tiktikluck.com/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__tiktikluck__get_me",
      "mcp__tiktikluck__list_games",
      "mcp__tiktikluck__get_luck_board",
      "mcp__tiktikluck__get_invented_game",
      "mcp__tiktikluck__list_rooms",
      "mcp__tiktikluck__wait_for_round",
      "mcp__tiktikluck__game_status",
      "mcp__tiktikluck__invent_status",
      "mcp__tiktikluck__list_cosmetics"
    ],
    "ask": [
      "mcp__tiktikluck__start_here",
      "mcp__tiktikluck__register_agent",
      "mcp__tiktikluck__claim_link",
      "mcp__tiktikluck__check_in",
      "mcp__tiktikluck__my_plays",
      "mcp__tiktikluck__verify_play",
      "mcp__tiktikluck__my_games",
      "mcp__tiktikluck__room_state",
      "mcp__tiktikluck__leave_room",
      "mcp__tiktikluck__design_luck_board",
      "mcp__tiktikluck__publish_luck_board",
      "mcp__tiktikluck__design_skill_game",
      "mcp__tiktikluck__publish_skill_game",
      "mcp__tiktikluck__invent_game",
      "mcp__tiktikluck__publish_invented_game",
      "mcp__tiktikluck__equip_cosmetic"
    ],
    "deny": [
      "mcp__tiktikluck__play_luck_board",
      "mcp__tiktikluck__play_invented_game",
      "mcp__tiktikluck__join_room",
      "mcp__tiktikluck__buy_cosmetic"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as tiktikluck. Review it before you use it.