Skip to main content
Glama
Steam Review and Forum MCP

Steam Review and Forum MCP

by icue

Steam Review and Forum MCP

Languages: English | 简体中文

MCP server for exploring Steam user reviews and community discussion threads, built for the question behind most Steam research:

What do players actually think about this game once you get past the store page noise?

It can answer questions like:

  • "Summarize the biggest complaints in recent negative reviews for Steam game XXX."

  • "Query reviews that talks about performance, and tell me whether the issue sounds widespread."

  • "Compare launch-period negative reviews with recent positive reviews. What changed?"

  • "Show month-by-month sentiment since release."

  • "List recent Events & Announcements threads, and summarize both the patch notes and player reaction."

  • "How many negative reviews come from players with at least 10 hours at review time?"

  • "What do long-playtime negative reviewers complain about?"

  • "Compare English reviews with all-language reviews and tell me what differs."

  • "Read recent forum threads and tell me whether controller support is broken."

  • "Based on the reviews from the DLC pages, which DLCs of this game are worth buying?"

Key Features

  1. Server-side filtering and aggregation

    Instead of pulling thousands of reviews into the model at once, you can create a saved review dataset once and let the server do the heavy lifting. Query only the reviews that mention "performance" or "crash", filter by sentiment, date range, language, or playtime, and keep chat context focused on the signal.

  2. Temporal precision

    This MCP is good at time-based analysis. You can isolate launch-period noise, compare it against a later period, and see how player priorities shift over time. Monthly and weekly trend buckets make that easy to quantify. This is especially effective when the real question is not just "what are people saying?" but "what changed, when did it change, and which players are saying it?"

  3. Metadata context in addition to raw review text

    With metadata like timestamp_created, voted_up, author.playtime_at_review, author.playtime_forever, it's possible to separate quick bounce-offs from long-term players and identify which complaints were genuinely influential.

  4. Reviews, forums, and official announcements in one workflow

    The same server can inspect Steam reviews, public discussion sections, multi-page threads, and Events & Announcements.

Related MCP server: Steam Reviews MCP

Quick Start

Requirements

  • Node.js 22.19+

  • npm

Use from npm

npx -y steam-review-and-forum-mcp

That command starts the MCP server over stdio. Most MCP clients will run it for you from their config, so you usually do not need to launch it manually.

Storage

The server writes saved review and forum datasets to local disk. If STEAM_REVIEW_EXPORT_DIR and STEAM_FORUM_EXPORT_DIR are not set, the defaults are package-relative:

  • .steam-review-exports/

  • .steam-forum-exports/

When using npx, that means the npm/npx-installed package copy. When running from a source checkout, that means the checkout root. The package-relative default works, but for durable storage you should set explicit absolute paths in your MCP client config.

For JSON-based MCP configs, add env:

{
  "mcpServers": {
    "steam-review-and-forum": {
      "command": "npx",
      "args": ["-y", "steam-review-and-forum-mcp"],
      "env": {
        "STEAM_REVIEW_EXPORT_DIR": "<absolute-path-to-review-exports>",
        "STEAM_FORUM_EXPORT_DIR": "<absolute-path-to-forum-exports>"
      }
    }
  }
}

For Codex config.toml, add an environment table:

[mcp_servers.steam-review-and-forum]
command = "npx"
args = ["-y", "steam-review-and-forum-mcp"]

[mcp_servers.steam-review-and-forum.env]
STEAM_REVIEW_EXPORT_DIR = "<absolute-path-to-review-exports>"
STEAM_FORUM_EXPORT_DIR = "<absolute-path-to-forum-exports>"

Claude Desktop

Open Claude Desktop Settings > Developer > Edit Config, add this server to claude_desktop_config.json, then restart Claude Desktop:

{
  "mcpServers": {
    "steam-review-and-forum": {
      "command": "npx",
      "args": ["-y", "steam-review-and-forum-mcp"]
    }
  }
}

Codex CLI

codex mcp add steam-review-and-forum -- npx -y steam-review-and-forum-mcp

Codex App

In the Codex app, open Settings > Integrations & MCP and add a custom server, or edit ~/.codex/config.toml:

[mcp_servers.steam-review-and-forum]
command = "npx"
args = ["-y", "steam-review-and-forum-mcp"]

Claude Code

claude mcp add steam-review-and-forum -- npx -y steam-review-and-forum-mcp

Cursor

Create or update .cursor/mcp.json:

