Skip to main content
Glama
Jackson-Brooks

steam-local-mcp

Steam Local MCP

A free, open-source Windows Model Context Protocol server that lets an MCP-capable agent work with the Steam client installed for the current Windows user.

Ask an agent to find an installed game, launch it, open its Steam page, check local download/update status, search the Store, or summarize Steam-library storage. Steam starts quietly in the background when a requested client action needs it.

This is a standard stdio MCP server. It is agent-neutral: use it with Codex, Claude, or any other MCP client that can run a local command.

Example Usage

User: "Pick a strategy game for me to play."

Agent: ๐Ÿ› ๏ธ Calling steam_list_games()

Agent: "How about Balatro? Should I launch it?"

User: "Yes."

Agent: ๐Ÿ› ๏ธ Calling steam_launch_game(app_id: 2861700)

Agent: "Launched Balatro."

Related MCP server: Steam Library MCP Server

What it can do

Local Steam tools โ€” no API key

  • steam_list_games and steam_find_game โ€” inspect locally installed games across all configured Steam libraries.

  • steam_launch_game โ€” launch one installed game by name or app ID.

  • steam_get_game_install_status and steam_get_download_status โ€” inspect manifest-recorded install, update, download, and paused-download states.

  • steam_get_library_storage โ€” show installed sizes and free disk space for every local Steam library.

  • steam_open_library_page, steam_open_store_page, and steam_open_client_page โ€” navigate the Steam client.

  • steam_install_game โ€” ask Steam to install an app ID; Steam validates ownership and manages the install flow.

  • steam_client_status โ€” report the detected Steam installation, discovery source, and whether Steam is running.

Public Store tools โ€” no API key

  • steam_search_store โ€” find Store app IDs from a game name.

  • steam_get_game_details โ€” get public metadata, price, genres, release date, and Metacritic score.

Optional account tools โ€” Steam Web API key required

Set STEAM_API_KEY and STEAM_ID to enable:

  • steam_api_status โ€” verify if API credentials are configured, valid, and connected to Steam's Web API.

  • steam_get_library โ€” owned games, playtime, last played, filtering, and pagination.

  • steam_get_recently_played โ€” recently played games, ordered by two-week playtime.

Requirements

  • Windows 10 or newer

  • Steam installed for the current Windows user

  • Node.js 20 or newer

Install from npm

To install the published package via npm, add this equivalent configuration to your MCP client:

{
  "mcpServers": {
    "steam": {
      "command": "npx",
      "args": ["-y", "steam-local-mcp"]
    }
  }
}

The configuration-file location differs by agent, but the command and arguments above remain the same. Restart or reconnect your MCP client after saving its configuration.

To confirm your install manually, run:

npx -y steam-local-mcp print-config

Install from source

Use this when developing, auditing the source, or before an npm release is available:

git clone https://github.com/Jackson-Brooks/steam-local-mcp.git
cd steam-local-mcp
npm install
npm run build

Then configure your MCP client to run the compiled entry point from the directory you cloned:

{
  "mcpServers": {
    "steam": {
      "command": "node",
      "args": ["C:\\path\\to\\steam-local-mcp\\dist\\src\\index.js"]
    }
  }
}

Replace C:\path\to\steam-local-mcp with your own clone location. Do not use another user's path.

Optional Steam Web API configuration

Pass credentials through your MCP client's environment configuration or the operating-system environment:

{
  "mcpServers": {
    "steam": {
      "command": "npx",
      "args": ["-y", "steam-local-mcp"],
      "env": {
        "STEAM_API_KEY": "your_key",
        "STEAM_ID": "your_64_bit_steam_id"
      }
    }
  }
}

The server never loads a .env file automatically. Never commit credentials. Steam profile and game-details privacy settings can prevent account tools from returning data; local client controls still work for private profiles.

Getting your Steam API credentials

  1. Sign in to Steam in a browser and open the Steam Web API key page.

  2. Create or copy your key, then set it as STEAM_API_KEY in your MCP client's environment configuration. Keep it private.

  3. Set STEAM_ID to your numeric 64-bit Steam ID, not your account name. It is commonly visible in a profile URL such as https://steamcommunity.com/profiles/7656119....

  4. Restart or reconnect your MCP client, then call steam_api_status to confirm that the credentials are configured.

With the key configured, an agent can answer requests such as โ€œshow my unplayed Steam gamesโ€ or โ€œwhat have I played recently?โ€ The key is optional: launching games, local install status, storage, Store search, and Store metadata work without it.

