Skip to main content
Glama
icue

Steam Review and Forum MCP

by icue

get_steam_review

Read public Steam reviews by app ID with filters for helpfulness, recency, language, sentiment, purchase type, and optional metadata to analyze player feedback.

Instructions

Reads a page of public Steam reviews directly from Steam. Defaults to helpful ranking, every language, all purchase sources and both sentiments, including off-topic activity. Use recent for new feedback, updated for modifications, and a background corpus for large analyses. fetch_all automatically uses recent for helpful requests. Optional review_details contains timestamps, playtime, numeric helpfulness and refunded metadata; refunds are not filtered. All review fetches share request spacing and 429 cooldown. Anonymous responses may be cached by Steam for up to 10 minutes.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
appidYesSteam application ID as a numeric string
cursorNoCursor for paging. Pass "*" for the first page, then pass the returned next cursor for the next request.*
filterNohelpful: Steam helpfulness ranking, with its default initial 30-day lookback and quality ranking; recent: newest creation time; updated: latest modification time. Default helpful. Full traversal automatically uses recent for helpful requests.helpful
fetch_allNoWhen true, follow cursors through the complete matching set, subject to max_reviews. Helpful requests automatically use recent for exhaustive traversal. Prefer a background corpus for large sets.
languagesNoReview language list, e.g. ['english', 'schinese']. Default ['all']; including 'all' retrieves every language.
max_reviewsNoOptional cap when fetch_all is true. Useful to avoid pulling very large review sets into the model context.
review_typeNoall: all reviews, positive: only positive reviews, negative: only negative reviewsall
num_per_pageNoNumber of reviews per page. Steam allows up to 100.
purchase_typeNoall: all reviews, non_steam_purchase: users who did not pay on Steam, steam: paid on Steamall
include_review_metadataNoWhen true, return review_details in addition to the cleaned review text. review_details includes per-review metadata such as timestamp_created, timestamp_updated, timestamp_dev_responded, and author playtime fields like playtime_at_review and last_played.
filter_offtopic_activityNofalse includes off-topic/review-bomb activity (default); true excludes it.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed16 schema fields changedv1.1.1
    • changedInput schema / properties / appid / description
      Previous value: -"Steam application ID"New value: +"Steam application ID as a numeric string"
    • addedInput schema / properties / appid / pattern
      Added value: +"^\\d+$"
    • removedInput schema / properties / day_range
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "number"
      -    },
      -    {
      -      "minLength": 1,
      -      "type": "string"
      -    }
      -  ],
      -  "default": 365,
      -  "description": "Range from now to n days ago to look for helpful reviews. Only applicable for the \"all\" filter."
      -}
    • changedInput schema / properties / fetch_all / description
      Previous value: -"When true, automatically follow cursors until all matching reviews are collected. If filter=\"all\", the server automatically switches to filter=\"recent\" because Steam's \"all\" filter does not terminate when paging."New value: +"When true, follow cursors through the complete matching set, subject to max_reviews. Helpful requests automatically use recent for exhaustive traversal. Prefer a background corpus for large sets."
    • changedInput schema / properties / filter / default
      Previous value: -"all"New value: +"helpful"
    • changedInput schema / properties / filter / description
      Previous value: -"recent: sorted by creation time, updated: sorted by last updated time, all: sorted by helpfulness. Note that Steam's \"all\" filter does not naturally terminate when paging."New value: +"helpful: Steam helpfulness ranking, with its default initial 30-day lookback and quality ranking; recent: newest creation time; updated: latest modification time. Default helpful. Full traversal automatically uses recent for helpful requests."
    • changedInput schema / properties / filter / enum
      Previous value: -[
      -  "recent",
      -  "updated",
      -  "all"
      -]New value: +[
      +  "helpful",
      +  "recent",
      +  "updated"
      +]
    • removedInput schema / properties / filter_offtopic_activity / $ref
      Removed value: -"#/properties/day_range"
    • changedInput schema / properties / filter_offtopic_activity / default
      Previous value: -0New value: +false
    • changedInput schema / properties / filter_offtopic_activity / description
      Previous value: -"Off-topic review activity is included by default. This parameter is set to 0 unless explicitly overridden in future versions."New value: +"false includes off-topic/review-bomb activity (default); true excludes it."
    • addedInput schema / properties / filter_offtopic_activity / type
      Added value: +"boolean"
    • removedInput schema / properties / language
      Removed value: -{
      -  "default": "all",
      -  "description": "Language filter (e.g. english, french, schinese). Default is all languages.",
      -  "enum": [
      -    "all",
      -    "arabic",
      -    "bulgarian",
      -    "schinese",
      -    "tchinese",
      -    "czech",
      -    "danish",
      -    "dutch",
      -    "english",
      -    "finnish",
      -    "french",
      -    "german",
      -    "greek",
      -    "hungarian",
      -    "indonesian",
      -    "italian",
      -    "japanese",
      -    "koreana",
      -    "norwegian",
      -    "polish",
      -    "portuguese",
      -    "brazilian",
      -    "romanian",
      -    "russian",
      -    "spanish",
      -    "latam",
      -    "swedish",
      -    "thai",
      -    "turkish",
      -    "ukrainian",
      -    "vietnamese"
      -  ],
      -  "type": "string"
      -}
    • addedInput schema / properties / languages
      Added value: +{
      +  "default": [
      +    "all"
      +  ],
      +  "description": "Review language list, e.g. ['english', 'schinese']. Default ['all']; including 'all' retrieves every language.",
      +  "items": {
      +    "enum": [
      +      "all",
      +      "arabic",
      +      "bulgarian",
      +      "schinese",
      +      "tchinese",
      +      "czech",
      +      "danish",
      +      "dutch",
      +      "english",
      +      "finnish",
      +      "french",
      +      "german",
      +      "greek",
      +      "hungarian",
      +      "indonesian",
      +      "italian",
      +      "japanese",
      +      "koreana",
      +      "norwegian",
      +      "polish",
      +      "portuguese",
      +      "brazilian",
      +      "romanian",
      +      "russian",
      +      "spanish",
      +      "latam",
      +      "swedish",
      +      "thai",
      +      "turkish",
      +      "ukrainian",
      +      "vietnamese"
      +    ],
      +    "type": "string"
      +  },
      +  "minItems": 1,
      +  "type": "array"
      +}
    • changedInput schema / properties / max_reviews / $ref
      Previous value: -"#/properties/day_range"New value: +"#/properties/num_per_page"
    • removedInput schema / properties / num_per_page / $ref
      Removed value: -"#/properties/day_range"
    • addedInput schema / properties / num_per_page / anyOf
      Added value: +[
      +  {
      +    "type": "number"
      +  },
      +  {
      +    "minLength": 1,
      +    "type": "string"
      +  }
      +]
  2. First observedv1.0.5

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden and does disclose real context: shared request spacing, a 429 cooldown, and up-to-10-minute Steam-side caching of anonymous responses, plus that refunds are not filtered. It stops short of stating read-only nature explicitly or any permission/auth requirements, so it adds strong but not exhaustive context.

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 purpose and dense with useful facts, but it spends a full sentence restating defaults that the schema already encodes (ranking, languages, purchase sources, sentiments) and repeats the fetch_all/recent behavior twice.

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

Completeness4/5

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

For an 11-parameter tool with no output schema, the description covers cross-tool routing, default behavior, rate limits, and caching well. It leaves some gaps around return-shape and pagination mechanics, though cursor semantics are handled in the schema.

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?

Schema description coverage is 100%, so the schema already documents all 11 parameters in detail. The description largely echoes the defaults (helpful, all languages, all purchase sources, both sentiments, off-topic included) and adds only marginal meaning, e.g. clarifying refunds are not filtered and what review_details contains.

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: 'Reads a page of public Steam reviews directly from Steam.' It distinguishes itself from the sibling corpus tools by pointing large analyses to 'a background corpus,' so an agent can tell it apart from create_steam_review_corpus/query_steam_review_corpus.

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

Usage Guidelines5/5

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

Explicitly routes the agent: 'Use recent for new feedback, updated for modifications, and a background corpus for large analyses.' It names the alternative (corpus) and the condition that selects it, plus notes fetch_all's automatic behavior for helpful requests.

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