Steam MCP Server
Provides tools to fetch data from a user's Steam game library via the Steam Web API, including owned games, recently played games, player summary, achievements, and vanity URL resolution.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Steam MCP Servershow me my recently played games"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Steam MCP Server
A local MCP server that lets Claude fetch data from your Steam game library via the Steam Web API. All tools are read-only — the server never modifies your account.
Tools
Tool | What it does |
| Lists owned games with total playtime, sorted by playtime or name |
| Games played in the last ~2 weeks |
| Profile info: name, status, currently playing, account creation date |
| Achievements for a specific game (requires appid) |
| Converts a custom profile URL to a SteamID64 |
Related MCP server: steam-mcp
Prerequisites
Steam Web API key — get one for free at https://steamcommunity.com/dev/apikey (requires a logged-in Steam account; enter any domain, e.g.
localhost).Your SteamID64 — the 17-digit number for your account. Find it via your profile URL, or use
steam_resolve_vanity_urlif you have a custom URL.Profile must be public — under Steam → Profile → Edit Profile → Privacy, "Game details" must be set to Public, otherwise library and achievement calls will return empty.
uv installed —
curl -LsSf https://astral.sh/uv/install.sh | shPython 3.10+ (uv will manage this automatically).
Installation
uv syncConnecting to Claude
The server uses stdio transport and runs as a local subprocess. It works with MCP clients such as Claude Desktop and Claude Code.
Claude Desktop
Open the config file (Settings → Developer → Edit Config) and add the server. Replace the paths and values with your own:
{
"mcpServers": {
"steam": {
"command": "uv",
"args": ["run", "--directory", "/full/path/to/steam-api-mcp", "src/steam_mcp.py"],
"env": {
"STEAM_API_KEY": "YOUR_API_KEY_HERE",
"STEAM_ID": "YOUR_STEAMID64_HERE"
}
}
}
}STEAM_ID is optional. If set, you won't need to provide your own ID in every
request — the tools fall back to this value. You can still pass a different
steam_id to look at a friend's (public) profile.
Restart Claude Desktop after saving. You can then ask things like:
"Which 10 games have I played the most on Steam?"
"What have I played in the last two weeks?"
"How many achievements do I have in appid 570?"
Claude Code
claude mcp add steam uv run --directory /full/path/to/steam-api-mcp src/steam_mcp.py \
--env STEAM_API_KEY=YOUR_KEY --env STEAM_ID=YOUR_STEAMID64Testing Outside a Client
With MCP Inspector you can click through the tools manually:
STEAM_API_KEY=your_key STEAM_ID=your_id \
npx @modelcontextprotocol/inspector uv run src/steam_mcp.pyPrivacy and Limitations
The API only returns data a profile has made public.
Your key is stored in the client config / environment variables and is never sent anywhere other than Steam.
The Steam Web API has reasonable rate limits (approx. 100,000 calls/day). The server returns a clear 429 message if you hit a temporary limit.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/stianasoren/steam-api-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server