{
  "mcpServers": {
    "steam-review-and-forum": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "steam-review-and-forum-mcp"]
    }
  }
}

Windsurf

Add to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "steam-review-and-forum": {
      "command": "npx",
      "args": ["-y", "steam-review-and-forum-mcp"]
    }
  }
}

Other Stdio-Compatible MCP Clients

Most local MCP clients accept a config shaped like this:

{
  "mcpServers": {
    "steam-review-and-forum": {
      "command": "npx",
      "args": ["-y", "steam-review-and-forum-mcp"]
    }
  }
}

MCP Inspector

npx -y @modelcontextprotocol/inspector -- npx -y steam-review-and-forum-mcp

Run the Server Manually

npx -y steam-review-and-forum-mcp

Most MCP clients will start the server for you, so manual launch is mainly useful for debugging.

Development from Source

If you want to run a local checkout instead of the published npm package:

npm install
npm run build
node build/server.js

Tools at a Glance

Note that the mcp server should already work out of the box, and you don't need to know the technical details below to use it.

For the exact MCP tool schemas and forum output semantics, see docs/TOOL_SCHEMAS.md.

Server Metadata

  • get_server_info: report the name and package version of the running MCP server process

Reviews

  • get_steam_game_info: cleaned Steam store metadata in English

  • get_steam_review: interactive review fetch for one page or a small bounded batch

  • create_steam_review_corpus: background fetch for a large review dataset you want to save on the server

  • get_steam_review_corpus_status: progress and metadata for a saved review dataset

  • query_steam_review_corpus: filtered review retrieval from a saved review dataset by date, sentiment, language, playtime, text, and sort order

  • aggregate_steam_review_corpus: server-side counts, trends, playtime averages, and language breakdowns from a saved review dataset

Forums

  • list_steam_forum_sections: discover available discussion forum sections

  • list_steam_forum_topics: list topics in a section; last_activity_timestamp and last_activity_display mean latest reply or listing activity, not original publication

  • get_steam_forum_topic: fetch a topic and its replies; use topic.original_post_timestamp for the original topic or announcement publication time

  • create_steam_forum_topic_corpus: background fetch for a long multi-page thread you want to save on the server

  • get_steam_forum_topic_corpus_status: progress and metadata for a saved forum thread dataset

  • read_steam_forum_topic_corpus_chunk: read one stored reply chunk from a saved long thread

Operational Notes

  • Saved review datasets are stored in STEAM_REVIEW_EXPORT_DIR when set; otherwise they are stored in .steam-review-exports/ next to the installed package.

  • Saved forum thread datasets are stored in STEAM_FORUM_EXPORT_DIR when set; otherwise they are stored in .steam-forum-exports/ next to the installed package.

  • Stored exports are cleaned up automatically after 24 hours by default.

  • Review and forum fetches retry transient failures and 429 responses with backoff.

  • If the process restarts mid-fetch, later status or chunk reads can restart resumable jobs automatically.

Environment Variables

Use these only if you need to tune storage or fetch behavior:

  • STEAM_REVIEW_EXPORT_DIR

  • STEAM_FORUM_EXPORT_DIR

  • STEAM_REVIEW_EXPORT_TTL_HOURS

  • STEAM_FORUM_EXPORT_TTL_HOURS

License

This project is licensed under the BSD 3-Clause License. See LICENSE.

Available Tools

13 tools
aggregate_steam_review_corpusA

Aggregates committed schema 2 review chunks using text, language, date, sentiment and playtime filters. Returns review counts, positive/negative counts and ratios, average playtimes in minutes, language breakdowns and optional UTC day/week/month buckets (weeks start Monday). Requires metadata. Refund status does not exclude, group or reweight records. Results cover saved data, which can be partial or capped. 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.

Inputs: corpus_id (required), date_to, group_by, voted_up, +8 more.

create_steam_forum_topic_corpusA

Starts a server-side background fetch for a public Steam Community topic, stores replies in server-managed chunks, and returns an opaque identifier immediately for later status checks and chunk reads. Supports discussion topics and compatible app hub forum surfaces. When an Events & Announcements thread only contains a stub that links to the real announcement article, the server follows that link and stores the announcement body as the topic content when possible. Data stays on the server and is not exported to the caller as files.

Inputs: topic_url (required), max_comments, chunk_size_comments.

create_steam_review_corpusA

