STEAMYARD MCP server — Steam library ownership + DLC lookup tools, deployed on Cloudflare Workers.
Four tools with clear verb-noun naming (get_*, compare_*, price_*) and solid descriptions (120-180 chars each). All tools have explicit input schemas with typed parameters and descriptions. However, output schemas are not documented in the visible code, and parameter descriptions lack format constraints (e.g., SteamID64 format, country code format). No tool annotations (readOnlyHint) despite all being read-only. Error handling is present but not visible in the provided code excerpt.
Compare a game or DLC's current price across retailers (Steam, Fanatical, GOG, GreenManGaming, Humble, and others tracked by IsThereAnyDeal), plus historical-low windows.
List a Steam game's DLC with release date and current price, optionally flagging each as owned/unowned for a given Steam profile.
Look up a public Steam profile's owned games and playtime.
Get a game's all-time-low price and a buy-now-vs-wait verdict based on how the current price compares to it.
Output schemas not documented. LLMs cannot plan downstream tool calls or extract structured data without knowing what fields to expect.
Parameter descriptions lack format constraints. 'steam_id' accepts '64-bit SteamID64, or a vanity profile name' but no regex/pattern/enum provided. 'country' defaults to 'US' but valid values not enumerated.
No tool annotations (readOnlyHint). All four tools are read-only but lack explicit readOnlyHint=true, forcing LLMs to infer safety from descriptions.
No pagination parameters visible. Tools returning lists (get-game-dlc, compare-dlc-prices) should accept limit/offset and return total count to prevent context window exhaustion.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | 2026-07-28+ | v2 |
Error handling logic not visible in provided code. Cannot verify if errors include recovery guidance, categorization (retryable/user-fixable/fatal), or actionable messages.