Steam Review and Forum MCP
Provides tools for fetching and analyzing Steam store reviews, community forums, and game metadata, enabling querying, filtering, aggregation, and temporal analysis of player feedback.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Steam Review and Forum MCPsummarize major complaints in recent negative reviews for Elden Ring"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Steam Review and Forum MCP
Languages: English | 简体中文
MCP server for exploring Steam store 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
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.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?"
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.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-mcpThat 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-mcpCodex 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-mcpCursor
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-mcpRun the Server Manually
npx -y steam-review-and-forum-mcpMost 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.jsTools 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 Englishget_steam_review: interactive review fetch for one page or a small bounded batchcreate_steam_review_corpus: background fetch for a large review dataset you want to save on the serverget_steam_review_corpus_status: progress and metadata for a saved review datasetquery_steam_review_corpus: filtered review retrieval from a saved review dataset by date, sentiment, language, playtime, text, and sort orderaggregate_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 sectionslist_steam_forum_topics: list topics in a section;last_activity_timestampandlast_activity_displaymean latest reply or listing activity, not original publicationget_steam_forum_topic: fetch a topic and its replies; usetopic.original_post_timestampfor the original topic or announcement publication timecreate_steam_forum_topic_corpus: background fetch for a long multi-page thread you want to save on the serverget_steam_forum_topic_corpus_status: progress and metadata for a saved forum thread datasetread_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_DIRwhen set; otherwise they are stored in.steam-review-exports/next to the installed package.Saved forum thread datasets are stored in
STEAM_FORUM_EXPORT_DIRwhen set; otherwise they are stored in.steam-forum-exports/next to the installed package.Stored exports are cleaned up automatically after
24hours by default.Review and forum fetches retry transient failures and
429responses 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_DIRSTEAM_FORUM_EXPORT_DIRSTEAM_REVIEW_EXPORT_TTL_HOURSSTEAM_FORUM_EXPORT_TTL_HOURS
License
This project is licensed under the BSD 3-Clause License. See LICENSE.
Available Tools
13 toolsaggregate_steam_review_corpusB
Aggregates a stored Steam review corpus server-side. Supports overall counts, positive versus negative review breakdowns, monthly or weekly trend buckets, average playtime, playtime-threshold filtered counts, and language breakdowns. Requires a corpus created with review metadata enabled.
| Name | Required | Description | Default |
|---|---|---|---|
| date_to | No | Inclusive end date filter. Use ISO 8601 or YYYY-MM-DD. | |
| group_by | No | Aggregation grain for the returned trend buckets. | month |
| voted_up | No | Optional sentiment filter. true for positive reviews, false for negative reviews. | |
| corpus_id | Yes | Opaque identifier returned by the review corpus tools. | |
| date_from | No | Inclusive start date filter. Use ISO 8601 or YYYY-MM-DD. | |
| languages | No | Optional language filter. Omit or include 'all' to aggregate across all languages. | |
| date_field | No | Which timestamp field to use for date filtering and bucketing. | timestamp_created |
| text_contains | No | Optional case-insensitive substring match against cleaned review text. | |
| max_playtime_forever | No | Optional maximum author.playtime_forever filter, in minutes. | |
| min_playtime_forever | No | Optional minimum author.playtime_forever filter, in minutes. | |
| max_playtime_at_review | No | Optional maximum author.playtime_at_review filter, in minutes. | |
| min_playtime_at_review | No | Optional minimum author.playtime_at_review filter, in minutes. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses that aggregation is server-side and that a metadata-enabled corpus is required (implying failure otherwise), but it omits the read-only nature, response shape, and any limits or rate constraints. Adequate but incomplete for a 12-param read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences: purpose first, then capabilities, then precondition. Well front-loaded and largely waste-free, though the capability enumeration is a fairly long run-on list that could be tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 12-parameter tool with no annotations and no output schema, the definition should explain the return shape, but it never does – it only names aggregation types. Combined with the missing alternatives guidance, the picture is serviceable but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema documents all 12 parameters (date filters, group_by grain, voted_up sentiment, language list, playtime thresholds, text match). The description's capability list maps loosely onto these but adds no syntax, units, or defaults beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb+resource ('Aggregates a stored Steam review corpus server-side') and enumerates the aggregation outputs it produces. It implicitly separates itself from query_steam_review_corpus by framing the tool as summarization rather than retrieval, but it never names the sibling explicitly to fully disambiguate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states a prerequisite ('Requires a corpus created with review metadata enabled'), which is genuine usage guidance, but it never says when to choose this over query_steam_review_corpus or the corpus-status tools. Usage is implied by the enumeration of capabilities rather than prescribed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| topic_url | Yes | Absolute Steam Community topic URL from a game's discussions board or compatible forum-like app hub surface such as Events & Announcements. | |
| max_comments | No | Optional cap for the background fetch. Use null to retrieve the full thread. | |
| chunk_size_comments | No | How many forum replies to store per persisted chunk. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the burden but does well: it discloses async behavior, server-side persistence, chunking, opaque token return, follow-link behavior for stub announcements, and that data is not exported as files. It doesn't cover error conditions or auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core action and return value. The Events & Announcements edge case is useful but slightly detailed; overall efficient with minimal waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an async tool with no annotations and no output schema, the description covers initiation, return value, follow-up usage, storage semantics, and a special-case handling path. Auth and error behavior are absent but not critical for initial invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 three parameters including defaults and null semantics. The description adds no extra parameter meaning beyond what the schema provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (starts a server-side background fetch), resource (Steam Community topic), and output (opaque identifier). Clearly distinguishes itself from synchronous siblings like get_steam_forum_topic by emphasizing background fetch and chunked storage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies use when a caller needs fire-and-forget fetching followed by status/chunk reads, and names the follow-up tools' purpose implicitly. However, it does not explicitly say when NOT to use this versus get_steam_forum_topic for small threads, leaving some inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_steam_review_corpusA
Starts a server-side background review fetch, stores results in a server-managed corpus, and returns an opaque identifier immediately for later status checks, server-side queries, and aggregates. Data stays on the server and is not exported to the caller as files. Stored review records keep per-review metadata such as timestamps and playtime fields by default.
| Name | Required | Description | Default |
|---|---|---|---|
| appid | Yes | Steam application ID | |
| language | No | Language filter for the corpus fetch. Defaults to all languages. | all |
| page_size | No | Steam page size per fetch. Steam allows up to 100. | |
| max_reviews | No | Optional cap for the background fetch. Use null to retrieve the full corpus. | |
| review_type | No | Review polarity to retrieve. Defaults to all reviews. | all |
| purchase_type | No | Purchase source to retrieve. Defaults to all purchase types. | all |
| traversal_mode | No | Cursor traversal mode for exhaustive corpus retrieval. Use "recent" or "updated"; Steam's "all" helpfulness mode does not terminate reliably for full traversal. | recent |
| chunk_size_reviews | No | How many reviews to store per persisted chunk. | |
| include_review_metadata | No | When true, server-stored review chunks keep per-review metadata such as timestamp_created, timestamp_updated, timestamp_dev_responded, and author playtime fields like playtime_at_review and last_played, instead of only review text. | |
| include_offtopic_activity | No | When true, include off-topic/review-bomb activity in the corpus fetch. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses that the fetch is server-side/background, that the identifier is returned immediately, that data is not exported as files, and that per-review metadata is retained by default. It omits auth requirements, rate limits, and corpus lifetime/eviction, keeping it short of 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the action and return value, then two sentences of behavioral context. Nothing is redundant and each sentence carries distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter tool with no output schema and no annotations, the description covers the critical unknown an agent would have: what it returns (an opaque identifier) and where the data lives. It doesn't explain how to poll for completion, but that is delegated to get_steam_review_corpus_status.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 10 parameters, including enums for language, review_type, purchase_type, and traversal_mode. The description's only parameter-linked value is reinforcing the metadata-retention default, which largely restates the include_review_metadata schema text, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb chain (starts a background fetch, stores into a corpus, returns an opaque identifier) and pins the resource to Steam reviews. The async/corpus framing cleanly separates it from synchronous siblings like get_steam_review and from the status/query/aggregate tools it feeds.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the workflow (call this, then use the returned identifier for status checks, queries, and aggregates), which is genuine usage context. But it never states when to prefer this over get_steam_review or the forum-corpus sibling, and offers no exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_server_infoARead-onlyIdempotent
Returns the name and package version of the running MCP server process.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| name | Yes | |
| version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the full safety profile (readOnly, idempotent, non-destructive, closed-world). The description adds that the return payload is a name and a package version, which is useful but thin. It says nothing about when the values are captured or any error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with zero padding. It communicates the complete contract for a no-argument tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema is present, so the description does not need to enumerate return fields. For a trivial read-only diagnostic tool, the description is essentially sufficient; a brief note on when an agent should call it would be the only improvement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so per the baseline there is no parameter semantics to explain. Descriing param behavior would be superfluous here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns the name and package version of the running MCP server process') rather than restating the name. No sibling ambiguity exists — every other tool is Steam-content-oriented, so an agent can instantly route here for server metadata.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use guidance or mention of alternatives. The diagnostic/health-check use case is only inferable from the tool's semantics, not stated. No exclusions or conditions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Reply page number for the topic. Steam uses ?ctp=N for multi-page topic replies. | |
| topic_url | Yes | Absolute Steam Community topic URL from a game's discussions board or compatible forum-like app hub surface such as Events & Announcements. | |
| fetch_all_pages | No | When true, fetch all reply pages for the topic instead of only the requested page. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it explains timestamp semantics for original posts vs replies, the ?ctp=N pagination mechanism, and the special behavior where a stub linking to an announcement article is followed to return the full body. It does not discuss rate limits, auth, or error handling, but the behavioral disclosures given are specific and non-obvious.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three compact sentences that front-load the core purpose. Each sentence adds distinct information (timestamp guidance, supported surfaces, stub-following). It is slightly dense with subordinate clauses but no sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a fetch tool with no output schema and no annotations, the description covers purpose, timestamp semantics, pagination, supported surfaces, and a special fallback behavior. Nothing critical for correct invocation or interpretation appears missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all three parameters are documented in the schema, and the description only reinforces the pagination syntax with '?ctp=N'. It adds the note about following stub links which is more behavioral than parameter-specific, and does not elaborate on fetch_all_pages beyond the schema. Baseline 3 is appropriate when the schema already provides full parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Fetches') and resource ('a public Steam Community topic') and immediately scopes what is returned ('original post and replies'). It is distinguishable from siblings like list_steam_forum_topics (which lists) and get_steam_review (different resource).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly states what this tool is for and includes a crucial decision rule: use topic.original_post_timestamp rather than listing activity for publication-date claims. It enumerates compatible surfaces (General Discussions, Events & Announcements), giving context on applicability, but does not explicitly name which sibling to use instead for other tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_steam_forum_topic_corpus_statusB
Returns the persisted manifest and progress summary for a server-side Steam Community topic fetch.
| Name | Required | Description | Default |
|---|---|---|---|
| corpus_id | Yes | Opaque identifier returned by the forum topic corpus tools. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the shape of the returned data (manifest plus progress summary) and implies a read-only, non-destructive status check, but says nothing about permissions, rate limits, or what 'progress' values look like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single economical sentence with the verb and resource front-loaded and no filler. It is appropriately sized for a simple status read, though it is not maximally informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description should do more work: it names the returned artifacts but not their structure or the meaning of progress states. It is adequate for identifying the tool but leaves the agent guessing about the response contract.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one parameter and schema description coverage is 100%, so the schema already documents corpus_id as an opaque identifier from the corpus tools. The description adds no syntax or format detail beyond that, which matches the baseline for a fully documented single parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Returns') and a concrete resource ('persisted manifest and progress summary') scoped to a server-side Steam Community topic fetch, which separates it from the review-corpus sibling. It is clear and specific, though it never names the sibling tools it complements or contrasts with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to poll this tool, whether it must follow create_steam_forum_topic_corpus, or when the corpus is considered ready versus still fetching. The agent must infer the workflow entirely from the 'status' framing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| appid | Yes | Steam application ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses that metadata is English-only and that the detailed description is cleaned into plain text for LLM consumption, which is genuine behavioral context. It omits failure modes (invalid appid, missing games) and any rate-limit or auth notes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the resource and returned fields front-loaded; nothing is wasted. The trailing sentence about plain-text cleaning is mildly ancillary but earns its place as behavioral context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with no output schema, the description names the returned fields and notes the text-cleaning behavior, so an agent knows what to expect. It is adequate, though it could say more about scope limits or errors.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the appid parameter is already documented. The description only restates it as 'a specific app' and adds no format or value guidance, which is the expected baseline when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (retrieves game metadata for a Steam app) and enumerates the returned fields (release date, developers, publishers, genres, price), which makes the scope concrete. It does not, however, distinguish itself from siblings like get_steam_review, leaving the agent to infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance, no prerequisites, and no mention of alternatives such as get_steam_review even though reviews differ from metadata. Usage is only implied by the tool name and field list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_steam_reviewB
Retrieves Steam reviews for a specific app. Supports manual cursor pagination and automatic multi-page collection. Off-topic review activity is included by default. The response always includes a cleaned reviews text array, and can optionally include review_details with timestamps and playtime metadata when include_review_metadata is true.
| Name | Required | Description | Default |
|---|---|---|---|
| appid | Yes | Steam application ID | |
| cursor | No | Cursor for paging. Pass "*" for the first page, then pass the returned next cursor for the next request. | * |
| filter | No | 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. | all |
| language | No | Language filter (e.g. english, french, schinese). Default is all languages. | all |
| day_range | No | Range from now to n days ago to look for helpful reviews. Only applicable for the "all" filter. | |
| fetch_all | No | 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. | |
| max_reviews | No | Optional cap when fetch_all is true. Useful to avoid pulling very large review sets into the model context. | |
| review_type | No | all: all reviews, positive: only positive reviews, negative: only negative reviews | all |
| num_per_page | No | Number of reviews per page. Steam allows up to 100. | |
| purchase_type | No | all: all reviews, non_steam_purchase: users who did not pay on Steam, steam: paid on Steam | all |
| include_review_metadata | No | When 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_activity | No | Off-topic review activity is included by default. This parameter is set to 0 unless explicitly overridden in future versions. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it does disclose useful traits: off-topic reviews are included by default, the response always contains a cleaned reviews text array, and review_details is opt-in. However, it omits error behavior, rate limits, and the pagination-termination caveat that actually matters for correctness, so it is only partially complete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with the core purpose, with no filler. Slight redundancy with the schema's parameter descriptions, but the structure is efficient and easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 12-parameter tool with no output schema and no annotations, the description partly compensates by sketching the return shape (cleaned text array plus optional review_details). It still leaves the cursor/next-cursor return contract and multi-page termination behavior underspecified relative to the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 12 parameters including cursor, filter, fetch_all, and include_review_metadata. The description restates a few of these (metadata opt-in, off-topic default) but adds no syntax or format detail beyond the schema, matching the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Retrieves Steam reviews for a specific app"), so the agent knows exactly what it fetches. It does not distinguish itself from related siblings like query_steam_review_corpus or create_steam_review_corpus, which could plausibly serve similar review-oriented needs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description never says when to use this raw fetcher versus the corpus-building or query siblings, and offers no exclusions or prerequisites. The mention of manual vs automatic collection hints at modes but not at tool selection, so the agent must infer context on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_steam_review_corpus_statusC
Returns the persisted manifest and progress summary for a server-side Steam review fetch.
| Name | Required | Description | Default |
|---|---|---|---|
| corpus_id | Yes | Opaque identifier returned by the review corpus tools. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden. It says it 'returns' data (implying a read) but does not disclose whether it requires authentication, what happens if corpus_id is unknown, whether progress is live or cached, or how failures are surfaced. Only a minimal read implication is conveyed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One efficient sentence that front-loads the action and resource with no wasted words. It could be marginally more structured by noting the return shape, but it is appropriately sized for a simple status endpoint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given one parameter at full schema coverage, no output schema, and no annotations, the description is minimally adequate: it states what is returned but not why or when, nor how the manifest/progress should be interpreted. An agent can call it correctly but lacks context about lifecycle or error states.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the sole parameter corpus_id is fully documented as an opaque identifier from review corpus tools. The description adds no extra syntax or format detail beyond the schema, so the baseline 3 for high coverage applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Returns) and resource (persisted manifest and progress summary) for a server-side Steam review fetch, which is clearer than a tautology and distinguishes it partially from siblings through the 'status' concept. However, it does not explicitly differentiate from get_steam_forum_topic_corpus_status or explain what 'manifest and progress summary' contains, leaving a small gap versus a model that names its sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus create_steam_review_corpus or query/aggregate alternatives. An agent must infer from the name and description that this checks fetch progress after corpus creation, but no conditions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| appid | Yes | Steam application ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it does disclose the returned payload shape (section id and URL), which is useful since no output schema exists. However, it says nothing about whether this is a read-only/public call, whether authentication is needed, or how results are ordered or bounded.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that leads with the action and resource and adds no padding. Slightly dense but every clause (public sections, hub surfaces, ids, URLs) carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter listing tool with no output schema and no annotations, the description adequately conveys what is returned (sections, ids, URLs) and the scope (a game's hub). Minor gaps remain around ordering, pagination, and auth, but nothing essential to invoking it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter exists and schema description coverage is 100% ('appid' documented as Steam application ID). The description adds no meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Lists') and a precise resource ('public Steam Community discussion sections and forum-like app hub surfaces for a game's hub'), scoped to one appid. It is distinguishable from list_steam_forum_topics (sections vs. topics within a section), though it does not explicitly name that sibling to reinforce the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus alternatives such as list_steam_forum_topics. The mention of 'numeric id when applicable' hints that ids feed downstream calls, but no prerequisite, sequencing, or exclusion is spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Forum listing page number. Steam uses ?fp=N for forum listing pages. | |
| appid | Yes | Steam application ID | |
| forum_key | No | Forum surface to inspect. Use discussions for the normal boards, eventcomments for Events & Announcements, or tradingforum for Trading. | discussions |
| section_id | No | Forum section id. Only used when forum_key is discussions. 0 maps to the main /discussions/0/ board; other sections use the numeric id from the section URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden, and it does meaningful work: last_activity_timestamp/last_activity_display are explicitly 'never original publication time,' and some surfaces (Events & Announcements) omit row-level author and preview markup, so those fields may be null. It still omits auth/permission requirements and rate-limit or pagination-termination behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five tight sentences, front-loaded with the core purpose, then pagination mechanics, then the timestamp caveat, then the null-field caveat. No filler, though the pagination sentence overlaps with schema text and could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully names the returned fields (last_activity_timestamp, last_activity_display, author, preview) and their caveats, which compensates for the missing output contract. It is near-complete for a listing tool, missing only auth/permission context and pagination end conditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so page, appid, forum_key and section_id are already documented in the schema, including the ?fp=N convention. The description's mention of '?fp=N' and section selection largely restates what the schema already says, adding little beyond the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (Lists) + resource (topics) + scope (a game's public Steam Community discussion section or compatible app hub forum surface). It clearly distinguishes itself from list_steam_forum_sections (lists sections, not topics) and get_steam_forum_topic (retrieves one topic), so an agent can route without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear when-not and an explicit alternative: 'Call get_steam_forum_topic and use topic.original_post_timestamp before making publication-date claims.' It also frames section selection as a usage condition. It stops short of stating when to prefer this over list_steam_forum_sections or how pagination terminates, so it is strong but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_steam_review_corpusB
Queries a stored Steam review corpus with server-side filtering, pagination, and optional field selection. Use it to retrieve only the subset of reviews you actually need for analysis. Date, sentiment, and playtime threshold filters require a corpus created with review metadata enabled.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of matching reviews to return. | |
| fields | No | Optional field selection for returned reviews. Omit to return the full stored review records. | |
| offset | No | Zero-based offset within the filtered result set. | |
| date_to | No | Inclusive end date filter. Use ISO 8601 or YYYY-MM-DD. | |
| sort_by | No | Optional sort field for the filtered reviews. | |
| voted_up | No | Optional sentiment filter. true for positive reviews, false for negative reviews. | |
| corpus_id | Yes | Opaque identifier returned by the review corpus tools. | |
| date_from | No | Inclusive start date filter. Use ISO 8601 or YYYY-MM-DD. | |
| languages | No | Optional language filter. Omit or include 'all' to search across all languages. | |
| date_field | No | Which timestamp field to use for date filtering. | timestamp_created |
| text_contains | No | Optional case-insensitive substring match against cleaned review text. | |
| sort_direction | No | Sort direction when sort_by is provided. | desc |
| max_playtime_forever | No | Optional maximum author.playtime_forever filter, in minutes. | |
| min_playtime_forever | No | Optional minimum author.playtime_forever filter, in minutes. | |
| max_playtime_at_review | No | Optional maximum author.playtime_at_review filter, in minutes. | |
| min_playtime_at_review | No | Optional minimum author.playtime_at_review filter, in minutes. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the key behavioral constraint that date/sentiment/playtime filters require a corpus created with review metadata enabled, which is valuable. However, it doesn't cover permissions, result shape, pagination limits, or failure modes beyond the metadata caveat.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, all earning their place: purpose front-loaded, usage hint, then prerequisite. No filler or repetition of name/title. Slightly dense but efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the purpose and a critical prerequisite for filters. For a 16-param retrieval tool with no annotations and no output schema, an agent needs more: pagination behavior (limit/offset defaults), field-selection tradeoffs, or what happens on empty results. The metadata caveat is the strongest addition, but completeness is only moderate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 16 parameters thoroughly. The description adds a minor gating note about which filters require metadata-enabled corpora, which is useful, but otherwise defers to the schema as expected. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb+resource: 'Queries a stored Steam review corpus' with server-side filtering, pagination, and field selection. It distinguishes itself from create_steam_review_corpus and aggregate_steam_review_corpus by being the retrieval tool, though it doesn't explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a contextual hint ('retrieve only the subset of reviews you actually need for analysis') and notes a prerequisite (metadata-enabled corpus), but doesn't explicitly state when to use this vs. aggregate_steam_review_corpus or read_steam_forum_topic_corpus_chunk. Usage is implied rather than directive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_steam_forum_topic_corpus_chunkC
Reads one stored reply chunk from a previously created server-side Steam Community topic fetch.
| Name | Required | Description | Default |
|---|---|---|---|
| corpus_id | Yes | Opaque identifier returned by the forum topic corpus tools. | |
| chunk_index | Yes | Zero-based chunk index to read from the persisted server-side forum corpus. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It reveals that data is server-side and persisted, which is useful context beyond the schema, but it omits key behavioral details: whether chunks are immutable once created, what happens if chunk_index is out of range, whether corpus_id expiration matters, and what the return format looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single efficient sentence that front-loads the verb and resource. No waste, though it could be structured to separate the action from the prerequisite.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations, no output schema, and a dependent workflow (requires a previously created corpus), the description is too thin. It doesn't explain how chunk_index relates to total chunks, whether there's a limit, what the response contains, or error behavior for invalid/expired corpus_id. The agent lacks critical operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented in the schema (corpus_id as opaque identifier from corpus tools, chunk_index as zero-based). The description adds no parameter-level detail beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (reads) and resource (stored reply chunk from server-side Steam Community topic fetch). It clearly distinguishes itself from siblings like get_steam_forum_topic (live fetch) and the corpus creation/status tools. However, it doesn't explicitly name the sibling it depends on (create_steam_forum_topic_corpus), relying on the phrase 'previously created' to imply the workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says it reads from a 'previously created' corpus, implying the corpus must exist, but gives no explicit when-to-use guidance, no mention of pagination strategy, no bounds on valid chunk_index, and no alternative tools to consider. An agent must infer the entire usage pattern.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
13 tool updates
v1.0.5- First observed
aggregate_steam_review_corpus - First observed
create_steam_forum_topic_corpus - First observed
create_steam_review_corpus - First observed
get_server_info - First observed
get_steam_forum_topic - First observed
get_steam_forum_topic_corpus_status - First observed
get_steam_game_info - First observed
get_steam_review - First observed
get_steam_review_corpus_status - First observed
list_steam_forum_sections - First observed
list_steam_forum_topics - First observed
query_steam_review_corpus - First observed
read_steam_forum_topic_corpus_chunk
TDQS
Scored across 13 tools
Tools are mostly distinct by resource and action (reviews vs forums, direct fetch vs corpus operations), so an agent can usually tell them apart. However, get_steam_review overlaps conceptually with the review corpus tools, and get_steam_forum_topic overlaps with the forum topic corpus tools, creating minor selection ambiguity.
All tool names use consistent snake_case with predictable verb prefixes such as get_, list_, create_, read_, query_, and aggregate_. The only mild outlier is get_server_info, which omits the Steam-specific 'steam' token, but it still follows the same verb_noun convention.
With 13 tools, the set is well-scoped for covering Steam reviews and forum data, including direct retrieval and corpus-based analysis. Each tool appears to serve a clear purpose without excessive duplication.
The surface covers core read and analysis workflows: direct review/forum retrieval, corpus creation, status, querying, aggregation, and chunk reading. Minor gaps exist, such as no corpus listing/deletion or forum search tool, but agents can still accomplish the primary Steam review and forum analysis tasks.
Maintenance
Related MCP Connectors
Live Steam market data for AI agents: top sellers, deals, player counts. Paid per call via x402.
G2, Trustpilot, Yelp reviews with sentiment and theme extraction across sources.
Steam concurrent player trends for any game over time. Free key at trendsapi.ai
Steam Web API: profiles, owned games, achievements, app news, player counts.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables LLMs to retrieve and analyze Steam game reviews, providing access to review statistics, game information, and helping summarize pros and cons of games.114 npm7MIT
- AlicenseAqualityAmaintenanceAbout Search Steam games, fetch user reviews, and analyze sentiment with topic drill-down to make informed purchasing decisions.7345 npm3MIT
- AlicenseAqualityCmaintenanceIntegrates with Steam Web API to enable querying user profiles, game libraries, store data, and community features like reviews and workshop items.16MIT
- AlicenseAqualityCmaintenanceEnables personalized Steam game discovery by ranking the store against a player's playtime history and stated preferences, with tools to search games, inspect details and reviews, and explore taste profiles.1018 npmMIT