Tool tree
gradeNot graded
page: Every page
get_online_friendsAnswer
List the player's friends with online status and what each is playing right now. Call this first for any request involving 'us', 'we', or named friends, to confirm who is actually available before recommending anything.
View tool JSON
{
"name": "get_online_friends",
"kind": "answer",
"impl": "imperative",
"description": "List the player's friends with online status and what each is playing right now. Call this first for any request involving 'us', 'we', or named friends, to confirm who is actually available before recommending anything.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/?room=k4kunf"
}get_my_libraryAnswer
List the games the signed-in player owns, with playtime, completion state, install state and last played date. The starting set for both solo picks and group matching.
View tool JSON
{
"name": "get_my_library",
"kind": "answer",
"impl": "imperative",
"description": "List the games the signed-in player owns, with playtime, completion state, install state and last played date. The starting set for both solo picks and group matching.",
"inputSchema": {
"type": "object",
"properties": {
"onlyUnfinished": {
"type": "boolean",
"description": "If true, only include games not yet completed — includes games already in progress."
},
"onlyUnplayed": {
"type": "boolean",
"description": "If true, only include games never started at all (zero playtime). Use this for 'never started' / 'still in my backlog', not onlyUnfinished."
},
"onlyInstalled": {
"type": "boolean",
"description": "If true, only include installed games."
}
},
"additionalProperties": false
},
"page": "/?room=k4kunf"
}get_friend_librariesAnswer
List which games each named friend owns and which they have completed. Pass every friend at once. Returns ownership and completion only — call get_game_details for player counts and session length.
View tool JSON
{
"name": "get_friend_libraries",
"kind": "answer",
"impl": "imperative",
"description": "List which games each named friend owns and which they have completed. Pass every friend at once. Returns ownership and completion only — call get_game_details for player counts and session length.",
"inputSchema": {
"type": "object",
"properties": {
"friendIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Friend user ids, from get_online_friends."
}
},
"required": [
"friendIds"
],
"additionalProperties": false
},
"page": "/?room=k4kunf"
}search_gamesAnswer
Search and filter the catalog by text, genre, supported player count, co-op support and typical session length. Prefer this over reading the page when you need games matching hard constraints like 'supports 4' or 'under 75 minutes'. Does not know who owns what — intersect with the library tools. This only reads the catalog and does NOT change what the player sees: once you have picked what to recommend, call show_games with those ids so the player is looking at the games you are describing.
View tool JSON
{
"name": "search_games",
"kind": "answer",
"impl": "imperative",
"description": "Search and filter the catalog by text, genre, supported player count, co-op support and typical session length. Prefer this over reading the page when you need games matching hard constraints like 'supports 4' or 'under 75 minutes'. Does not know who owns what — intersect with the library tools. This only reads the catalog and does NOT change what the player sees: once you have picked what to recommend, call show_games with those ids so the player is looking at the games you are describing.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Free-text search against title and genre."
},
"genres": {
"type": "array",
"items": {
"type": "string"
}
},
"minPlayers": {
"type": "number",
"description": "Minimum player count the game must support, e.g. 4 for 'supports 4 players'."
},
"coop": {
"type": "boolean",
"description": "If true, only games with a co-op mode."
},
"maxSessionMinutes": {
"type": "number",
"description": "Session budget in minutes. A game fits when its shortest session is within the budget and its longest overruns it by no more than 30% — so a 45-70 min game fits a 60 min budget, a 60-120 min game does not."
}
},
"additionalProperties": false
},
"page": "/?room=k4kunf"
}get_game_detailsAnswer
Full detail for one or more games: genres, player counts, co-op modes, typical session length, description, and which of the player's friends own it. Use after narrowing candidates, to compare them precisely.
View tool JSON
{
"name": "get_game_details",
"kind": "answer",
"impl": "imperative",
"description": "Full detail for one or more games: genres, player counts, co-op modes, typical session length, description, and which of the player's friends own it. Use after narrowing candidates, to compare them precisely.",
"inputSchema": {
"type": "object",
"properties": {
"gameIds": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"gameIds"
],
"additionalProperties": false
},
"page": "/?room=k4kunf"
}get_current_viewAnswer
Describe what the player is looking at right now: the current page, the filters they set by hand, and the games visible on screen — or, on a game page, which game is in focus. Call this whenever the request refers to the screen — 'these', 'this list', 'this game', 'what I'm looking at' — instead of searching the catalog from scratch.
View tool JSON
{
"name": "get_current_view",
"kind": "answer",
"impl": "imperative",
"description": "Describe what the player is looking at right now: the current page, the filters they set by hand, and the games visible on screen — or, on a game page, which game is in focus. Call this whenever the request refers to the screen — 'these', 'this list', 'this game', 'what I'm looking at' — instead of searching the catalog from scratch.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/?room=k4kunf"
}apply_filtersAction
Set the filters on the player's screen, changing which games they see. Works from any page: if they are not on a page with filters, this moves them to the Store first. Use it when your answer is a filter — a genre, a player count, a session budget. When your answer is a specific set of games you picked by reasoning, use show_games instead.
View tool JSON
{
"name": "apply_filters",
"kind": "act",
"impl": "imperative",
"description": "Set the filters on the player's screen, changing which games they see. Works from any page: if they are not on a page with filters, this moves them to the Store first. Use it when your answer is a filter — a genre, a player count, a session budget. When your answer is a specific set of games you picked by reasoning, use show_games instead.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Free-text search against title and genre."
},
"genres": {
"type": "array",
"items": {
"type": "string"
}
},
"minPlayers": {
"type": "number"
},
"coop": {
"type": "boolean"
},
"maxSessionMinutes": {
"type": "number",
"description": "Session budget in minutes. A game fits when its shortest session is within the budget and its longest overruns it by no more than 30%."
},
"onlyUnfinished": {
"type": "boolean",
"description": "Library only: hide games already completed."
},
"onlyUnplayed": {
"type": "boolean",
"description": "Library only: show only games never started."
},
"onlyInstalled": {
"type": "boolean",
"description": "Library only: show only installed games."
},
"clear": {
"type": "boolean",
"description": "If true, ignore every other field and clear all filters."
}
},
"additionalProperties": false
},
"page": "/?room=k4kunf"
}show_gamesAction
Put an exact set of games on the player's screen. This is how you show a shortlist you arrived at by reasoning — the games everyone owns, the ones that fit tonight — when no combination of filters would select exactly those games. Call it once you have decided, so the player is looking at the same games you are describing to them. Works from any page and will move the player to the Store if needed. On the Library it can only show games the player owns.
View tool JSON
{
"name": "show_games",
"kind": "act",
"impl": "imperative",
"description": "Put an exact set of games on the player's screen. This is how you show a shortlist you arrived at by reasoning — the games everyone owns, the ones that fit tonight — when no combination of filters would select exactly those games. Call it once you have decided, so the player is looking at the same games you are describing to them. Works from any page and will move the player to the Store if needed. On the Library it can only show games the player owns.",
"inputSchema": {
"type": "object",
"properties": {
"gameIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "The game ids to display, from search_games, get_my_library or get_game_details."
}
},
"required": [
"gameIds"
],
"additionalProperties": false
},
"page": "/?room=k4kunf"
}open_gameAction
Navigate the player's screen to a game's page. Call this once you have chosen a single recommendation, so the player is looking at the game you are describing. Works from any page.
View tool JSON
{
"name": "open_game",
"kind": "act",
"impl": "imperative",
"description": "Navigate the player's screen to a game's page. Call this once you have chosen a single recommendation, so the player is looking at the game you are describing. Works from any page.",
"inputSchema": {
"type": "object",
"properties": {
"gameId": {
"type": "string"
}
},
"required": [
"gameId"
],
"additionalProperties": false
},
"page": "/?room=k4kunf"
}create_partyAction
Create a play session for a chosen game with the signed-in player as host. Call only after the player has agreed to a specific game.
View tool JSON
{
"name": "create_party",
"kind": "act",
"impl": "imperative",
"description": "Create a play session for a chosen game with the signed-in player as host. Call only after the player has agreed to a specific game.",
"inputSchema": {
"type": "object",
"properties": {
"gameId": {
"type": "string"
}
},
"required": [
"gameId"
],
"additionalProperties": false
},
"page": "/?room=k4kunf"
}invite_friendsSensitive Action
Invite one or more friends to the current party. Invitations appear immediately in each friend's own browser session; they must respond before the session can launch.
View tool JSON
{
"name": "invite_friends",
"kind": "transact",
"impl": "imperative",
"description": "Invite one or more friends to the current party. Invitations appear immediately in each friend's own browser session; they must respond before the session can launch.",
"inputSchema": {
"type": "object",
"properties": {
"friendIds": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"friendIds"
],
"additionalProperties": false
},
"page": "/?room=k4kunf"
}get_party_statusAnswer
Read the current party: the game, each member's state (invited / accepted / declined), and whether the session is ready to launch. Poll after inviting to see who has responded.
View tool JSON
{
"name": "get_party_status",
"kind": "answer",
"impl": "imperative",
"description": "Read the current party: the game, each member's state (invited / accepted / declined), and whether the session is ready to launch. Poll after inviting to see who has responded.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/?room=k4kunf"
}launch_sessionAction
Start the play session. Requires every invited member to have responded — anyone who declined is left behind rather than blocking the launch. This is the final player-facing action — confirm with the player before calling it.
View tool JSON
{
"name": "launch_session",
"kind": "act",
"impl": "imperative",
"description": "Start the play session. Requires every invited member to have responded — anyone who declined is left behind rather than blocking the launch. This is the final player-facing action — confirm with the player before calling it.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/?room=k4kunf"
}