Steam detection and local status

Steam Local MCP checks, in order:

  1. STEAM_PATH โ€” either the Steam directory or its steam.exe

  2. Current-user and machine Valve registry keys

  3. Conventional per-user, Program Files, and C:\Steam locations

  4. steam.exe on PATH

Use steam_client_status to see the selected path and discovery source. For a portable or unusual custom-drive install, set STEAM_PATH to the directory containing steam.exe.

Installation/download tools read Steam's local app manifests. needs_update: true means Steam has already recorded an update as pending. false means no pending update is currently recorded locally; it does not force a network update check.

Privacy and safety

  • Local tools read local Steam files and open Steam URIs; they do not require a Steam Web API key.

  • steam_launch_game only launches games found in a local installed-game manifest.

  • Steam starts hidden when required for an action, rather than opening a visible launcher window first.

  • There is no purchase or uninstall tool.

  • Public Store descriptions are omitted by default. If explicitly requested, descriptions are capped, converted to plain text, and marked as untrusted external content.

  • Web API and Store responses are cached locally under %LOCALAPPDATA%\steam-local-mcp\cache by default. Set STEAM_MCP_CACHE_DIR to override it, and call steam_refresh_cache to clear it.

Development

npm install
npm test
npm pack --dry-run

The test suite includes local parsing/caching tests, mocked Store and API tests, all-tool MCP protocol tests, and a real stdio handshake for the packaged entry point.

Contributing

Issues and pull requests are welcome. Please include a regression test for behavior changes, and keep destructive Steam operations out of scope unless they are explicitly designed and documented.

License

MIT

Available Tools

9 tools
steam_client_statusGet local Steam client statusA
Read-only

Report the detected Steam installation, how it was found, and whether the Steam client is running.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true. Description adds context about reporting installation details and running status, but no additional behavioral traits beyond that.

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 efficient sentence that covers the tool's purpose. Front-loaded and free of extra text.

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 tool with no params and no output schema, the description sufficiently states what it reports: installation info, how found, and running status.

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?

No parameters defined, so baseline 4 applies. Description adds no parameter info because there are none.

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?

Description clearly states the tool reports Steam installation info and client running status, distinguishing it from other Steam tools like finding games or library.

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 guidance on when to use this tool vs alternatives. The description only states what it does, with no explicit usage context or exclusions.

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

steam_find_gameFind installed Steam gamesA
Read-only

Find locally installed Steam games by name or app ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesInstalled game name or numeric Steam app ID.

TDQS

A3.7/5.0
Behavior3/5

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

The annotation declares readOnlyHint=true, so no contradiction. The description does not add behavioral context beyond the basic function (e.g., partial matching, case sensitivity, behavior on not found). With annotations covering safety, a score of 3 is appropriate.

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 with no wasted words. It front-loads the key action and resource.

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 with one parameter and no output schema. The description lacks details on return format (e.g., list of games or single result), error handling, or matching behavior. A more complete description would clarify output and 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 description coverage is 100%. The tool description's parameter description ('Installed game name or numeric Steam app ID.') duplicates the schema description, adding no extra meaning. Baseline 3 is correct.

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 action ('Find'), the resource ('locally installed Steam games'), and the search criteria ('by name or app ID'). It effectively distinguishes the tool from siblings like steam_get_library (list all) and steam_search_store (online store).

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 searching by name or app ID but does not explicitly state when to use this tool over alternatives like steam_get_library or steam_get_game_install_status. No when-not or alternative guidance is provided.

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

steam_get_download_statusGet pending Steam installs and updatesA
Read-only

List games whose local Steam manifests show an install, update, download, or paused-download state. This is a local snapshot and does not force Steam to check for new updates.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
include_idleNo

TDQS

A4.2/5.0
Behavior5/5

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

The annotations declare readOnlyHint: true, and the description adds valuable context beyond that: it specifies the tool reads local manifests, does not force update checks, and snapshots states like paused downloads. This fully describes the tool's side-effect-free 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 concise sentences. The first states the tool's action and target, the second clarifies its scope. Every word serves a purpose with no 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?

