Skip to main content
Glama
SDNick484

mcp-server-steam-backlog

by SDNick484

Backlog overview

backlog_get_overview
Read-only

Summarizes Steam library and backlog data—play status, Deck ratings, backlog by length, triage lanes, Up next queue, export age, and coverage—so you know where to start.

Instructions

<use_case> Start here. Summarizes the user's Steam library and backlog (pile of shame): how many games are never played, tried or played; Steam Deck ratings; the backlog by Deck rating and length; triage lane counts; the Up next queue length; how old the library export is; and how complete each data source is. </use_case> <important_notes>

  • coverage says how much data exists (e.g. hltb 0.8 = 80% of games have HowLongToBeat times). Low coverage means many unknowns, not bad games.

  • export.age_days: the library is as of the last export; offer backlog_start_export if it's stale and the user asks about recent purchases.

  • dry_run true: writes are simulated. </important_notes> backlog_get_overview()

Input Schema

NameRequiredDescriptionDefault

No arguments

Output Schema

NameRequiredDescriptionDefault
deckYes
gridYesBacklog games by Deck rating, then length bucket
gamesYes
lanesYes
notesYes
exportYes
backlogYes
dry_runYes
coverageYesShare of games with each data source (0..1)
next_queueYes
api_versionYes
play_statesYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already establish readOnlyHint=true and openWorldHint=false, so the safety profile is covered; the description adds genuine beyond-schema meaning such as coverage semantics ("hltb 0.8 = 80% of games have HowLongToBeat times. Low coverage means many unknowns, not bad games") and the temporal meaning of export.age_days. The "dry_run true: writes are simulated" note is inert and slightly confusing for a zero-parameter read-only tool, which keeps this from a 5.

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?

The use_case block is front-loaded and information-dense, the notes are bulleted, and the example is a single trivial call. The one wasteful line is the dry_run note, which earns no place in a parameterless read-only tool.

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?

An output schema exists, so return values need not be spelled out, and the description instead explains how to interpret the trickiest fields (coverage, age_days). For a zero-parameter aggregate tool, an agent has everything needed to call it correctly and to act on the result.

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

Parameters4/5

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

The tool takes no parameters, so the baseline is 4 and there is nothing for the description to disambiguate. It still usefully frames what the returned aggregates represent (coverage per data source, export staleness), which is the only semantic work available here.

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?

"Start here. Summarizes the user's Steam library and backlog" gives a specific verb and resource, then enumerates exactly what the summary contains (played/never-played counts, Deck ratings, backlog by rating and length, triage lanes, Up next length, export age, data completeness). This clearly separates it from siblings like backlog_get_next_queue or backlog_find_games, which return a queue or a list rather than aggregate stats.

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?

"Start here" is an explicit entry-point instruction, and the description names a concrete alternative branch: use backlog_start_export when export.age_days is stale and the user asks about recent purchases. It does not state any case where this tool should be avoided in favour of backlog_get_game or backlog_suggest_picks, so it falls short of full when/when-not coverage.

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