Skip to main content
Glama

Steam MCP Server

npm version License: MIT

A feature-rich Model Context Protocol server that gives AI assistants full access to your Steam game library. Works on Linux, macOS, and Windows. 14 consolidated tools covering 66 actions — most work from local files with no API key needed. Optional Steam Web API key unlocks online data like achievements, friends, and full library access.

Works with Claude Desktop, Claude Code, or any MCP-compatible client.

What can it do?

Ask your AI assistant things like:

  • "What games do I have installed?"

  • "Search for ck3" → finds Crusader Kings III via abbreviation matching

  • "How much disk space is Steam using?" → full breakdown by game

  • "Find orphaned data I can clean up" → identifies leftover compatdata/shadercache

  • "What Proton version should I use for this game?"

  • "Install Hollow Knight" → looks up the appid and tells Steam to install it

  • "Pick a random game for me to play"

  • "Show my full play history" → all-time playtime across your entire library

  • "Import my Lutris games as Steam shortcuts"

  • "Show my achievements for Hades" → unlock status, completion %, global stats

  • "Who's online right now?" → friends list with online status and current games

  • "What's on my wishlist?"

  • "Show me reviews for Elden Ring"

  • "How long to beat Hollow Knight?"

Related MCP server: mcp-steam

Installation

npx @praeses/steam-mcp

No install needed — just add it to your MCP client config (see below).

Global install

npm install -g @praeses/steam-mcp

Then use steam-mcp as the command instead of npx @praeses/steam-mcp.

Configure with Claude Desktop

Add to your Claude Desktop config:

  • Linux: ~/.config/Claude/claude_desktop_config.json

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

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "steam": {
      "command": "npx",
      "args": ["@praeses/steam-mcp"],
      "env": {
        "STEAM_API_KEY": "your-key-here"
      }
    }
  }
}

Configure with Claude Code

Add a .mcp.json in your project root, or add to ~/.claude.json for system-wide access:

{
  "mcpServers": {
    "steam": {
      "command": "npx",
      "args": ["@praeses/steam-mcp"],
      "env": {
        "STEAM_API_KEY": "your-key-here"
      }
    }
  }
}

Note: The STEAM_API_KEY is optional. Most tools work without it. Only a few actions (achievements, friends, owned games, wishlist, profile) require it. Get your key at steamcommunity.com/dev/apikey.

Category filtering

To reduce context window usage further, enable only specific tool categories via the STEAM_TOOLS env var:

{
  "env": {
    "STEAM_TOOLS": "core,manage,compat"
  }
}

Available categories and their tools:

Category

Tools

Description

core

games, library, steam_status

Game browsing, library stats, Steam status

compat

proton, diagnostics

Proton/Wine compatibility, log parsing

manage

game_control, game_config, shortcuts

Install/launch/verify, launch options, non-Steam shortcuts

storage

storage

Disk usage, cleanup, shader cache, cloud saves, backups

api

player, workshop

Player profile/achievements/friends, workshop items

market

deals

Sale checks, wishlist, library valuation

insights

insights

Completion stats, timeline, year review, play history, export

content

game_info

Reviews, news, media, HLTB, PCGamingWiki fixes

When unset, all categories are enabled (14 tools, ~3,200 tokens of context).

Prerequisites

  • Node.js 18+

  • Steam installed in the default location:

    • Linux: ~/.local/share/Steam/

    • macOS: ~/Library/Application Support/Steam/

    • Windows: C:\Program Files (x86)\Steam\

Proton/Wine tools (compatibility tracking, prefix inspection, crash logs) are Linux-only. All other tools work cross-platform.

Tools

Each tool uses an action parameter to select the operation. 14 tools cover 66 actions total.

games — Game discovery and browsing

Action

Description

list

List installed games with filtering, sorting, pagination

get

Get full details for a game by appid

search

Smart search with abbreviation matching (e.g. "ck3" → Crusader Kings III)

compare

Compare two games side-by-side

random