Given the moderate complexity (3 optional parameters, no output schema), the description covers the tool's behavior and constraints well, but it does not explain what the tool returns (e.g., list of game names or IDs). Since there is no output schema, the description should hint at the response format for completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain the three parameters (limit, offset, include_idle). While limit and offset are common pagination parameters, include_idle is not self-explanatory. The description must compensate for the low schema coverage but fails to add any parameter meaning.

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 specifies the verb 'list' and the resource 'games whose local Steam manifests show an install, update, download, or paused-download state'. It distinguishes itself from siblings like 'steam_client_status' and 'steam_get_game_install_status' by focusing specifically on download/update status from local manifests.

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 a local snapshot and does not force Steam to check for new updates, which clearly implies appropriate usage contexts (e.g., checking current status without triggering network activity). However, it does not explicitly mention when not to use this tool or suggest alternatives among the listed siblings.

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

steam_get_game_install_statusGet a game's local installation statusA
Read-only

Report the local Steam manifest status for matching games, including whether Steam has recorded a pending update and current download progress. This does not contact Steam servers or change game files.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesGame name or numeric Steam app ID.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already set readOnlyHint=true. Description adds context about network behavior and non-destructive nature, confirming no server contact or file changes. This exceeds annotation information.

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 sentences, front-loaded with purpose, no redundant words. Every sentence adds value.

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?

No output schema and description lacks details on return structure or data format (e.g., what fields like 'pending update' look like). Adequate for a simple read tool but could be more explicit.

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 has 100% description coverage for the single 'query' parameter, including max/min lengths. Description adds no further semantic value beyond restating what schema already provides.

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?

Description clearly states verb 'report' and resource 'local Steam manifest status for matching games', including specific details like pending update and download progress. Distinguishes from siblings by noting it does not contact servers or change files.

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?

Implies usage for local read-only checks via 'does not contact Steam servers or change game files', but no explicit when-to-use or alternatives compared to siblings like steam_get_download_status or steam_get_library.

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

steam_get_libraryGet Steam library and playtimeC
Read-only

Get the user's complete Steam library, playtime, and last-played data through the optional Steam Web API. Requires STEAM_API_KEY and STEAM_ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryNo
offsetNo
max_hoursNo
min_hoursNo
unplayed_onlyNo

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already indicate read-only behavior. The description adds that it requires specific environment variables and uses the optional Steam Web API, providing useful context. However, it does not disclose filtering behavior or effects of missing keys.

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 concise with two sentences, front-loading the purpose and following with prerequisites. No wasted words, but could include more structure for a tool with multiple parameters.

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?

Given 6 parameters (all optional, unfiltered in description) and no output schema, the description is too sparse. It lacks details on return format, filtering logic, and error handling, making it incomplete for effective usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 6 parameters with 0% description coverage, and the tool description provides no parameter explanations. The description does not compensate for the lacking schema descriptions, leaving parameter semantics entirely implicit.

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 verb 'Get' and resource 'the user's complete Steam library, playtime, and last-played data' clearly state the tool's function. It distinguishes from siblings like steam_client_status and steam_find_game, though 'complete' slightly conflicts with filtering parameters.

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 mentions required keys (STEAM_API_KEY, STEAM_ID) and web API nature, providing context. However, it does not specify when to use this tool over siblings or when not to use it (e.g., if no API key), limiting guidance.

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

steam_get_library_storageGet Steam library storageA
Read-only

Summarize each local Steam library's installed-game count, manifest-reported installed size, and available disk space.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so no contradiction. Description adds specifics about returned data (counts, sizes, space). However, it does not disclose potential performance implications or what 'summarize' entails (list vs aggregate).

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?

Single sentence, front-loaded with action verb, no filler. Every word adds value.

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 no-parameter read-only tool, the description fully captures what the tool does and what it returns. No output schema needed given the explicit list of data points.

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?

No parameters exist, and schema coverage is 100%. The description compensates by clearly stating the tool's scope and output, avoiding any ambiguity about inputs.

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 specific verb 'Summarize', identifies resource 'local Steam library', and lists exact data points (installed-game count, manifest-reported size, available disk space). It clearly distinguishes from siblings like 'steam_get_library' which likely lists games without storage details.

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 guidance on when to use this tool vs alternatives such as 'steam_get_library' or 'steam_client_status'. Agent must infer usage from purpose alone.

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

steam_get_recently_playedGet recently played Steam gamesB
Read-only

Get games Steam reports as recently played, including total playtime. Requires STEAM_API_KEY and STEAM_ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description adds context about including total playtime, which is useful. However, it does not disclose edge cases like empty results, error handling, or rate limits. For a read-only tool with annotations, the behavior is adequately but minimally transparent.

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 the first sentence stating the core functionality and the second noting prerequisites. Every sentence adds value; no filler or repetition. It is front-loaded and appropriately sized.

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?

