steam-personal-mcp
Provides tools for accessing personal Steam account data such as library, playtime, achievements, friends, wishlist, and Steam Store information including prices, discounts, and recommendations.
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-personal-mcpanalyze my backlog and suggest games to play this weekend"
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 Personal + Store MCP
A locally running Steam MCP Server. By default it exposes 12 composite tools organized by domain.
What it can do
Personal data
player queries Profile, current game, and visibility; library queries game library, playtime, recently played, backlog, abandoned, and return candidates; achievements queries achievement details, completion rate, and recent unlocks; friends queries friends and public common games.
Store, discounts, and wishlist
store searches details, compares games, and views DLC; deals queries special offers, deep discounts, and sales; wishlist views wishlist, price history, price drops, release changes, and evidence-based buy / wait / skip suggestions.
Recommendations and unified game profile
recommendations recalls store candidates, similar games, new releases, backlog, and library duplication analysis. The candidate's candidate_score only indicates retrieval priority, not final fit or purchase confidence; the final judgment is left to the AI calling it.
game_intel(action="snapshot") summarizes a game's:
Personal ownership status, total playtime, recent playtime, last played, and achievements.
Current price, original price, discount, and price history observed by the MCP.
Overall rating, recent rating, rating count, and available 7/30/90-day trends.
Steam Deck status, Workshop support, current player count, and explainable popularity metrics.
Release date, update/build info, DLC, owned DLC, and missing DLC.
Local install path, SizeOnDisk, actual directory size, and shadercache; compatdata on Windows is explicitly marked as not_applicable.
Local Steam and safe cleanup
local_steam reads Windows libraryfolders.vdf, appmanifest files, installed games, and disk usage. storage_cleanup is split into three steps: scan, preview, clean. scan never deletes; clean must explicitly specify appids, targets, and pass confirm=true. shadercache is low risk, compatdata is high risk by default and not applicable in the first Windows version.
Related MCP server: gamelibs-mcp
Composite tools / actions
player: profile | currently_playing | visibility
library: search | stats | most_played | recent | abandoned | never_played | low_playtime | backlog | return_to | game
achievements: details | summary | recent | almost_completed | completion_candidates
friends: list | playing | activity | shared
store: search | details | compare | dlc
deals: specials | deep_discounts | search_sales | summary
wishlist: list | sales | best_deals | price_history | price_drops | release_watch | buy_advice | purchase_candidates
recommendations: store | similar | new_releases | library | backlog | return_to | next | overlap | pick
activity: record | sessions | recent_sessions | year_review | game_change_history
game_intel: snapshot | update_impact
local_steam: scan | installed | disk_usage
storage_cleanup: scan | preview | cleanThe project itself does not call external LLMs. It is responsible for reading, filtering, aggregating, recording observations, and returning structured evidence; the final recommendation judgment is made by the upper-layer model.
Quick start
The following commands apply to Windows PowerShell.
Step 1: Enter the project directory
Download from GitHub:
git clone https://github.com/megabaka404/steam-personal-mcp.git
Set-Location steam-personal-mcpIf the project is already local:
Set-Location -LiteralPath '你的项目目录\steam-personal-mcp'Step 2: Create an environment and install dependencies
The project requires Python 3.10 or higher.
py -3 -m venv .venv
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
pip install -r requirements.txtStep 3: Configure Steam
Copy the config file and edit it:
Copy-Item .env.example .env
notepad .envAt minimum, fill in:
STEAM_API_KEY=你的Steam_Web_API_Key
STEAM_ID=你的SteamID64Get an API Key:
https://steamcommunity.com/dev/apikey
Notes:
STEAM_ID must be a SteamID64.
Steam Profile and Game Details must be publicly visible, otherwise personal data may not be readable.
The China store is used by default; store prices depend on STEAM_STORE_COUNTRY and STEAM_STORE_LANGUAGE.
Optional configuration:
STEAM_MCP_HOST=127.0.0.1
STEAM_MCP_PORT=8789
STEAM_MCP_COMPACT_TOOLS=true
STEAM_MCP_LEGACY_TOOLS=false
STEAM_STORE_COUNTRY=cn
STEAM_STORE_LANGUAGE=english
STEAM_HISTORY_DB=data/steam_history.sqlite312 composite tools are enabled by default. If you must keep using the old fine-grained tools, you can set:
STEAM_MCP_COMPACT_TOOLS=false
STEAM_MCP_LEGACY_TOOLS=trueSwitching the Steam store region
The store region uses Steam's two-letter country/region code, modified via STEAM_STORE_COUNTRY in .env. The MCP service must be restarted after the change for it to take effect. China is the default.
China:
STEAM_STORE_COUNTRY=cn
STEAM_STORE_LANGUAGE=schineseUnited States:
STEAM_STORE_COUNTRY=us
STEAM_STORE_LANGUAGE=englishJapan:
STEAM_STORE_COUNTRY=jp
STEAM_STORE_LANGUAGE=japaneseOther common codes include gb (United Kingdom), de (Germany), fr (France). The project does not automatically convert currencies; after switching regions, prices, currency, discounts, and some Store search results may all change.
Step 4: Check the service in Mock mode first
Start the Mock service:
python server.py --mockOpen another PowerShell window to check:
Invoke-WebRequest http://127.0.0.1:8789/health | Select-Object -ExpandProperty Content
Invoke-WebRequest http://127.0.0.1:8789/debug/status | Select-Object -ExpandProperty ContentOnce you can see the health check succeed, start the real Steam mode.
Step 5: Start the real service
HTTP mode:
python server.pyMCP address:
http://127.0.0.1:8789/mcpstdio mode:
python server.py --stdioWhen Mock data is needed:
python server.py --stdio --mockNote: China is the default region. To change the region, enter the following in the terminal before starting the MCP: $env:STEAM_STORE_COUNTRY="cn" $env:STEAM_STORE_LANGUAGE="schinese" For other countries or regions, modify the code the same way.
MCP client configuration
If the client supports Streamable HTTP, add:
{
"mcpServers": {
"steam-personal": {
"url": "http://127.0.0.1:8789/mcp"
}
}
}Do not treat /health as the MCP address; it is only a health check endpoint.
For stdio clients, configure a command that launches python server.py --stdio, using the Python from the project's virtual environment.
After connecting successfully, you can ask directly:
我的游戏库里有哪些几乎没玩过的游戏?
Darkest Dungeon 现在值得买吗?
把我的愿望单按当前折扣列出来。
根据我最近玩过的游戏召回 15 个候选,但只给证据,不要直接替我下结论。Data sources and limitations
Personal data mainly comes from the Steam Web API; store data comes from the Steam Store interface.
Steam profile, game details, or statistics privacy settings may cause missing data.
Some games do not support achievements, player statistics, or public reviews; the relevant fields will be empty.
The store interface is not a complete, stable full Steam catalog; search results may be affected by region, language, and interface limitations.
Prices, currency, and discounts are returned according to the configured store region.
Review data is only populated when the Steam interface reliably provides it; no guessing is done for completeness.
When achievement reads fail, they are not faked as "all locked."
Price history, play sessions, and yearly review are local observations from this MCP, not official complete Steam history.
Project structure
server.py 服务入口
config.py 环境变量和启动参数
runtime.py HTTP/stdio 运行时
clients/ Steam API 和 Store 客户端
services/ 业务逻辑、推荐、历史记录
tools/ MCP 工具实现
models/ Pydantic 数据模型
tests/ 自动化测试
data/ 本地历史数据库目录License
Refer to the license file in the repository. Steam data belongs to Steam/Valve's service content; this project only reads public interfaces and organizes and analyzes them locally.
Why are Store search results incomplete?
The public Store search / featured endpoint is not a full database of Steam products.
Therefore, the following tools return a bounded candidate set:
search_store
search_sales
new_releases_for_me
recommend_store_for_meIf you need to query a specific game, prefer using the AppID.
Price region is wrong
Confirm the region and language in .env, for example:
STEAM_STORE_COUNTRY=cn
STEAM_STORE_LANGUAGE=schineseYou can also change it to:
us
jp
...Restart the service after modifying. The project does not automatically convert currencies.
Security
Do not commit .env
Do not commit the Steam API Key
Do not save Steam passwords
Do not save Steam Guard
No Steam Cookie required
API Key is not printed to logs
debug endpoint does not return secrets
Does not bypass Steam privacy settings
Does not automatically purchase, trade, or modify Steam accounts
Binds to 127.0.0.1 by default
If deploying to the public internet, additional configuration is required:
HTTPS
Bearer / OAuth / reverse proxy authentication
Reasonable request rate limiting
Log redaction
Testing
Tests should use mock clients or httpx.MockTransport to avoid depending on real Steam state.
Run:
pytestMock MCP smoke test:
python server.py --mock
Invoke-WebRequest http://127.0.0.1:8789/health
Invoke-WebRequest http://127.0.0.1:8789/debug/statusThis project was completed with the assistance of ChatGPT and Codex.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA feature-rich Model Context Protocol server that gives AI assistants full access to your Steam game library.144MIT
- AlicenseNot gradedqualityBmaintenanceAn MCP server that exposes your Steam, Epic Games Store, and IGDB game data as tools, enabling game library queries, install status checks, and metadata enrichment.1MIT
- AlicenseAqualityBmaintenanceMCP server enabling AI assistants to search Steam games, retrieve official store metadata, and analyze player review sentiment via public Steam Storefront JSON APIs without an API key.359MIT
- AlicenseAqualityBmaintenanceAn MCP server that connects AI assistants to the Steam Web API and storefront, enabling game library analysis, mood-based backlog recommendations, wishlist evaluation, and storefront searches.8546MIT
Related MCP Connectors
An MCP server that gives your AI access to the source code and docs of all public github repos
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/megabaka404/steam-personal-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server