Pick a random installed game

unplayed

Find games you own but haven't played

library — Library folders and stats

Action

Description

list

List all Steam library folders with sizes and free space

stats

Aggregate stats: total games, playtime, disk usage

steam_status — Steam client status

Action

Description

status

Check if Steam is running

queue

View current download queue

progress

Check download progress for a game

proton — Proton/Wine compatibility (Linux)

Action

Description

list_games

List all games using Proton/Wine with versions and prefix sizes

info

Get compatibility details for a specific game

versions

List installed Proton versions and which games use them

db_rating

Fetch ProtonDB community rating

recommend

Get a Proton version recommendation for a game

prefix

Inspect Wine/Proton prefix (Windows version, file count, size)

crash_logs

Find and read crash dumps and logs

storage — Disk management

Action

Description

disk_report

Per-game disk usage breakdown (install + compat + shader + workshop)

orphaned

Find leftover data from uninstalled games

cleanup

Get cleanup recommendations with space savings

shader_cache

Shader cache size for a specific game

shader_stats

Shader cache overview across all games

saves_list

List local cloud save data per game

saves_stats

Cloud save aggregate stats

backup

Back up cloud saves to a directory

game_control — Game actions

Action

Description

install

Install a game via Steam

uninstall

Uninstall a game

launch

Launch a game

verify

Verify game file integrity

move

Move a game to another library folder

store_page

Open the Steam store page

game_config — Configuration and tweaks

Action

Description

get_launch_opts

Read current launch options

set_launch_opts

Set launch options

presets

List/apply launch option presets (MangoHud, GameMode, Vulkan, etc.)

mangohud

Show, set, or reset MangoHud configuration

steam_settings

View Steam client settings

player — Player data (most actions require API key)

Action

Description

summary

Player profile with online status and account info

level

Steam level, XP, and badges

bans

VAC and game ban status

friends

Friends list with online status and current games

achievements

Per-game achievement unlock status

global_achievements

Global achievement unlock percentages

schema

Achievement and stat definitions for a game

owned

Complete owned games list with playtime

recent

Recently played games

workshop — Steam Workshop

Action

Description

list

List installed workshop items for a game

stats

Workshop stats across all games

search

Search the Steam Workshop

shortcuts — Non-Steam game shortcuts

Action

Description

list

List all non-Steam shortcuts

add

Add a new shortcut

remove

Remove a shortcut

import_lutris

Import games from Lutris

deals — Pricing and wishlist

Action

Description

check_sale

Check if a game is on sale

wishlist_deals

Find discounted games on your wishlist

wishlist

View full wishlist with prices and reviews

library_value

Estimate total library value

insights — Analytics and history

Action

Description

completion

Achievement completion rates across top games

timeline

Month-by-month gaming activity

year_review

Annual gaming recap

play_history

Full playtime history (installed + uninstalled games)

export

Export library data as JSON or CSV

game_info — Game content and metadata

Action

Description

reviews

User reviews with scores

news

Latest news articles

media

Game artwork URLs and local overrides

hltb

HowLongToBeat completion time estimates

pcgamingwiki

PCGamingWiki fixes and tweaks

diagnostics — Log parsing

Action

Description

compat_log

Parse Proton/Wine compatibility logs

shader_log

Parse shader compilation logs

Key Highlights

  • Minimal context footprint — 14 tools, ~3,200 tokens (down from 66 tools / ~8,000 tokens in v1)

  • Cross-platform — Linux, macOS, and Windows (Proton tools are Linux-only)

  • No API key needed for most actions — reads directly from Steam's local files

  • Smart search — "ck3" finds "Crusader Kings III", "ror2" finds "Risk of Rain 2"

  • Full play history — playtime for every game you've ever played, not just installed ones

  • Storage analysis — shows exactly where disk space goes (installs + compatdata + shadercache + workshop)

  • Orphan detection — finds GBs of leftover data from uninstalled games

  • Multi-library — supports multiple Steam library folders including external drives

  • Category filtering — enable only the tool groups you need via STEAM_TOOLS env var

  • Custom VDF parsers — both text and binary formats, no external dependencies

