MCP tools¶
Every tool runs as the signed-in player and reads through the one gate (ADR 0005): only the player's own log, and only what they found unless they asked for more. Every result carries next, short instructions for Claude worked out from what the call did, and every playthrough, session, quest and item comes with its URL in the web app.
record¶
Files one play session: the player's words verbatim as transcript, a summary, and what was learned from it.
Anything kept takes the player's own notes (ADR 0011): their thoughts in their words, added as a new paragraph to the notes it has. A game, quest, item or codex entry also takes a description, what it is as the game says, which replaces the one it has.
- Which playthrough:
playthroughId, orgame(a title). An unknown title starts a game and its playthroughNG; alabelsuch asNG+picks or starts that playthrough. Two playthroughs being played and no label: questlog refuses and asks Claude to ask. quests: each byidor exactnamein the playthrough (otherwise a new quest), withlocalName,giver,location,status(open,blocked,done,failed,dropped) andentries:log,next(a vague next step) ordecision, each with aspoilerlevel (noneby default;hintorfullfor what the player hasn't reached).stats: a snapshot,{ level, values: { key: number } }; a key the game hasn't had gets its English and its own name throughnames.build: the plan:summary,mainStat, andtargetsas a short way to set stat goals ({ vigor: 20 }).goals: long-term goals (ADR 0009), in order:kindstat(stat,target),level(target),item(item: its id or exact name) ornote(text), each with an optionaltextsaying why, arank(1 first; default last),suggestedfor a goal Claude or a guide proposes and the player hasn't agreed to, and aspoilerlevel. A new target for a stat replaces its open goal, which is kept as dropped.idchanges a goal: accept a suggestion (suggested: false), re-rank it, mark an item or note goalreached, ordropped. Stat and level goals are reached on their own when a snapshot gets there.character: who the player plays in this run:name,classandlocalClass.carryFrom: with a newlabel(NG+): the playthrough to take the character, the build plan and the open goals from, only when the player wants it.items: the inventory (ADR 0010), byidor exactname, withkind(one of the game's inventory groups by key, name or local name; anything else adds a group at the end),quantity(how many now),attributes(its numbers by the game's names, merged),against(codex entries it works on, by id or name, with aneffectfromvery goodthroughgood(the default),neutralandbadtovery bad, and anote),location,equipped,verdict, aspoilerlevel andsources: the pages its facts come from, each{ url, title, facts }, merged by link.codex: bosses, enemies, NPCs and places met or learned about (ADR 0010): byid, or exactnamewithin itskind(boss,enemy,npc,place; required for a new one), withlocalName,location,status(met,beaten,gone; beaten is dated), a boss'sattempts,weaknessesandresistances(added to those it has),strategy,notes, aspoilerlevel andsources.tags: on a quest, an item or a codex entry (ADR 0014): free names that cut across the groups (fireon a sword, a resistance pot and a boss). They replace the tags it has; left out, they stay. A name the game has a tag for already, in any case, reuses it;newTagsandnextsay which were made.itemKinds: names the game's inventory groups, since games call them differently (amulets, rings, talismans): each{ key, name, localName }; a key the game has gets the names, a new one goes last.notes:{ game, playthrough, session }, the player's thoughts on the game as a whole, this run or this session;gameDescriptionsays what the game is.sources: the sites the player trusts for this game, each{ url, title }, merged by link. Claude looks things up there (ADR 0008).
next asks Claude to read back what was filed, to check new quests against open ones, to confirm a quest marked done, to tell the player which goals the snapshot reached, to ask about suggested goals and what was carried over, and notes new stat keys, new inventory groups (to check their names with the player) and filed spoilers.
briefing¶
"Where was I?" for one playthrough (playthroughId, or game, or the one played most recently): the last session, the open quests (open, then waiting on the game) with their next step and last log line, the build plan with its goals (open ones in order with where the latest snapshot is, then suggestions, then what was reached) and the latest stats with their change, what is equipped, the bosses met and not beaten yet (with tries, weaknesses and counters), the player's other playthroughs, and the tags in use with their ids and counts. next names the plan in order. It never contains a spoiler.
open_threads¶
The quests that are open or waiting on the game, each with its whole log. reveal is none unless the player asked for hints in this conversation; hint adds hints, full everything. With a reveal, next tells Claude to warn before reading them out.
item¶
The player's items in one playthrough: one by name (part of it is enough, in English or the game's own language), or all of them, with the build plan, the latest stats and what is equipped, so Claude can say whether a new find fits. tag keeps only the items that carry it ("what do I have against fire?"); tags lists the tags in use. Items marked as spoilers show only with a reveal. A name the player hasn't filed returns nothing, and next asks Claude to file it with record rather than describe it from its own knowledge.
questlog never fetches a page (ADR 0008). When the player wants to know more, next tells Claude to look it up with its own web tools on the game's sources, only about what the player has found, and to file the facts in its own words with the link. Without sources, it tells Claude to suggest a site and ask whether to keep it.
codex¶
"How do I beat this?": the bosses, enemies, NPCs and places of a playthrough, one by name (part of it is enough, in English or the game's own language), or all of one kind, with weaknesses, resistances, the strategy, notes, sources, and counters: the player's own items rated against each, best first (very good to very bad), with how many they have. tag keeps only the entries that carry it; tags lists the tags in use. Entries marked as spoilers show only with a reveal. With the build plan, the latest stats and what is equipped. A name the player hasn't filed returns nothing, and next asks Claude to file it; for a boss or enemy nothing is known about yet, next points Claude at the game's sources and asks it to file what it finds, marked hint where it gives away more than the player has seen.
correct¶
Fixes or removes what was filed, in changes: each names one row by what (game, playthrough, session, quest, entry, snapshot, item, goal, codex, tag) and id, and either sets some of its fields or removes it. All changes of one call apply together or not at all.
- What each takes: a game its
title,platform,sourcesanditemKinds(all of them, in the player's order; a group items still use can't be left out); a playthrough itslabel,language,status(playing,finished,dropped),characterName,characterClassandcharacterLocalClass; a session itssummaryandplayedOn(its stat snapshot moves with it); a quest itsname,localName,giver,locationandstatus; an entry itskind,textandspoiler; a snapshot itslevel,values(only the stats named change) andplayedOn; an item itsname,localName,kind,location,equipped,verdict,spoiler,sources,quantity,attributes(the whole set) andagainst(all of it); a codex entry itsname,localName,location,status,attempts,weaknesses,resistances,strategy,notes,spoilerandsources; a goal itstarget,text,status(open,reached,dropped),suggested,rankandspoiler(a lowered target the latest snapshot meets is reached at once). A quest, item or codex entry also takestags(all of them;[]takes them off), and a tag itsname. Every target but an entry and a tag takesnotes(all of them: this replaces them), and a game, quest, item or codex entry adescription. Any other field is refused;sourcesreplaces the whole list, so a link left out is dropped; a nullable field set tonullis cleared. - Removing: a game or a playthrough takes everything filed in it along; a session its log entries and its snapshot, while the quests and items it started stay; a quest its entries.
- Merging: two quests are never merged unless asked:
mergeIntoon a quest moves its entries to the quest it really is and removes it, and Claude passes it only after the player agreed. The same holds for tags:mergeIntoon a tag moves its rows to the other tag, andremovetakes it off every row. A rename to a name another tag of the game has is refused with that tag's id. A rename to a name another quest, item, game or playthrough already has is refused.
The ids come from briefing, open_threads, item and record. next asks Claude to read back each change and says that a removal can't be undone.
missed¶
"Did I miss anything?", only when the player asks, after Claude warned them, and at the level they agreed to: reveal is required, hint or full. questlog knows only the player's own log (values V6), so it returns:
leftBehind: open quests that haven't changed in the playthrough's last three sessions, in the player's own words.hidden: the open quests' entries abovenone, the hints and spoilers Claude filed that other reads leave out.hiddenItems: the items marked as hints or spoilers.
next has Claude name the threads left behind first, read out the rest one quest at a time, and, if the player wants more than their log holds, say that what follows is Claude's own knowledge of the game, at the level they asked for.