Skip to main content
Glama
mcp-server-steam-backlog

mcp-server-steam-backlog

by SDNick484

Suggest couch picks

backlog_suggest_picks
Read-only

Suggests backlog games to play next, ranked by a couch score with an explained breakdown for each pick.

Instructions

<use_case> Answer "what should I play (tonight / next / on the Steam Deck)?": the best backlog games for the couch, ranked by the dashboard's couch score, each with a score breakdown (e.g. never played +30, Verified +30, 8 h +18, MC 86 +5.5) so you can explain why it was picked. </use_case> <important_notes>

  • Only backlog games (unplayed and not in skip or done), with the same filters as backlog_find_games.

  • Ranked by score alone, exactly like the dashboard's Couch picks. Up next games get +100, which usually but not always puts them first. exclude_next=true shows fresh candidates.

  • Explain picks from score_breakdown; don't invent reasons, lengths or ratings.

  • If the filters leave nothing, the closest picks come back with exact=false and the dropped filters. </important_notes> backlog_suggest_picks(count=3, deck=["verified"], hours_max=10)

Input Schema

NameRequiredDescriptionDefault
deckNoSteam Deck ratings to include
countNo
queryNoWords from the name or a genre, e.g. 'hollow'
genresNoStore genres, e.g. ['RPG', 'Roguelike']
lengthNoshort (<5 h), mid (5-15), long (15-40), epic (40+), none (no HLTB data)
year_toNo
has_noteNotrue: only games with a note; false: without
protondbNoProtonDB tiers to include
hours_maxNo
hours_minNo
year_fromNo
controllerNoController support
play_stateNonever (0 min), tried (<2 h), played (2 h+)
genre_matchNoany: one of the genres; all: every oneany
exclude_nextNoLeave out games already in Up next, to see fresh candidates
protondb_minNoMinimum ProtonDB tier: native > platinum > gold > silver > bronze > borked
length_measureNoWhich HowLongToBeat time the length uses: main, extra (main+extras), completemain
metacritic_minNo
include_unknownNoAlso include games with no data for a filter (unknown length, tier, year...)

Output Schema

NameRequiredDescriptionDefault
exactYes
picksYes
detailYes
relaxedYes
consideredYesBacklog games that passed the filters

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, yet the description still adds real behavior: only unplayed, non-skipped, non-done games are eligible, ranking is score-only with a +100 Up-next bonus that "usually but not always" wins, and empty filter results degrade to closest picks with exact=false plus the dropped filters. It also warns not to invent reasons and to explain picks from score_breakdown, which constrains downstream behavior meaningfully.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the use case, then notes, then a concrete example — the ordering matches how an agent reads. The tag structure is slightly heavy for the amount of content, and the score-breakdown example is repeated in two places, but every sentence carries actionable information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 19-parameter ranking tool with an output schema, the description covers what the schema cannot: eligibility rules, ranking mechanics, the fallback/degradation path, and how to explain results. Nothing an agent needs in order to call it correctly or interpret a surprising result is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 19 parameters at 68% schema description coverage, the schema already documents most filters, and the description adds little per-parameter meaning beyond reiterating exclude_next and showing one example call with count, deck and hours_max. Many parameters (year_from/year_to, hours_min, metacritic_min, length_measure) get no elaboration in the description, so it neither compensates for the coverage gap nor adds much beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — pick the best backlog games for the couch, ranked by the dashboard's couch score — and frames it around the exact user question it answers ("what should I play tonight / on the Steam Deck"). It distinguishes itself from the sibling search tool by noting it shares filters with backlog_find_games while adding ranking, so an agent can tell the two apart without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The <use_case> block gives clear context for when to call it, and the notes add conditions such as exclude_next=true for fresh candidates and the fact that near-miss results come back with exact=false. It references backlog_find_games as the filtering counterpart but never explicitly says when NOT to use this tool (e.g. for a known-title lookup), so the routing guidance stops just short of fully explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.