Development

Install from source

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

Commands

npm run dev      # Run with tsx (auto-reload)
npm run build    # Compile TypeScript
npm test         # Run tests

Architecture

src/
├── index.ts                 # Server entry, category-based tool registration
├── vdf/
│   ├── parser.ts            # Text VDF recursive descent parser + serializer
│   ├── binary-parser.ts     # Binary VDF parser (shortcuts.vdf)
│   ├── binary-writer.ts     # Binary VDF writer (shortcut management)
│   └── types.ts             # VdfValue, VdfObject types
├── steam/
│   ├── paths.ts             # Cross-platform Steam dir resolution, user detection
│   ├── manifests.ts         # App manifest reading with mtime caching
│   ├── library.ts           # Library folder operations + disk info
│   ├── userdata.ts          # localconfig.vdf read/write
│   ├── compat.ts            # Proton/Wine compatibility tracking
│   ├── workshop.ts          # Workshop manifest reading
│   ├── shortcuts.ts         # Binary shortcuts.vdf read/write
│   ├── api.ts               # Steam Web API client
│   ├── api-types.ts         # Shared API response types
│   ├── wishlist.ts          # Wishlist data fetching
│   ├── logs.ts              # Steam log parsing
│   └── types.ts             # Domain types
├── tools/                   # 14 consolidated MCP tools (one file per tool)
└── util/
    ├── format.ts            # formatBytes, formatPlaytime, formatTimestamp
    ├── cache.ts             # FileCache<T> with mtime invalidation
    └── fs.ts                # Shared filesystem utilities

License

MIT

Available Tools

14 tools
dealsC

Sale checks, wishlist, deals, library value

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
appidNo
actionYes
steamidNo

TDQS

C2.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 disclosing behavior. It only offers tags like 'Sale checks' and 'library value' and does not mention side effects, read-only behavior, required context, or return behavior.

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

Conciseness2/5

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

The description is short, but it is an under-specified comma-separated fragment rather than a structured, informative definition. It repeats the tool's general concept without earning its place through added operational detail.

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 four actions, four parameters, no output schema, and no annotations, the description is far too thin to support correct invocation. It gives a rough sense of the tool's purpose but lacks critical context about action-specific parameters, expected results, and invocation requirements.

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%, so the description must compensate for missing parameter documentation. It does not explain name, appid, steamid, or the action values beyond broad topical hints, leaving agents to infer parameter usage from the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the domain—sale checks, wishlist, deals, library value—which loosely maps to the action enum. However, it is a fragment with no verb or explicit 'does X' structure, so it does not clearly state what the tool does or how it differs from siblings like library or games.

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 versus alternatives such as library, games, or insights. It lists possible topics but never states conditions, exclusions, or which action should be chosen in which scenario.

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

diagnosticsC

Parse Proton compat or shader logs

ParametersJSON Schema
NameRequiredDescriptionDefault
appidNo
linesNo
actionYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavior, but it only says 'Parse logs'. It does not mention whether this reads local files, requires an installed game, produces a summary or raw output, or has side effects. The safety profile and operational behavior are left entirely unspecified.

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 efficient sentence with no filler. It conveys the core action concisely, though it is terse and could include more useful context without becoming bloated.

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 no output schema, no annotations, and three parameters at 0% schema coverage, the description is insufficient for an agent to confidently call the tool. Missing details include what input values are valid beyond the enum, what output to expect, and what prerequisites exist.

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%, so the description needs to explain the parameters. It indirectly maps to the action enum by mentioning 'compat or shader logs', but it gives no meaning for 'appid' or 'lines', leaving two of three parameters undocumented in both schema and description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Parse') and a clear resource ('Proton compat or shader logs'), making the tool's core purpose understandable. It does not explicitly contrast with sibling tools like 'proton', but the log-parsing focus is distinct enough for basic selection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives such as 'proton' or 'game_info'. The action enum hints at two log types, but the description does not explain what scenario calls for parsing these logs or when another tool would be more appropriate.

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

