Skip to main content
Glama
icue

Steam Review and Forum MCP

by icue

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

  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_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
date_toNoInclusive end date filter. Use ISO 8601 or YYYY-MM-DD.
group_byNoAggregation grain for the returned trend buckets.month
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 aggregate across all languages.
date_fieldNoWhich timestamp field to use for date filtering and bucketing.timestamp_created
text_containsNoOptional case-insensitive substring match against cleaned review text.
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.

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

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 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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
topic_urlYesAbsolute Steam Community topic URL from a game's discussions board or compatible forum-like app hub surface such as Events & Announcements.
max_commentsNoOptional cap for the background fetch. Use null to retrieve the full thread.
chunk_size_commentsNoHow many forum replies to store per persisted chunk.

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

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 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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
appidYesSteam application ID
languageNoLanguage filter for the corpus fetch. Defaults to all languages.all
page_sizeNoSteam page size per fetch. Steam allows up to 100.
max_reviewsNoOptional cap for the background fetch. Use null to retrieve the full corpus.
review_typeNoReview polarity to retrieve. Defaults to all reviews.all
purchase_typeNoPurchase source to retrieve. Defaults to all purchase types.all
traversal_modeNoCursor 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_reviewsNoHow many reviews to store per persisted chunk.
include_review_metadataNoWhen 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_activityNoWhen true, include off-topic/review-bomb activity in the corpus fetch.

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 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.

Conciseness5/5

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.

Completeness4/5

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.

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 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.

Purpose5/5

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.

Usage Guidelines3/5

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_infoA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameYes
versionYes

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoReply page number for the topic. Steam uses ?ctp=N for multi-page topic replies.
topic_urlYesAbsolute Steam Community topic URL from a game's discussions board or compatible forum-like app hub surface such as Events & Announcements.
fetch_all_pagesNoWhen true, fetch all reply pages for the topic instead of only the requested page.

TDQS

A4.2/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 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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
corpus_idYesOpaque identifier returned by the forum topic corpus tools.

TDQS

B3.2/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
appidYesSteam application ID

TDQS

B3.2/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
appidYesSteam application ID
cursorNoCursor for paging. Pass "*" for the first page, then pass the returned next cursor for the next request.*
filterNorecent: 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
languageNoLanguage filter (e.g. english, french, schinese). Default is all languages.all
day_rangeNoRange from now to n days ago to look for helpful reviews. Only applicable for the "all" filter.
fetch_allNoWhen 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_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_activityNoOff-topic review activity is included by default. This parameter is set to 0 unless explicitly overridden in future versions.

TDQS

B3.2/5.0
Behavior3/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 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.

Conciseness4/5

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.

Completeness3/5

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.

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 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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
corpus_idYesOpaque identifier returned by the review corpus tools.

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
appidYesSteam application ID

TDQS

B3.2/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoForum listing page number. Steam uses ?fp=N for forum listing pages.
appidYesSteam application ID
forum_keyNoForum surface to inspect. Use discussions for the normal boards, eventcomments for Events & Announcements, or tradingforum for Trading.discussions
section_idNoForum 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

A4.1/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON 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.

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

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 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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
corpus_idYesOpaque identifier returned by the forum topic corpus tools.
chunk_indexYesZero-based chunk index to read from the persisted server-side forum corpus.

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

  1. 13 tool updatesv1.0.5
    • First observedaggregate_steam_review_corpus
    • First observedcreate_steam_forum_topic_corpus
    • First observedcreate_steam_review_corpus
    • First observedget_server_info
    • First observedget_steam_forum_topic
    • First observedget_steam_forum_topic_corpus_status
    • First observedget_steam_game_info
    • First observedget_steam_review
    • First observedget_steam_review_corpus_status
    • First observedlist_steam_forum_sections
    • First observedlist_steam_forum_topics
    • First observedquery_steam_review_corpus
    • First observedread_steam_forum_topic_corpus_chunk

TDQS

A3.7/5.0

Scored across 13 tools

Disambiguation4/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityStale
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers