Skip to main content
Glama
hcross

Videogame Encyclopedia MCP Server

by hcross

Videogame Encyclopedia MCP Server

A Model Context Protocol (MCP) server that provides structured video game information from Steam and SteamGridDB. This server exposes tools for searching games and retrieving comprehensive metadata including descriptions, categories, release dates, player counts, and visual assets like logos, boxart, and icons.

Features

Steam Integration

  • steam_search_game: Search for games by name on Steam

  • steam_get_details: Get comprehensive game information including:

    • Description and detailed information

    • Categories and genres

    • Supported platforms (Windows, Mac, Linux)

    • Multiplayer/singleplayer capabilities

    • Release date

    • Pricing information

    • Developer and publisher details

  • steam_get_dlc_list: List all available DLCs for a specific game

  • steam_get_reviews_summary: Get community ratings and top review snippets

  • steam_get_game_news: Get the latest news and announcements for a game

  • steam_get_player_count: Get the current number of online players for a game

  • steam_get_top_sellers: Get current global top selling games

  • steam_get_top_games: Browse top games by genre or category

  • steam_get_genres: Get a list of common Steam genres for discovery

SteamGridDB Integration

  • steamgrid_search_game: Search for games on SteamGridDB

  • steamgrid_get_assets: Retrieve visual assets including:

    • Transparent logos

    • Boxart/grid images

    • Hero/banner images

    • Icons

    • Multiple variations with metadata (dimensions, MIME type, author)

  • steamgrid_get_best_logo: Get the single best transparent logo for a game

ScreenScraper Integration

  • screenscraper_get_systems: Get a list of all supported retro gaming systems

  • screenscraper_search_game: Search for retro games by name with optional system filtering

  • screenscraper_get_game_info: Get detailed game information and media assets including:

    • Game metadata (developer, publisher, release date, rating)

    • Screenshots, covers, and boxart

    • Wheel logos and marquees

    • Video previews

    • Fan art and cartridge images

    • Support for ROM identification via checksums (CRC, MD5, SHA1)

Unified Tools

  • game_get_full_profile: Get a comprehensive game profile in a single request, aggregating metadata from Steam and community visual assets from SteamGridDB. This is the recommended tool for providing a complete overview of a game.

Related MCP server: mcp-server-steam

Installation

Prerequisites

  • Node.js 18 or higher

  • npm or yarn

Setup

  1. Clone or download this repository

    cd /Users/hoanicross/devel/perso/genai/mcp/game-encyclopedia-mcp-server
  2. Install dependencies

    npm install
  3. Configure API keys

    Copy the example environment file:

    cp .env.example .env

    Edit .env and add your API keys:

    • SteamGridDB API Key: Required for high-quality game assets (grids, heroes, logos). Get it at steamgriddb.com.

Configuration

The server requires the following environment variables:

Variable

Required

Description

STEAMGRIDDB_API_KEY

Yes

Your SteamGridDB API key

SCREENSCRAPER_DEV_ID

No

ScreenScraper developer ID (for retro games)

SCREENSCRAPER_DEV_PASSWORD

No

ScreenScraper developer password

SCREENSCRAPER_USER_ID

No

ScreenScraper username (optional, provides higher API quota)

SCREENSCRAPER_USER_PASSWORD

No

ScreenScraper user password

SCREENSCRAPER_SOFTWARE_NAME

No

Software identifier (defaults to 'game-encyclopedia-mcp-server')

Setup

1. Environment Variables

Create a .env file in the root directory:

STEAMGRIDDB_API_KEY=your_steamgriddb_key_here

# Optional: For retro game support via ScreenScraper
SCREENSCRAPER_DEV_ID=your_dev_id_here
SCREENSCRAPER_DEV_PASSWORD=your_dev_password_here
SCREENSCRAPER_USER_ID=your_username_here
SCREENSCRAPER_USER_PASSWORD=your_password_here

To get ScreenScraper credentials:

  1. Build the project

    npm run build

Usage

With Claude Desktop

Add this server to your Claude Desktop configuration file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "game-encyclopedia": {
      "command": "node",
      "args": ["/Users/hoanicross/devel/perso/genai/mcp/game-encyclopedia-mcp-server/dist/index.js"],
      "env": {
        "STEAMGRIDDB_API_KEY": "your_steamgriddb_api_key_here"
      }
    }
  }
}

