Skip to main content

MCP server for Steam gaming library, achievements, stats, and store search

Project description

mcp-steam

MCP server for Steam, focused on gaming library management, achievements, stats, and store discovery. 20 tools designed for use with Claude and other LLM agents.

Prerequisites

Setup

1. Get Your Steam API Key

  1. Go to the Steam Web API Key page
  2. Sign in with your Steam account
  3. Register a domain name (any name works for personal use)
  4. Note your API key

2. Find Your Steam ID

Your Steam ID is the numeric identifier in your profile URL. If your profile URL is https://steamcommunity.com/profiles/76561198012345678, your Steam ID is 76561198012345678.

If you use a custom URL (e.g., /id/username), use a Steam ID finder to look up the numeric ID.

3. Install

cd mcp-steam
uv sync

4. Configure Environment Variables

Set these before running the server:

export STEAM_API_KEY="your_api_key"
export STEAM_ID="your_steam_id"

5. Test the Connection

uv run mcp-steam

The server verifies your API key and Steam ID on startup by fetching your player summary.

Claude Desktop / Claude Code Configuration

Add to your MCP server config. If installed from PyPI:

{
  "mcpServers": {
    "steam": {
      "command": "uvx",
      "args": ["mcp-steam"],
      "env": {
        "STEAM_API_KEY": "your_api_key",
        "STEAM_ID": "your_steam_id"
      }
    }
  }
}

Or if running from a local clone:

{
  "mcpServers": {
    "steam": {
      "command": "uv",
      "args": ["--directory", "/path/to/mcp-steam", "run", "mcp-steam"],
      "env": {
        "STEAM_API_KEY": "your_api_key",
        "STEAM_ID": "your_steam_id"
      }
    }
  }
}

Tools

User Resolution

Tool Parameters Description
resolve_vanity_url vanity_name Convert a custom profile URL name to a 64-bit Steam ID.

Library

Tool Parameters Description
get_owned_games sort_by="playtime", limit=50 Your game library with playtime. Sort by playtime, recent, or name.
get_recently_played limit=10 Games played in the last 2 weeks.

Game Info

Tool Parameters Description
get_game_details app_id Store page info: description, price, genres, metacritic, platforms.
search_games query, limit=10 Search the Steam store.
get_current_players app_id Live concurrent player count for a game.
get_game_schema app_id Achievement and stat definitions for a game.
get_app_reviews app_id, review_type="all", limit=10 User reviews with recommendation, playtime, and helpfulness.
get_package_details package_id Bundle/package pricing, included apps, and platforms.

Achievements & Stats

Tool Parameters Description
get_achievements app_id Your achievement progress with global rarity percentages.
get_player_stats app_id Game-specific stats (kills, deaths, etc.).
get_global_achievement_stats app_id Global unlock percentages for all achievements.

Wishlist

Tool Parameters Description
get_wishlist limit=50 Your wishlist sorted by priority, with prices and discounts.

News

Tool Parameters Description
get_game_news app_id, count=5 Recent news and updates for a game.

Profile

Tool Parameters Description
get_player_summary steam_id="" Profile summary. Accepts Steam ID or vanity name; defaults to you.
get_friend_list steam_id="" Friends list. Accepts Steam ID or vanity name; defaults to you.
get_player_bans steam_id="" VAC, community, game, and trade ban status. Defaults to you.
get_steam_level steam_id="" Steam level for a player. Defaults to you.

Store Discovery

Tool Parameters Description
get_featured_games (none) Currently featured and on-sale games.
get_featured_categories (none) Top Sellers, New Releases, Specials, Coming Soon, and more.

Steam Web API Notes

  • API key security: Your config file contains your Steam API key. Never commit it to version control or share it publicly.
  • Rate limits: The Steam Web API has undocumented rate limits. If you hit them, the server will return a rate limit error.
  • Profile visibility: Some tools require your Steam profile to be public (achievements, game stats). Library data works regardless.
  • Game stats availability: Not all games expose stats through the API. get_player_stats will return an error for unsupported games.
  • Wishlist access: Wishlist data requires your profile's wishlist to be public.

Development

uv run mcp-steam              # Run the server
uv run ruff check src/       # Lint
uv run ruff format src/      # Format
uv run pyright src/          # Type check

Pre-commit Hooks

This project uses lefthook for pre-commit checks. Install with brew install lefthook (or see other install methods), then:

lefthook install

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_steam-0.1.7.tar.gz (12.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_steam-0.1.7-py3-none-any.whl (15.1 kB view details)

Uploaded Python 3

File details

Details for the file mcp_steam-0.1.7.tar.gz.

File metadata

  • Download URL: mcp_steam-0.1.7.tar.gz
  • Upload date:
  • Size: 12.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mcp_steam-0.1.7.tar.gz
Algorithm Hash digest
SHA256 1c234ad033d65cc298af03924832932c4d06dc8500c2005fa5837b83081307ec
MD5 446c328ae5438cb940df8ff5c21d35b6
BLAKE2b-256 a6e59933278f329fc41d321c1abd8e72d812c6caa2508c777fa252712aebb90f

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_steam-0.1.7.tar.gz:

Publisher: release.yml on obrien-matthew/mcp-steam

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mcp_steam-0.1.7-py3-none-any.whl.

File metadata

  • Download URL: mcp_steam-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 15.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mcp_steam-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 a4dc19f4d7b30eefb9d514e394b4cb97722d8c710bb1183ac53b362e8b18135c
MD5 5c7c54c014e00724e11dca98ab3f6fb1
BLAKE2b-256 ea0c0c900de47486a90362119d126702dd715f9857677047afd18a42a03021c4

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_steam-0.1.7-py3-none-any.whl:

Publisher: release.yml on obrien-matthew/mcp-steam

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page