game_configC

Launch options, presets, MangoHud, Steam settings

ParametersJSON Schema
NameRequiredDescriptionDefault
appidNo
actionYes
presetNo
optionsNo
settingsNo
mangohud_actionNo

TDQS

C2/5.0
Behavior1/5

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

No annotations are present, so the description carries the full burden of behavioral disclosure. The fragment only lists config domains and never states whether operations are reads or writes, whether settings persist, or what side effects occur. An agent cannot anticipate the behavior of actions like set_launch_opts or mangohud.

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

Conciseness2/5

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

Eight words make it concise, but conciseness crosses into under-specification: no sentence structure, no front-loaded purpose, and no information that helps invocation. It resembles labels rather than a structured tool description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With six parameters, a required action enum, and no output schema or annotations, the description is far too thin. It omits behavior, return values, and any conditions, so an agent cannot reliably construct a call.

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%, so the description needed to explain the six parameters, but it only restates the broad action domains. It does not clarify required fields (action), how preset/options/settings interact, or the meaning of mangohud_action beyond its enum name. Minimal thematic mapping, no semantic depth.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a resource (game_config) and enumerates its domains: launch options, presets, MangoHud, Steam settings. However, it lacks a verb or explicit statement of what the tool does, and it doesn't differentiate it from sibling tools like game_control or diagnostics. This is enough for a vague orientation, not a clear purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool over siblings such as game_control, games, or diagnostics. No context, prerequisites, or exclusions are provided.

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

game_controlC

Install, uninstall, launch, verify, move, or open store page

ParametersJSON Schema
NameRequiredDescriptionDefault
appidYes
actionYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It lists mutating and potentially destructive actions like uninstall and move but gives no warnings, prerequisites, side effects, or reversibility information, leaving the safety profile unknown.

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 sentence with no filler, and the action list is front-loaded. It could be improved by structuring it as 'Control a game: ...', but it is appropriately brief.

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 two required parameters and no output schema, the description omits safety context, return behavior, and operation details. An agent cannot tell what happens after launch or verify, and destructive operations are unmarked, making the description insufficient for safe invocation.

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%, yet the description merely restates the enum values in prose, adding no meaning beyond the input schema. 'verify' and 'move' remain underspecified, appid is not explained, and the missing destination parameter for move is not addressed.

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 lists concrete operations (install, uninstall, launch, verify, move, open store page) that clearly imply a game-control tool, distinguishing it from siblings like games or library. It loses a point because the resource is never explicitly named, and 'move' is ambiguous without a destination.

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 is given on when to use this tool versus siblings, no context or exclusion criteria. With 13 sibling tools, the agent must infer which operation to route here, which the description does not help with.

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

game_infoD

Reviews, news, media, HLTB times, PCGamingWiki fixes

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
appidNo
countNo
actionYes
filterNo

TDQS

D1.8/5.0
Behavior1/5

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

With no annotations and no output schema, the description carries the full burden of behavioral disclosure. It only lists content categories and does not mention whether the operation is read-only, what inputs are required, how actions affect the response, or any limits. This is insufficient for safe and correct invocation.

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

Conciseness2/5

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

The description is extremely brief, which is concise, but it is an under-specified fragment rather than a well-structured explanation. It conveys only a list of topics and does not earn its place by improving usability. The lack of sentences or meaningful detail makes this closer to under-specification than true conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has five parameters, one required, two enums, no output schema, and no annotations, yet the description is only seven words. There is no explanation of action semantics, parameter combinations, or return behavior. This is far too little context for an agent to call the tool correctly.

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%, so the description must compensate for the five undocumented parameters. It does not explain name, appid, count, or filter at all; it only repeats the action categories already present in the schema enum. No parameter meaning, optionality, or interaction is clarified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description lists the content areas the tool covers (reviews, news, media, HLTB times, PCGamingWiki fixes), which indicates the general resource domain. However, it lacks a verb such as 'fetch' or 'retrieve,' so it reads as a fragment rather than a clear statement of what the tool does. It also does little to distinguish this tool from siblings like games or insights.

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 is given about when to use this tool versus alternatives among the many siblings. The action enum and title imply it is for game information lookups, but the description never states a preferred context, prerequisites, or exclusions. An agent would have to infer usage from the name and schema.

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