Restart Claude Desktop to load the server.

Quick Installation/Launch

Via Smithery

You can install this server into your MCP client (like Claude Desktop) with one command:

npx -y @smithery/cli@latest install videogame-encyclopedia-mcp-server --client claude

Via uvx

If you have uv installed, you can run the server directly (requires Node.js locally):

uvx --from node videogame-encyclopedia-mcp-server

Via npx

npx videogame-encyclopedia-mcp-server
NOTE

To publish this package to NPM, you must set anNPM_TOKEN secret in your GitHub repository settings.

Available Tools

1. steam_search_game

Search for games on Steam by name.

Input:

  • query (string, required): Game name to search for

  • limit (number, optional): Maximum results (default: 10)

Example:

{
  "query": "Elden Ring",
  "limit": 5
}

2. steam_get_details

Get detailed information about a Steam game.

Input:

  • appid (number, required): Steam App ID

Example:

{
  "appid": 1245620
}

3. steam_get_dlc_list

Get a list of all available DLCs for a specific Steam game.

Input:

  • appid (number, required): Steam App ID

Example:

{
  "appid": 1245620
}

4. steam_get_reviews_summary

Get a summary of user reviews and ratings for a specific Steam game.

Input:

  • appid (number, required): Steam App ID

Example:

{
  "appid": 1245620
}

5. steam_get_game_news

Get the latest news and announcements for a specific Steam game.

Input:

  • appid (number, required): Steam App ID of the game

  • count (number, optional): Number of news items to fetch (default: 5)

Example:

{
  "appid": 1245620,
  "count": 3
}

6. steam_get_player_count

Get the current number of players online for a specific Steam game.

Input:

  • appid (number, required): Steam App ID of the game

Example:

{
  "appid": 1245620
}

7. steam_get_genres

Get a list of common Steam genres and categories for discovery.

Example:

{}

8. steam_get_top_sellers

Get the current global top selling games on Steam.

Input:

  • limit (number, optional): Maximum results (default: 10)

Example:

{
  "limit": 5
}

9. steam_get_top_games

Browse top games for a specific Steam category or genre (e.g., "Action", "RPG", "Strategy").

Input:

  • genreId (string, optional): Genre name to browse

  • limit (number, optional): Maximum results (default: 10)

Example:

{
  "genreId": "RPG",
  "limit": 5
}

10. steamgrid_search_game

Search for games on SteamGridDB.

Input:

  • query (string, required): Game name to search for

Example:

{
  "query": "Elden Ring"
}

11. steamgrid_get_assets

Get visual assets for a game from SteamGridDB.

Input:

  • gameId (number, required): SteamGridDB game ID

  • assetTypes (array, optional): Asset types to retrieve: grid, hero, logo, icon (default: all)

Example:

{
  "gameId": 123456,
  "assetTypes": ["logo", "grid"]
}

Get the single best transparent logo for a game from SteamGridDB, optimized for UI use.

Input:

  • gameId (number, optional): SteamGridDB Game ID

  • appid (number, optional): Steam App ID

Example:

{
  "appid": 1245620
}

13. game_get_full_profile

Get a comprehensive game profile combining metadata from Steam and visual assets from SteamGridDB. This tool automatically handles the mapping between Steam and SteamGridDB.

Input:

  • query (string, required): Game name to search for

Example:

{
  "query": "Elden Ring"
}

14. screenscraper_get_systems

Get a list of all supported retro gaming systems from ScreenScraper.fr.

Input: None required.

Example:

{}

Returns: List of systems with ID, name, manufacturer, release date, and supported file extensions.

15. screenscraper_search_game

Search for retro games on ScreenScraper.fr by name.

Input:

  • gameName (string, required): Game name to search for

  • systemId (number, optional): Filter by gaming system ID (use screenscraper_get_systems to find IDs)

  • language (string, optional): Language code for game names and descriptions (default: "en")

Example:

{
  "gameName": "Super Mario Bros",
  "systemId": 4,
  "language": "en"
}

Returns: List of matching games with metadata including system, developer, publisher, genres, and synopsis.

16. screenscraper_get_game_info

Get detailed information and media assets for a retro game from ScreenScraper.fr.