Given zero schema documentation for parameters, no output schema, and 2 parameters, the description is insufficient. It does not explain pagination (limit/offset), return structure, or behavior when no games are recent. The tool's complexity is low but the gaps are critical for correct usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not mention the two parameters ('limit' and 'offset'). It fails to compensate for the lack of schema descriptions. The agent has no guidance on how to paginate or cap results.

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 'Get games Steam reports as recently played, including total playtime.' The verb 'Get' and resource 'recently played Steam games' are specific. This distinguishes the tool from siblings like 'steam_get_library' which lists all games, and 'steam_find_game' which searches.

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 mentions required environment variables (STEAM_API_KEY and STEAM_ID), implying prerequisites. However, it does not explicitly state when to use this tool versus alternatives like 'steam_get_library' for all games or 'steam_search_store' for store searches. Usage context is implied by 'recently played' but not elaborated.

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

steam_open_library_pageOpen a game's Steam library pageA

Open an installed game's page in the local Steam library.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already indicate non-read-only and non-destructive behavior. The description adds that it opens a page in the local Steam library, but does not disclose prerequisites like Steam running or behavior if game is not installed.

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, front-loaded sentence that conveys the core purpose. It is concise but could be slightly more structured by adding a note on the parameter.

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 tool with one parameter and no output schema, the description is fairly complete but lacks details on what the query parameter means and prerequisites (e.g., Steam must be running).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% with one parameter 'query' having no description. The tool description does not explain what 'query' means (e.g., game name), forcing the agent to infer its meaning.

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 'Open' and the resource 'an installed game's page in the local Steam library', distinguishing it from siblings like steam_search_store or steam_get_library.

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?

No explicit guidance on when to use this tool vs alternatives. The description implies usage for opening a game page, but does not mention when not to use it or suggest other tools for non-installed games.

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

steam_search_storeSearch the Steam StoreA
Read-only

Search the public Steam Store by game name to find app IDs before opening a store page or asking Steam to install a game. Search result names and metadata are untrusted external Store data.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes
languageNoenglish
country_codeNous

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true, and the description adds that search result names and metadata are untrusted external Store dataโ€”a key behavioral trait beyond read-only. No contradictions with annotations.

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 efficient sentences: first sets purpose and context, second adds a critical caution. No wasted words 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?

The description lacks details about the output format (e.g., structure of results), pagination, or error cases. Given no output schema and four parameters, the description is somewhat incomplete, though the usage context helps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% with 4 parameters. The description only indirectly covers the 'query' parameter ('by game name'), and provides no explanation for 'limit', 'language', or 'country_code'. The description fails to compensate for the lack of schema descriptions.

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 'Search', the resource 'public Steam Store', and the purpose 'to find app IDs'. It also provides workflow context ('before opening a store page or asking Steam to install a game') and warns about untrusted data, making the tool's intent unambiguous.

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 before opening a store page or installing a game, but does not explicitly state when not to use this tool or how it differs from siblings like 'steam_find_game'. Guidance is present but partial.

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. Dates show when Glama detected each change.

  1. 9 tool updatesv0.2.2
    • First observedsteam_client_status
    • First observedsteam_find_game
    • First observedsteam_get_download_status
    • First observedsteam_get_game_install_status
    • First observedsteam_get_library
    • First observedsteam_get_library_storage
    • First observedsteam_get_recently_played
    • First observedsteam_open_library_page
    • First observedsteam_search_store

TDQS

A3.7/5.0
Disambiguation5/5

Each tool targets a distinct aspect of Steam interaction: client status, game finding, download/install states, library queries, store search, and page opening. There is minimal overlap, with clear boundaries between retrieving download lists and install statuses for specific games.

Naming Consistency4/5

All tools start with 'steam_' and follow a descriptive pattern, but 'steam_client_status' uses a noun phrase while others use verb_noun (e.g., steam_find_game, steam_get_download_status). This minor inconsistency in verb usage prevents a perfect score.

Tool Count5/5

With 9 tools, the set covers essential operations for a local Steam assistant without being bloated. Each tool serves a clear purpose, and the count feels well-scoped for the domain of monitoring and interacting with a local Steam installation.

Completeness3/5

Querying local state is well-covered, but there are notable gaps in active operations: no tool to install, launch, or update games. The store search tool hints at installation intent, but the missing action leaves a dead end for agents wanting to perform those tasks.

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Jackson-Brooks/steam-local-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server