Creates a public Steam review corpus in the background and immediately returns a new corpus_id for status checks, local queries and aggregates. Each call creates a separate corpus. Defaults to every language, all purchase sources and both sentiments, including off-topic activity and metadata. Metadata includes timestamps, playtime, numeric helpfulness and refunded; refund status does not exclude reviews. Recent/updated traversal has no implicit date window. Fetches share one request lane and 429 cooldown. Saved data is a snapshot; create a new corpus to refresh it. Data stays on the server in schema 2 storage.

Inputs: appid (required), languages, page_size, max_reviews, +6 more.

get_server_infoA
Read-onlyIdempotent

Returns the name and package version of the running MCP server process.

Inputs: no named parameters. Returns: name, version

get_steam_forum_topicA

Fetches a public Steam Community topic, including the original post and replies. The returned topic.original_post_timestamp is the original topic or hydrated announcement publication time; reply items keep their own timestamp fields. Use this field, not listing activity, for publication-date claims. Supports General Discussions topics and compatible app hub forum surfaces such as Events & Announcements, with reply pagination via ?ctp=N. When an Events & Announcements thread only contains a stub that links to the real announcement article, the server follows that link and returns the announcement body and publication time when possible.

Inputs: topic_url (required), page, fetch_all_pages.

get_steam_forum_topic_corpus_statusB

Returns the persisted manifest and progress summary for a server-side Steam Community topic fetch.

Inputs: corpus_id (required).

get_steam_game_infoB

Retrieves English game metadata for a specific app, including release date, developers, publishers, genres, and price overview. The detailed description is cleaned into plain text for LLM consumption.

Inputs: appid (required).

get_steam_reviewA

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.

Inputs: appid (required), cursor, filter, fetch_all, +7 more.

get_steam_review_corpus_statusA

Returns saved review corpus progress, chunks, stop reason and errors. running means fetching or queued; waiting means rate-limit cooldown with next_retry_at as a UTC ISO timestamp. Polling does not bypass cooldown. total_reviews_expected is Steam's reported matching count, not proof of completeness. Resumes interrupted schema 2 jobs; completed corpora stay local and are not refreshed. Unsupported storage returns UNSUPPORTED_CORPUS_VERSION; recreate the corpus. Expired or missing IDs return not_found.

Inputs: corpus_id (required).

list_steam_forum_sectionsB

Lists the available public Steam Community discussion sections and forum-like app hub surfaces for a game's hub, including each section's numeric id when applicable and URL.

Inputs: appid (required).

list_steam_forum_topicsA

Lists topics from a game's public Steam Community discussion section or compatible app hub forum surface. Supports section selection for discussions and listing pagination via ?fp=N. Each topic's last_activity_timestamp and last_activity_display describe its latest reply or listing activity, never its original publication time. Call get_steam_forum_topic and use topic.original_post_timestamp before making publication-date claims. On some app hub surfaces such as Events & Announcements, Steam omits row-level author and preview markup, so those fields may be null in listing results.

Inputs: appid (required), page, forum_key, section_id.

query_steam_review_corpusA

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.

Inputs: corpus_id (required), limit, fields, offset, +12 more.

read_steam_forum_topic_corpus_chunkC

Reads one stored reply chunk from a previously created server-side Steam Community topic fetch.

Inputs: corpus_id (required), chunk_index (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.7/5.0

    Scored across 13 tools

    Disambiguation4/5

    The tools largely target distinct resources and actions, with clear separation between direct review/forum fetches and background corpus lifecycle operations. However, the multiple corpus-related tools for reviews and forums could be confused at a glance, and get_server_info is an unrelated utility that slightly dilutes focus.

    Naming Consistency4/5

    Most names follow a predictable snake_case verb_noun pattern with the 'steam' domain inserted after the verb, such as get_steam_review and create_steam_review_corpus. The main deviation is get_server_info, which lacks the steam prefix, and read_steam_forum_topic_corpus_chunk uses 'read' while similar retrieval tools use 'get'.

    Tool Count5/5

    With 13 tools, the set is well-scoped for a dual-domain server covering Steam reviews and forums. Each tool appears to serve a distinct lifecycle role, from direct fetches to background corpus creation, status polling, querying, and aggregation.

    Completeness4/5

    The surface covers core read-only workflows for Steam reviews and forums, including direct access, corpus creation, status checks, querying, aggregation, and forum listing/reading. Minor gaps include no tool to list or delete existing corpora and no forum search beyond section/topic listing, but agents can work around these limitations.

    Maintenance

    ActivitySlowing
    ResponsivenessLimited data

    Related MCP Connectors

    Related MCP Servers