Input:

  • gameId (number, optional): ScreenScraper game ID

  • gameName (string, optional): Game name to search for

  • systemId (number, optional): Gaming system ID

  • crc (string, optional): ROM CRC checksum

  • md5 (string, optional): ROM MD5 checksum

  • sha1 (string, optional): ROM SHA1 checksum

  • romName (string, optional): ROM filename

  • romSize (number, optional): ROM file size in bytes

  • language (string, optional): Language code (default: "en")

Example (by game ID):

{
  "gameId": 12345,
  "systemId": 4
}

Example (by ROM checksum):

{
  "md5": "a31ec74822f6e93f848ac58d9c85716c",
  "systemId": 4
}

Returns: Comprehensive game information including all available media (screenshots, covers, wheels, marquees, videos, fanarts, boxes, cartridges, maps).

Development

Scripts

  • npm run build - Compile TypeScript to JavaScript

  • npm start - Run the compiled server

  • npm run dev - Build and run in one command

Project Structure

game-encyclopedia-mcp-server/
├── src/
│   ├── index.ts           # Main server entry point
│   ├── config.ts          # Configuration management
│   ├── types.ts           # TypeScript type definitions
│   └── tools/
│       ├── steam.ts       # Steam API integration
│       ├── steamgrid.ts   # SteamGridDB API integration
│       ├── screenscraper.ts # ScreenScraper API integration
│       └── unified.ts     # Unified search tool implementation
├── package.json
├── tsconfig.json
└── .env.example

Troubleshooting

"Configuration error" on startup

Make sure you've created a .env file with valid API keys:

  • Check that .env exists in the project root

  • Verify STEAMGRIDDB_API_KEY is set

  • Ensure there are no quotes around the keys in the .env file

"Game not found" errors

  • For SteamGridDB: Ensure the game ID is from SteamGridDB, not Steam

No visual assets returned

Some games may not have all asset types available. The server returns only assets that exist in SteamGridDB.

License

MIT

Available Tools

16 tools
game_get_full_profileA

Get a comprehensive game profile including metadata from Steam and visual assets (logo, hero, grid, icon) from SteamGridDB in a single request. This is the recommended tool for getting a complete overview of a game.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesThe game name to search for

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the burden of behavioral disclosure. It does reveal that the tool aggregates data from two sources and returns metadata plus visual assets in one request, which is useful, but it does not describe return structure, failure modes, or source-priority 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?

The description is two sentences with no redundancy. The core behavior and data sources are front-loaded, and the recommendation is concise and actionable.

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?

Given the simple one-parameter schema and read-only nature implied by 'Get,' the description provides sufficient context for an agent to invoke the tool correctly. It lacks an output schema, but the mention of metadata and specific visual asset types gives a reasonable picture of what will be returned. A bit more detail about response contents would push it higher, but it is not necessary for basic 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?

The single parameter 'query' is fully described in the schema as 'The game name to search for,' so schema coverage is 100%. The description adds no additional parameter-level guidance, which matches the baseline of 3 when the schema already handles parameter semantics.

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 uses a specific verb ('Get') and clearly identifies the resource: a comprehensive game profile combining Steam metadata with SteamGridDB visual assets. This distinguishes it from sibling tools like steam_get_details or steamgrid_get_assets by emphasizing aggregation into a single request.

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?

The description states it is 'the recommended tool for getting a complete overview of a game,' which gives a reasonably clear use case. It does not explicitly enumerate alternatives or exclusions, but the context of when to choose this tool is apparent from the 'complete overview' framing.

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

screenscraper_get_game_infoB

Get detailed information and media assets for a retro game from ScreenScraper.fr. Can search by game ID, name, or ROM checksums (CRC, MD5, SHA1). Returns comprehensive metadata including screenshots, covers, wheels, videos, and more.

ParametersJSON Schema
NameRequiredDescriptionDefault
crcNoROM CRC checksum
md5NoROM MD5 checksum
sha1NoROM SHA1 checksum
gameIdNoScreenScraper game ID
romNameNoROM filename
romSizeNoROM file size in bytes
gameNameNoGame name to search for
languageNoLanguage code for game information (default: en)en
systemIdNoGaming system ID

TDQS

B3.3/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 of behavioral disclosure. It states the tool returns metadata and media assets, but it does not disclose important behaviors: whether it requires authentication/API key, rate limits, network dependency, whether it can fail when no match is found, or whether it performs a remote API call. For a tool that fetches external data, this is a significant gap.

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 two sentences, front-loading the core purpose and then listing search methods and return types. It is efficient and free of fluff. It could be slightly more structured (e.g., separating search methods from return types), but it earns its place with no wasted words.

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?