gamesC

List, get, search, compare, random pick, or find unplayed games

ParametersJSON Schema
NameRequiredDescriptionDefault
appidNo
limitNo
queryNo
actionYes
appid2No
filterNo
offsetNo
searchNo
sort_byNo
sort_orderNo
include_storeNo

TDQS

C2.5/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, but it only repeats the action names. It does not state whether operations are read-only, what 'random pick' selects from, how 'compare' behaves with appid/appid2, or what the response looks like. The schema enum already conveys the action set, so the description adds almost nothing beyond structured data.

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

Conciseness3/5

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

The single sentence contains no wasted words and front-loads the six actions efficiently. However, the brevity comes at the expense of essential guidance, making this under-specification rather than genuine conciseness for an 11-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a complex multi-action tool with 11 parameters, 0% schema coverage, no annotations, and no output schema, yet the description offers only an action list. An agent cannot determine which parameters pair with which action, how pagination works, what filter values are valid, or what the return shape is. The description is drastically inadequate for the tool's complexity.

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% across 11 parameters, so the description must compensate heavily. It does not: none of appid, limit, query, filter, offset, search, sort_by, sort_order, or include_store are explained, and the ambiguous query-vs-search and appid-vs-appid2 distinctions are left unresolved. The description only maps to the action enum, which the schema already 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 states specific verbs (list, get, search, compare, random pick, find unplayed) applied to the resource 'games', so an agent knows roughly what operations exist. However, it is a bundle of six operations and does not differentiate from overlapping siblings like library (likely also lists games) or game_info (likely also gets game 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?

There is no guidance on when to use this tool versus any of the 13 siblings. No alternatives are named, no exclusions are stated, and no context is given for choosing between overlapping tools like library, game_info, or insights. An agent must infer all routing decisions.

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

insightsD

Completion stats, timeline, year review, play history, export

ParametersJSON Schema
NameRequiredDescriptionDefault
yearNo
limitNo
actionYes
formatNo
outputNo
sort_byNo
steamidNo
resolve_namesNo
installed_onlyNo
include_playtimeNo
include_achievementsNo

TDQS

D1.5/5.0
Behavior1/5

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

With no annotations, the description must disclose behavior itself, but it only lists action names. It does not mention data source, side effects, permission needs, export behavior, or what the returned data looks like.

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

Conciseness2/5

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

The description is short, but brevity here is under-specification rather than conciseness. It is a comma-separated fragment that restates enum values and provides no front-loaded verb or sentence structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 11-parameter tool with no output schema, no annotations, and many siblings, this description is critically incomplete. An agent cannot determine required context, parameter interplay, action semantics, or expected outputs.

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% across 11 parameters, and the description explains none of them. It re-lists the action enum values but says nothing about year, limit, format, steamid, filters, or sorting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a fragment listing content areas ('Completion stats, timeline, year review, play history, export') rather than stating what the tool does with a verb and resource. It conveys the tool's domain but is vague and does not differentiate 'insights' from siblings like game_info or player.

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 when-to-use or when-not-to-use guidance is provided, and no alternatives are named despite 13 sibling tools. The phrase merely hints that the tool covers insights-style data, leaving the agent to infer when it should be selected.

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

libraryA

List library folders or get aggregate stats

ParametersJSON Schema
NameRequiredDescriptionDefault
actionNolist

TDQS

A3.6/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. The verbs 'list' and 'get' imply read-only behavior, but the description does not explicitly state non-mutation, output characteristics, or any external dependencies.

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 with no filler. Every word earns its place, and the two modes are stated efficiently.

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 one-parameter tool, the description covers the core modes, but 'aggregate stats' is vague and there is no output schema to clarify return values. An agent can invoke it, but may not know what stats are included or how the result is structured.

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?

Schema description coverage is 0%, but the description compensates by explaining the two enum actions in natural language: 'list' maps to listing library folders and 'stats' maps to getting aggregate stats. This adds meaning beyond the raw enum values.

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: 'List library folders or get aggregate stats.' It identifies two distinct operations, but does not explicitly distinguish this tool from overlapping siblings like 'storage' or 'insights.'

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 usage context is implied by the described operations: an agent would use this when it needs library folders or aggregate stats. However, it gives no guidance on when to choose this over sibling tools, and no exclusions or alternatives are mentioned.

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

playerC

Profile, level, bans, friends, achievements, owned/recent games

ParametersJSON Schema
NameRequiredDescriptionDefault
appidNo
actionYes
steamidNo

TDQS

C2.4/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, but it only lists data categories and never states whether this is a read-only operation, whether authentication is required, what rate limits apply, or what the response shape is. The lack of explicit safety/behavioral context is a meaningful gap for an agent.

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

Conciseness3/5

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

The description is very short and contains no filler, which is positive. But it is a bare comma-separated list rather than a structured sentence, and it omits global_achievements and schema actions, so the efficiency doesn't translate into a well-organized or complete summary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 9 enum actions, 3 parameters, no annotations, and no output schema, this description is far too thin. It doesn't explain the per-action parameter requirements (e.g., appid for achievements), the meaning of steamid, or how this tool relates to siblings. An agent cannot reliably select and invoke the correct action based on this description.

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 adds essentially no parameter-level meaning. It doesn't explain that action selects which query to run, that steamid identifies the player, or that appid is required for achievement-related actions. The comma list in the description merely mirrors the action enum values already present in the schema.

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 identifies the resource as the Steam player and lists the data domains it covers (profile, level, bans, friends, achievements, owned/recent games), which is a clear indicator of purpose even without a verb. However, it doesn't explicitly differentiate itself from sibling tools like games, library, or game_info that also surface game-related data.

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 offers no guidance on when to use this tool versus siblings or on how the action parameter dispatches between the many possible player queries. There is no mention of prerequisites or alternatives, leaving the agent to infer usage from the bare noun list.

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

protonC

Proton/Wine compat: list games, info, versions, DB rating, recommend, prefix, logs

ParametersJSON Schema
NameRequiredDescriptionDefault
appidNo
linesNo
actionYes

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It merely lists action names without stating side effects, whether operations read or mutate data, prerequisites, expected outputs, or rate limits. Actions like 'prefix' or 'recommend' are especially ambiguous.

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, compact line that front-loads the domain and then lists the available sub-actions. It is efficient and scannable, though the brevity comes at the cost of explanatory depth.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a multi-action tool with seven possible actions, three parameters, no annotations, and no output schema. A one-line list of action names leaves the agent without critical information about required parameters per action, return formats, failure modes, or behavioral consequences, making it effectively incomplete.

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%, so the description must compensate, but it does not explain appid, lines, or the exact meaning of most action values. It only echoes the enum names already present in the schema, adding no semantic value for an agent trying to construct a valid call.

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 identifies the domain ('Proton/Wine compat') and enumerates the tool's capabilities (list games, info, versions, DB rating, recommend, prefix, logs), which aligns with the action enum. It is specific enough to differentiate from sibling tools like games or game_info, though it reads as a label rather than a complete sentence.

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 versus alternatives, nor does it explain which action fits which scenario. Sibling tools like game_info, game_control, or diagnostics could plausibly overlap, but no context is given to help an agent choose.

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

shortcutsB

Non-Steam shortcuts: list, add, remove, import from Lutris

ParametersJSON Schema
NameRequiredDescriptionDefault
exeNoAbsolute path to the executable
nameNo
tagsNo
appidNo
actionYes
game_idsNoLutris game IDs to import; omit for all
start_dirNoWorking directory (defaults to exe's parent directory)
launch_optionsNo

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and idempotencyHint=false, covering the mutation profile. The description adds the contextual detail that this concerns Non-Steam shortcuts and Lutris import, but it does not disclose side effects beyond what the annotations and action enum imply. There is no contradiction with the 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?

The description is a single front-loaded clause followed by a colon-separated list of actions. It contains zero filler and every word contributes to the core message. It is as concise as possible, though the brevity sacrifices detail.

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 multi-action tool with six parameters and no output schema, this description is too thin. It does not state per-action parameter requirements, the meaning of the action values, or what list returns. Annotations cover destructiveness, but an agent cannot determine correct invocation for add/remove/import_lutris without external knowledge.

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 low: only exe and game_ids have descriptions out of six parameters. The description lists action categories but does not explain how parameters like name, tags, appid, or game_ids map to each action, nor which parameters are required for add/remove. It fails to compensate for the schema gap.

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 names a specific resource (Non-Steam shortcuts) and lists concrete verbs (list, add, remove, import), making the tool's purpose clear. It does not explicitly contrast with siblings like games or library, but the 'Non-Steam' qualifier helps distinguish its domain.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. An agent must infer from the action names alone that this is the right place for shortcut management.

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

steam_statusC

Steam client status, download queue, or download progress

ParametersJSON Schema
NameRequiredDescriptionDefault
appidNo
actionNostatus

TDQS

C2.3/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 explaining behavior. It only names three aspects—status, queue, progress—and does not state whether the operation is read-only, whether Steam must be running, how appid alters behavior, or what the response contains.

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

Conciseness2/5

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

The text is short and free of filler, but it is an under-specified fragment rather than a concise explanation. It does not form a complete sentence and fails to earn its place by adding behavioral or parameter context.

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 two-parameter, multi-mode tool with no output schema and no annotations, this description is too incomplete. Key context such as when appid is required, what each action returns, and how this tool relates to siblings is missing, so an agent cannot reliably invoke it correctly.

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%, so the description needed to document appid and action, but it only loosely mirrors the action enum. The appid parameter is entirely unexplained, and no defaults, formats, or relationships between parameters are added beyond what the schema already exposes.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies a resource and possible areas of interest—Steam client status, download queue, and download progress—but it lacks a verb such as 'get' or 'show,' so it is unclear whether the tool reads state or acts on it. It also does not differentiate this tool from siblings like diagnostics or game_control.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool instead of related sibling tools. No exclusions or alternative suggestions are provided, and the agent must infer usage context from the action enum and tool name.

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

storageC

Disk usage, cleanup, shader cache, cloud saves, backups

ParametersJSON Schema
NameRequiredDescriptionDefault
appidNo
limitNo
actionYes
sort_byNo
destinationNoBackup destination directory

TDQS

C2.1/5.0
Behavior1/5

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

No annotations are provided, so the description carries full responsibility for behavioral disclosure. It mentions 'cleanup' and 'backup', which suggest side effects, but doesn't disclose whether actions delete files, modify shader cache, require confirmation, or write to a destination. An agent cannot assess the destructiveness or safety of invoking this tool.

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

Conciseness3/5

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

The description is short and contains no filler, but it is a comma-separated fragment without a verb or sentence structure. It is compact yet not effectively structured to guide an agent's understanding of the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 8 actions, 5 parameters, no annotations, and no output schema, yet the description is only a topic list. It does not explain which action to choose, action-specific parameter requirements, or return behavior, leaving the agent without enough context to use the tool correctly.

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?

The description loosely maps to action enum values (cleanup, shader cache, cloud saves, backups), which provides some semantic grouping. However, it says nothing about appid, limit, or sort_by, and with schema description coverage at only 20%, the description does not compensate for the lack of parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a comma-separated list of topic areas ('Disk usage, cleanup, shader cache, cloud saves, backups') rather than a verb phrase stating an operation. It conveys the storage domain and hints at possible actions but does not clearly say what the tool does, leaving the purpose vague. It does not distinguish itself from sibling tools because no specific resource or operation is named.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus sibling tools, no context, no exclusions, and no mention of alternatives. The description only implies that storage-related tasks might belong here, but an agent gets no help deciding between storage and tools like diagnostics or game_control.

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

workshopC

List workshop items, stats, or search

ParametersJSON Schema
NameRequiredDescriptionDefault
appidNo
countNo
queryNo
actionYes

TDQS

C2.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 must disclose behavioral traits itself. It states the tool can list, fetch stats, or search, but does not say whether the operations are read-only, whether an appid context is required, or what side effects or limitations exist.

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 very short and front-loaded with the core operation, containing no filler or redundancy. It sacrifices completeness for brevity, but as a structural matter it is concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations, no output schema, zero schema descriptions, and no usage guidance, this single fragment leaves the agent with almost no context needed to invoke the tool correctly. It does not explain parameter relationships, return values, or action-specific requirements.

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%, so the description must compensate. It mentions workshop items and the three actions, loosely echoing the action enum, but it adds no meaning for appid, count, or query. This is inadequate for a 4-parameter tool with no schema descriptions.

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 names a clear resource ('workshop items') and three operations (list, stats, search) that map directly to the action enum. This differentiates it from siblings like games, library, or proton, though the phrasing is telegraphic and not fully grammatical.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use workshop versus a sibling tool, nor any direction on which action or parameters fit common scenarios. The operation names imply usage but the description leaves the selection criteria entirely to the agent.

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. 14 tool updatesv2.0.0
    • First observeddeals
    • First observeddiagnostics
    • First observedgame_config
    • First observedgame_control
    • First observedgame_info
    • First observedgames
    • First observedinsights
    • First observedlibrary
    • First observedplayer
    • First observedproton
    • First observedshortcuts
    • First observedsteam_status
    • First observedstorage
    • First observedworkshop

TDQS

C2.6/5.0
Disambiguation3/5

Most tools map to broad subdomains, but several boundaries are fuzzy: 'games' and 'game_info' both handle game data, 'proton' and 'diagnostics' both touch logs, and 'library' and 'insights' both surface stats. Agents may need to read the full descriptions carefully to avoid picking the wrong category.

Naming Consistency4/5

Tool names consistently use lowercase noun-style labels, which is a recognizable pattern, and multi-word names use snake_case consistently. Minor inconsistencies exist between plural categories like 'games' and 'shortcuts' versus singular/more specific names like 'steam_status' and 'game_info', but there is no mixed casing or verb chaos.

Tool Count5/5

14 tools is well within the ideal range and appropriate for Steam's broad scope, covering library management, game control, configuration, player data, workshop, deals, storage, and more. Each tool represents a coherent subdomain, so the count feels intentional rather than padded.

Completeness4/5

The tool set covers the main Steam workflows: discovering games, installing/launching/configuring them, managing library folders and storage, viewing player/profile data, and checking deals/workshop content. Some niche operations like workshop subscribe/unsubscribe or download queue control appear missing, but core lifecycle paths are not dead-ended.

Maintenance

ActivityInactive
ResponsivenessNo issues

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

  • A
    license
    A
    quality
    A
    maintenance
    A read-only Model Context Protocol server for Valve's public Steam Web API and storefront. Ask about your friends and games, playtime and achievements, plus account-independent things like sales, reviews, live player counts, Steam Deck compatibility, discovery, and recommendations — bring your own free Steam API key.
    37
    3
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    A Model Context Protocol server that gives AI assistants access to your self-hosted Audiobookshelf library, enabling queries about current listening, searching, and browsing.
    1
    MIT

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/Praeses0/steam-mcp'

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