Skip to main content
Glama
icue

Steam Review and Forum MCP

by icue

query_steam_review_corpus

Filter and query persisted Steam review chunks by text, language, date, sentiment, and playtime, with pagination and field selection to analyze player feedback.

Instructions

Queries persisted schema 2 review chunks by text, language, date, sentiment and playtime, with pagination, field selection and optional timestamp ordering. Playtime thresholds are minutes. Timestamp, sentiment, playtime filtering and sorting require metadata; unavailable values are null. Fields include numeric weighted_vote_score and refunded; refund status does not filter results. Counts cover committed chunks, which may be partial or capped; inspect corpus status and stop reason. Completed corpora are read locally without refresh; create a new corpus for updated data. Interrupted jobs may resume while respecting cooldown. Unsupported formats return UNSUPPORTED_CORPUS_VERSION.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of matching reviews to return.
fieldsNoOptional field selection for returned reviews. Omit to return the full stored review records.
offsetNoZero-based offset within the filtered result set.
date_toNoInclusive end date filter. Use ISO 8601 or YYYY-MM-DD.
sort_byNoOptional sort field for the filtered reviews.
voted_upNoOptional sentiment filter. true for positive reviews, false for negative reviews.
corpus_idYesOpaque identifier returned by the review corpus tools.
date_fromNoInclusive start date filter. Use ISO 8601 or YYYY-MM-DD.
languagesNoOptional language filter. Omit or include 'all' to search across all languages.
date_fieldNoWhich timestamp field to use for date filtering.timestamp_created
text_containsNoOptional case-insensitive substring match against cleaned review text.
sort_directionNoSort direction when sort_by is provided.desc
max_playtime_foreverNoOptional maximum author.playtime_forever filter, in minutes.
min_playtime_foreverNoOptional minimum author.playtime_forever filter, in minutes.
max_playtime_at_reviewNoOptional maximum author.playtime_at_review filter, in minutes.
min_playtime_at_reviewNoOptional minimum author.playtime_at_review filter, in minutes.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.1.1
    • changedInput schema / properties / fields / items / enum
      Previous value: -[
      -  "recommendationid",
      -  "language",
      -  "review",
      -  "timestamp_created",
      -  "timestamp_updated",
      -  "voted_up",
      -  "votes_up",
      -  "votes_funny",
      -  "weighted_vote_score",
      -  "comment_count",
      -  "steam_purchase",
      -  "received_for_free",
      -  "written_during_early_access",
      -  "developer_response",
      -  "timestamp_dev_responded",
      -  "primarily_steam_deck",
      -  "author",
      -  "author.steamid",
      -  "author.num_games_owned",
      -  "author.num_reviews",
      -  "author.playtime_forever",
      -  "author.playtime_last_two_weeks",
      -  "author.playtime_at_review",
      -  "author.deck_playtime_at_review",
      -  "author.last_played"
      -]New value: +[
      +  "recommendationid",
      +  "language",
      +  "review",
      +  "timestamp_created",
      +  "timestamp_updated",
      +  "voted_up",
      +  "votes_up",
      +  "votes_funny",
      +  "weighted_vote_score",
      +  "comment_count",
      +  "steam_purchase",
      +  "received_for_free",
      +  "written_during_early_access",
      +  "developer_response",
      +  "timestamp_dev_responded",
      +  "primarily_steam_deck",
      +  "refunded",
      +  "author",
      +  "author.steamid",
      +  "author.num_reviews",
      +  "author.playtime_forever",
      +  "author.playtime_last_two_weeks",
      +  "author.playtime_at_review",
      +  "author.deck_playtime_at_review",
      +  "author.last_played"
      +]
  2. First observedv1.0.5

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the burden well: playtime thresholds in minutes, metadata required for timestamp/sentiment/playtime filtering and sorting with null for unavailable values, refunded does not filter, counts cover committed chunks that may be partial or capped, completed corpora read locally, interrupted jobs resume under cooldown, and UNSUPPORTED_CORPUS_VERSION on unsupported formats. It omits explicit read-only framing and response shape, but discloses substantial behavior beyond the schema.

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?

Purpose and core capability are front-loaded in the first sentence, then a dense but relevant run of behavioral caveats. It is a single long paragraph with several clauses packed together, which costs a little readability, but nearly every sentence carries operational information.

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 a 16-parameter read tool with no annotations and no output schema, the definition covers filtering prerequisites, query semantics, data freshness, partial-count caveats, and an error code. What remains thin is result-shape and pagination interaction with the capped counts, but the critical calling constraints are present.

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?

Schema coverage is 100%, so the baseline is 3, and the description adds meaning beyond the schema: metadata prerequisite for several filters, null semantics for unavailable metadata, and the clarification that refund status does not filter results despite being a selectable field. This goes beyond restating the per-parameter descriptions.

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

Purpose4/5

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

States a specific verb and resource with scope: queries persisted schema 2 review chunks by text, language, date, sentiment and playtime, with pagination, field selection and ordering. An agent can distinguish it from create_steam_review_corpus and aggregate_steam_review_corpus by the 'queries persisted chunks' framing, but no sibling is named explicitly.

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?

Gives concrete routing context: read completed corpora locally without refresh, create a new corpus for updated data, and inspect corpus status and stop reason for partial/capped counts. It doesn't state explicit exclusions (e.g. versus get_steam_review for a single review), but the when-to-use conditions are clear.

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