With 9 parameters, no required fields, no output schema, and no annotations, the description is not complete enough. An agent cannot tell which parameters are mutually exclusive, which are required for a successful lookup, or what the response structure looks like. The tool's complexity (multiple search modes, external API) demands more guidance than the description provides.

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 9 parameters. The description adds the high-level concept that parameters can be used as search methods (ID, name, checksums), which is useful. However, it doesn't clarify relationships between parameters (e.g., whether systemId is required for name searches, whether checksums are preferred over names, or how language affects output). Baseline 3 is appropriate since the schema does the heavy lifting.

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 clearly states the tool's purpose: retrieving detailed information and media assets for a retro game from ScreenScraper.fr. It specifies multiple search methods (game ID, name, ROM checksums) and the types of metadata returned (screenshots, covers, wheels, videos). This distinguishes it from sibling tools like screenscraper_search_game (which likely only searches) and steam_* tools (which are for Steam, not retro games).

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 usage by listing search methods, but it does not explicitly state when to use this tool versus alternatives like screenscraper_search_game or game_get_full_profile. It doesn't provide conditions like 'use this when you have a ROM checksum' or 'use screenscraper_search_game when you only need a game ID'. The context is clear for a retro game lookup, but exclusions and alternative routing are absent.

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

screenscraper_get_systemsA

Get a list of all supported retro gaming systems from ScreenScraper.fr. Returns system IDs, names, manufacturers, and supported file extensions.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/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 operation and the return fields (system IDs, names, manufacturers, supported file extensions), which is good, but it does not mention response format, rate limits, sorting, or whether the list is paginated. Adequate for a simple list operation but not rich.

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?

The description is concise: one topic sentence followed by a precise list of returned fields. There is no filler, redundancy, or unnecessary detail.

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 parameterless list endpoint without annotations or an output schema, the description tells the agent exactly what to expect: a list of systems and their attributes. Nothing critical is missing for correct invocation or result interpretation.

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 has zero parameters, so the baseline is 4. The description adds meaningful information about what the returned data contains, which compensates for the lack of an output schema.

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 states a specific action ('Get a list') and a specific resource ('supported retro gaming systems'), and clarifies it is about the system catalog rather than game-level data. This distinguishes it clearly from the sibling screenscraper_search_game and screenscraper_get_game_info tools.

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?

The intent is obvious: use this when the agent needs the full catalog of supported systems, not a specific game lookup. It does not explicitly name alternatives or exclusions, but the no-parameter design and system-focused wording make the usage context clear.

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

screenscraper_search_gameA

Search for retro games on ScreenScraper.fr by name. Optionally filter by gaming system. Returns game information including system, developer, publisher, and genres.

ParametersJSON Schema
NameRequiredDescriptionDefault
gameNameYesThe game name to search for
languageNoLanguage code for game names and descriptions (default: en)en
systemIdNoOptional: Filter by gaming system ID (use screenscraper_get_systems to find IDs)

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries the behavioral burden. It states that the tool returns game information including system, developer, publisher, and genres, which clarifies the result behavior. However, it does not mention rate limits, error behavior, pagination, or whether the search is exact or fuzzy, leaving some behavioral gaps.

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?

The description is a single, efficient sentence pair that front-loads the main purpose and then adds the optional filter and return fields. Every clause earns its place with no filler or redundancy.

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 simple search tool with three parameters and full schema coverage, the description is mostly sufficient. It names the key return fields, but with no output schema it leaves the shape of the result (e.g., list vs. single item, pagination, match scoring) unclear, and it does not guide the agent toward screenscraper_get_game_info for detailed follow-up.

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. The description adds the overall semantics of 'by name' and 'optionally filter by gaming system,' but does not add meaning beyond what the schema already provides, so the baseline of 3 is appropriate.

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 uses a specific verb-resource pair: 'Search for retro games on ScreenScraper.fr by name.' It also names the optional system filter and the fields returned, making it easy to distinguish from sibling tools like steam_search_game or screenscraper_get_game_info.

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 usage: use it to search by name and optionally filter by system. However, it does not explicitly state when to prefer this over screenscraper_get_game_info or when not to use it, nor does it mention any exclusions or prerequisites beyond the schema's hint to use screenscraper_get_systems.

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

steam_get_detailsA

Get detailed information about a Steam game by its App ID. Returns comprehensive metadata including description, categories, genres, supported players, release date, price, and more.

ParametersJSON Schema
NameRequiredDescriptionDefault
appidYesThe Steam App ID of the game

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral disclosure burden. 'Get' clearly implies a read-only operation and the description lists what is returned. However, it does not disclose potential errors, rate limits, authentication needs, or behavior for invalid App IDs, though these gaps are less critical for a simple getter.

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?

One single, front-loaded sentence states the action, the input key, and the output scope. There is no redundant phrasing or filler, and the list of metadata fields earns its place by clarifying what 'details' means.

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 read tool with no output schema, the description covers the essential call context: what to provide and what to expect back. It does not describe the response structure, but the enumerated return fields give sufficient guidance for an agent to decide if this tool fits.

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?

The input schema already describes appid as 'The Steam App ID of the game' with 100% coverage. The description adds no further semantic detail about appid format, provenance, or constraints, so it provides no value beyond the schema 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?

The description clearly states the verb 'Get' and the resource 'detailed information about a Steam game by its App ID', and enumerates the metadata returned. It does not explicitly distinguish itself from siblings like steam_get_dlc_list or game_get_full_profile, but the scope is specific enough to infer the difference.

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 tool should be used when an App ID is known and comprehensive game metadata is needed. However, it gives no explicit guidance about when not to use it, nor does it mention alternatives such as steam_search_game for finding an App ID first.

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

steam_get_dlc_listA

Get a list of all available DLCs for a specific Steam game by its App ID. Returns the App ID and name for each DLC.

ParametersJSON Schema
NameRequiredDescriptionDefault
appidYesThe Steam App ID of the main game

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the burden of behavioral disclosure. It conveys that this is a read/list operation and specifies exactly what is returned: App ID and name for each DLC. It stops short of detailing edge cases like invalid App IDs or pagination, but for a simple list retrieval this is adequate.

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?

The description is one clean sentence that front-loads the action, scopes it to a specific game, and includes the return contract. Every word earns its place with no redundancy.

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 single-parameter tool with no output schema, the description is fully sufficient: it explains the purpose, the input, and the shape of the result. Nothing critical is missing for an agent to decide whether to call it and what to expect.

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%: the single parameter appid is already described as 'The Steam App ID of the main game'. The tool description adds little beyond that, so the schema does the heavy lifting and the baseline of 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 uses a specific verb ('Get') with a specific resource ('list of all available DLCs') and clearly identifies the required input ('Steam game by its App ID'). It also states the return payload (App ID and name for each DLC), which distinguishes it from siblings like steam_search_game or steam_get_details.

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?

The description makes it clear that the tool is for retrieving DLC for a specific Steam game via App ID, which implies when it should be used. It does not explicitly name alternatives, but no sibling tool targets DLC lists, so the usage context is clear and exclusions are unnecessary.

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

steam_get_game_newsB

Get the latest news and announcements for a specific Steam game.

ParametersJSON Schema
NameRequiredDescriptionDefault
appidYesSteam App ID of the game
countNoNumber of news items to fetch (default: 5)

TDQS

B3.1/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 of behavioral disclosure. It does not mention that this is a read-only operation, whether it requires authentication, rate limits, or what the response format looks like. The description only states the basic action, leaving the agent without important behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the core purpose. It earns its place without unnecessary detail, though it could add a bit more context without becoming verbose.

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 and no output schema, the description is too thin. It does not explain the return structure, pagination behavior, or any edge cases like invalid appids. An agent would need to infer too much to use it correctly in varied contexts.

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 both parameters. The description adds no extra meaning beyond the schema, but the baseline of 3 is appropriate because the schema fully covers parameter semantics.

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 clear verb ('Get') and resource ('latest news and announcements for a specific Steam game'), which distinguishes it from sibling tools like steam_get_details or steam_get_reviews_summary. It could be slightly more specific about the news feed source, but it is unambiguous enough.

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 usage for fetching game news but does not explicitly state when to prefer this over alternatives or mention any exclusions. Sibling tools cover other game data, so an agent can infer the use case, but there is no direct guidance on when not to use it.

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

steam_get_genresA

Get a list of common Steam genres and categories for discovery.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations available, the description carries the full burden. It transparently indicates this is a read-only list-returning tool. It does not describe output format or ordering, but for a zero-parameter discovery list, those are minor omissions rather than significant behavioral gaps.

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, tightly written sentence conveys the action, the resource, and the intended purpose without wasted words. It is front-loaded and easy for an agent to parse quickly.

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?

Given the zero-parameter schema, no annotations, and no output schema, the description is sufficiently complete: it states what the tool returns ('a list of common Steam genres and categories') and for what purpose ('discovery'). No additional context is necessary for correct invocation.

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 has zero parameters, so there is nothing meaningful for the description to add beyond the schema. The baseline of 4 applies because schema coverage is complete and no parameter documentation is needed.

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 clearly states a specific action ('Get a list') and a specific resource ('common Steam genres and categories for discovery'). It is distinct from sibling tools like steam_search_game or steam_get_details, which target search and game metadata rather than genre discovery.

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?

The phrase 'for discovery' provides a clear use case, and there is no competing sibling tool that retrieves genres/categories. It does not explicitly state when not to use it, but the uniqueness of the tool makes the intended usage reasonably obvious.

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

steam_get_player_countA

Get the current number of players online for a specific Steam game.

ParametersJSON Schema
NameRequiredDescriptionDefault
appidYesSteam App ID of the game

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states that the tool returns the current number of players online, but does not mention whether authentication is required, potential rate limits, or the nature of the response. This is a minimal disclosure for a tool with no annotation coverage.

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?

The description is a single, focused sentence with zero unnecessary words. It is front-loaded with the core action and resource, making it immediately actionable.

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 simple tool with one parameter and no output schema, the description adequately conveys the return value (the player count) without needing to detail the exact format. It is complete enough for an agent to understand what to expect, though it could optionally mention response format or potential edge cases.

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% for the single parameter appid, which is fully described in the schema. The description adds no additional meaning beyond what the schema already provides, only referring to 'a specific Steam game' which maps to appid. Baseline of 3 is appropriate.

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 clearly states the verb 'Get' and the resource 'current number of players online for a specific Steam game', which is precise and distinguishes it from sibling tools like steam_get_details or steam_search_game. No ambiguity about what the tool does.

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 usage—when you need the player count for a game—but it does not explicitly state when to use this tool versus alternatives or any exclusions. The purpose is so specific that usage is self-evident, but there is no explicit guidance or mention of alternatives.

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

steam_get_reviews_summaryA

Get a summary of user reviews and ratings for a specific Steam game by its App ID. Includes overall score and top review snippets.

ParametersJSON Schema
NameRequiredDescriptionDefault
appidYesThe Steam App ID of the game

TDQS

A3.8/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 indicates a read-only 'Get' operation and describes output contents, but it does not mention error behavior, rate limits, or the exact shape of the response, leaving some behavioral ambiguity.

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?

Two compact sentences that state the action, target, and output contents with no filler or repetition.

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?

The tool is simple (one parameter, no output schema), and the description adequately sets expectations by naming the outputs: overall score and top review snippets. It could include response-format details, but nothing critical is missing for invoking it correctly.

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% and the appid parameter is already described as 'The Steam App ID of the game.' The description only restates this ('by its App ID'), adding no new semantic detail beyond the schema.

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 resource ('user reviews and ratings for a specific Steam game by its App ID') and states what is returned ('overall score and top review snippets'). This clearly distinguishes it from sibling tools like steam_get_game_news or steam_get_details.

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 is clear you should call this when you have an App ID and want review/rating summary data, but there is no explicit guidance about when not to use it or which sibling tool to prefer (e.g., steam_get_details for full metadata). The context is implied rather than stated.

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

steam_get_top_gamesA

Browse top games for a specific Steam category or genre (e.g., "Action", "RPG", "Strategy").

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum results to return (default: 10)
genreIdNoThe name or ID of the genre to browse

TDQS

A3.5/5.0
Behavior2/5

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

There are no annotations, so the description carries the full burden of behavioral disclosure. It does not explain what 'top' means, how games are sorted, whether genreId is resolved as a name or ID, or what happens when no genreId is provided. The description only names the operation without revealing 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?

The description is a single focused sentence, with no filler or repetition. It front-loads the core purpose and includes useful examples in a compact way.

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 simple two-parameter list tool, the description plus schema is minimally sufficient. However, with no annotations and no output schema, it leaves gaps around what 'top' means, the effect of an omitted genreId, and the shape of the response.

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?

The schema descriptions provide 100% coverage for both parameters, including the default for limit and the name-or-ID nature of genreId. The description adds slight value with genre examples and the phrase 'category or genre', but it does not significantly extend the schema semantics.

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 clearly states the tool's function: browsing top games for a specific Steam category or genre. It gives concrete examples like 'Action', 'RPG', and 'Strategy', which makes the resource and scope easy to identify. However, it does not explicitly differentiate from the sibling tool steam_get_top_sellers.

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?

The description provides a clear use case: when you want to browse top games within a specific category or genre. It does not mention alternatives or exclusion criteria, but the context is explicit enough that an agent can infer when to invoke it.

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

steam_get_top_sellersB

Get the current global top selling games on Steam.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum results to return (default: 10)

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral disclosure burden. The phrase 'current global' adds context that the result is a live, geographically broad snapshot, and 'get' implies a read-only operation. However, it does not disclose the output format, sorting logic, or whether authentication or rate limits apply.

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?

The description is a single, focused sentence with no filler or redundancy. Every word contributes meaning, and the tool's core purpose is immediately clear.

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?

The tool is simple and the schema covers its one parameter, but the description is thin for an agent selecting between similarly named siblings. It does not clarify how 'top sellers' differs from the sibling 'steam_get_top_games', and with no output schema or annotations, the description alone leaves some ambiguity about the exact result shape and selection criteria.

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?

The schema already describes the only parameter, 'limit', including its default, so schema description coverage is 100%. The description adds no parameter-level information, but none is needed beyond the schema. 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?

The description states a clear verb and resource: 'Get the current global top selling games on Steam.' It clearly describes what the tool does. However, it does not explicitly distinguish this from the sibling tool 'steam_get_top_games', so the differentiation is left to the name and inference.

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 provides no guidance on when to choose this tool over its siblings, particularly 'steam_get_top_games'. There is no mention of alternatives, exclusions, or context such as 'use this for sales-based rankings rather than player-based rankings.'

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

steamgrid_get_assetsB

Get visual assets for a game from SteamGridDB. Returns URLs for various asset types including transparent logos, boxart/grids, hero images, and icons.

ParametersJSON Schema
NameRequiredDescriptionDefault
gameIdYesThe SteamGridDB game ID
assetTypesNoTypes of assets to retrieve (default: all types)

TDQS

B3.1/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 of behavioral disclosure. It only states that the tool returns URLs; it does not describe the response structure, failure modes, empty results, rate limits, or that this is a read-only operation beyond the 'Get' verb.

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?

One concise, front-loaded sentence communicates the verb, resource, and return output without filler. Every part earns its place.

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 simple read operation with two parameters and full schema coverage, the description is minimally adequate: it says what the tool does and what it returns. However, with no output schema and no guidance on choosing this over steamgrid_get_best_logo, the description leaves some ambiguity about return format and alternative usage.

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 gameId and assetTypes are already documented. The description loosely lists asset types that match the schema enum, but it adds no additional meaning, syntax details, or context beyond what the schema provides.

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 uses a specific verb and resource: it gets visual assets from SteamGridDB for a game. It also names the asset categories (logos, boxart/grids, hero images, icons), which clarifies the tool's scope. However, it does not explicitly distinguish itself from the sibling steamgrid_get_best_logo, so it falls just short of full sibling differentiation.

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 provides no guidance on when to use this tool instead of alternatives such as steamgrid_get_best_logo, nor does it explain when to restrict assetTypes. The intended use is implied by the name and schema but never stated explicitly.

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

steamgrid_search_gameA

Search for video games on SteamGridDB by name. Returns a list of matching games with their SteamGridDB IDs, which can be used to retrieve visual assets.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesThe game name to search for

TDQS

A3.6/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 discloses the output type (a list of games with IDs) but lacks any information on rate limits, authentication, pagination, or side effects. As a search tool it is presumably read-only, but that is not stated. The description provides minimal behavioral context beyond the obvious.

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?

The description is a single, efficient sentence that front-loads the action and resource, then adds the key outcome. No redundant or filler content, every word contributes to understanding.

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 simple one-parameter search tool with no output schema, the description adequately explains what it does and what the result looks like. It does not mention optional filters or edge cases, but none are implied by the schema. Given the simplicity, the description is nearly 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?

The schema description for 'query' is already clear ('The game name to search for') and covers 100% of the single parameter. The description adds no further parameter-level details, only reiterating that the search is by name. Baseline of 3 is appropriate given high schema coverage.

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 clearly states a specific action ('Search') on a specific resource ('video games on SteamGridDB') and explains the result (list with IDs for retrieving assets). This distinguishes it from sibling tools like steam_search_game, which searches the Steam store, by explicitly naming SteamGridDB as the data source.

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 usage for retrieving visual assets by noting the IDs can be used for that purpose, but it does not explicitly state when to use this tool versus alternatives like steam_search_game or provide any exclusions. Usage guidance is implied rather than explicit.

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

steam_search_gameA

Search for video games on Steam by name. Returns a list of matching games with their App IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return (default: 10)
queryYesThe game name to search for

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description bears the full burden of behavioral disclosure. It only states that it returns a list, without mentioning read-only status, rate limits, pagination, or edge cases. For a search operation, this is minimal and does not add context beyond the obvious.

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?

The description is a single, front-loaded sentence that states purpose and return value with zero wasted words. It is appropriately concise for a simple search tool.

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 simple two-parameter search tool with complete schema coverage and no output schema, the description is functionally adequate. It conveys the core purpose and return. However, it does not mention any caveats, such as the read-only nature, result ordering, or how to chain with other tools like steam_get_details. These gaps are minor given the low complexity but prevent a higher score.

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?

The schema covers both parameters (query and limit) with descriptions, so the baseline is 3. The tool description adds no additional meaning about the parameters—it does not clarify the query format, limit behavior, or how they interact. The schema already handles this adequately.

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 states a specific verb ('Search'), a clear resource ('video games on Steam'), and the expected return ('a list of matching games with their App IDs'). This clearly distinguishes it from sibling search tools like steamgrid_search_game and screenscraper_search_game by naming the platform (Steam).

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 clearly implies when to use this tool (when you need to find a Steam game by name), but it does not explicitly mention alternatives or when NOT to use it. No exclusions or comparisons with sibling tools are given, leaving the agent to infer the appropriate context.

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. 16 tool updatesv0.0.0
    • First observedgame_get_full_profile
    • First observedscreenscraper_get_game_info
    • First observedscreenscraper_get_systems
    • First observedscreenscraper_search_game
    • First observedsteam_get_details
    • First observedsteam_get_dlc_list
    • First observedsteam_get_game_news
    • First observedsteam_get_genres
    • First observedsteam_get_player_count
    • First observedsteam_get_reviews_summary
    • First observedsteam_get_top_games
    • First observedsteam_get_top_sellers
    • First observedsteam_search_game
    • First observedsteamgrid_get_assets
    • First observedsteamgrid_get_best_logo
    • First observedsteamgrid_search_game

TDQS

A3.6/5.0

Scored across 16 tools

Disambiguation4/5

Most tools are clearly distinct due to consistent source prefixes and specific object names, but there are a few potential confusions: the three search_game tools (steam, steamgrid, screenscraper) all search by name, and steam_get_details overlaps somewhat with the aggregator game_get_full_profile. Overall, descriptions clarify the boundaries well enough for an agent to choose correctly.

Naming Consistency4/5

Tools follow a mostly consistent source_verb_object snake_case pattern, e.g., steam_get_details, steamgrid_get_assets, screenscraper_search_game. Minor deviations include the abbreviated source prefixes (steamgrid vs. steamgriddb, screenscraper vs. screenscraper.fr) and the aggregator tool game_get_full_profile, which breaks the source-prefix convention.

Tool Count4/5

At 16 tools, the count is slightly above the typical 3-15 sweet spot, but the server covers three distinct data sources (Steam, SteamGridDB, ScreenScraper), so the size is reasonable. A couple of tools, such as steamgrid_get_best_logo and game_get_full_profile, are somewhat redundant with existing tools but still serve convenient, focused purposes.

Completeness4/5

The toolset provides broad read-only coverage for a video game encyclopedia: search, metadata, reviews, news, player counts, DLC, genres, top lists, visual assets, and retro system data. Minor gaps include no detailed DLC information beyond names/IDs, no direct Steam App ID-to-SteamGridDB mapping outside the full profile, and only review summaries rather than full review lists.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers