https://github.com/tmhsdigital/steam-mcp
MCP server for Steam & Steamworks APIs - 25 tools (18 read + 7 write) for store data, player stats, reviews, pricing, achievements, workshop, leaderboards, inventory, and lobbies.
https://github.com/tmhsdigital/steam-mcp
ai-tools cursor-ide game-development gamedev mcp mcp-server modding model-context-protocol steam steam-api steam-deck steam-workshop steamworks ugc
Last synced: 5 days ago
JSON representation
MCP server for Steam & Steamworks APIs - 25 tools (18 read + 7 write) for store data, player stats, reviews, pricing, achievements, workshop, leaderboards, inventory, and lobbies.
- Host: GitHub
- URL: https://github.com/tmhsdigital/steam-mcp
- Owner: TMHSDigital
- License: other
- Created: 2026-03-27T20:11:24.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-05-23T23:59:07.000Z (about 1 month ago)
- Last Synced: 2026-05-24T01:22:19.256Z (about 1 month ago)
- Topics: ai-tools, cursor-ide, game-development, gamedev, mcp, mcp-server, modding, model-context-protocol, steam, steam-api, steam-deck, steam-workshop, steamworks, ugc
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/@tmhs/steam-mcp
- Size: 1.37 MB
- Stars: 2
- Watchers: 0
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
Steam MCP Server
Live Steam API tools for AI-powered IDEs - companion server to Steam Developer Tools.
---
25 MCP tools - 10 no-auth - 8 API key - 7 publisher key
Query Steam store data, player statistics, achievements, reviews, pricing, workshop items, leaderboards, inventory, and player profiles - all as structured MCP tools callable from Cursor's AI agent.
> **No API key required** for most features. Store lookups, player counts, global achievement stats, news, reviews, and app searches all work out of the box.
## Getting Started
### Prerequisites
- Node.js 20 or later
- npm
### Install
```bash
git clone https://github.com/TMHSDigital/Steam-MCP.git
cd Steam-MCP
npm install
npm run build
```
### Steam API Key
Some tools require a Steam Web API key. Get one free at [steamcommunity.com/dev/apikey](https://steamcommunity.com/dev/apikey).
Set it as an environment variable:
```bash
# Bash / macOS / Linux
export STEAM_API_KEY="your_key_here"
# PowerShell
$env:STEAM_API_KEY = "your_key_here"
```
Or in a `.env` file:
```
STEAM_API_KEY=your_key_here
```
Tools that don't need a key work out of the box with zero configuration.
## Usage with Cursor
Add the Steam MCP server to your Cursor MCP settings (`.cursor/mcp.json` in your project or global settings):
**Via npx (recommended):**
```json
{
"mcpServers": {
"steam": {
"command": "npx",
"args": ["-y", "@tmhs/steam-mcp"],
"env": {
"STEAM_API_KEY": "your_key_here"
}
}
}
}
```
**Via local clone:**
```json
{
"mcpServers": {
"steam": {
"command": "node",
"args": ["/absolute/path/to/Steam-MCP/dist/index.js"],
"env": {
"STEAM_API_KEY": "your_key_here"
}
}
}
}
```
Once configured, the tools are available to Cursor's AI agent. Pair with the [Steam Developer Tools](https://github.com/TMHSDigital/Steam-Cursor-Plugin) plugin for the full skill set.
## Available Tools (v0.7.0) - 25 Total
Read Tools (No Auth) - 10 tools
These work without an API key:
| Tool | Description |
|------|-------------|
| `steam_getAppDetails` | Store data: price, description, reviews, tags, platforms, system requirements |
| `steam_searchApps` | Search for games/apps by name or keyword |
| `steam_getPlayerCount` | Current concurrent player count |
| `steam_getAchievementStats` | Global achievement unlock percentages |
| `steam_getWorkshopItem` | Workshop item details (title, description, tags, subscribers) |
| `steam_getReviews` | Fetch user reviews with filters for language, sentiment, purchase type |
| `steam_getPriceOverview` | Batch price check for multiple apps in a specific region |
| `steam_getAppReviewSummary` | Review score, total counts, and positive percentage (no individual reviews) |
| `steam_getRegionalPricing` | Pricing breakdown across multiple countries/regions |
| `steam_getNewsForApp` | Recent news articles with title, URL, contents, date, and author |
Read Tools (API Key) - 8 tools
These require `STEAM_API_KEY` to be set:
| Tool | Description |
|------|-------------|
| `steam_getPlayerSummary` | Player profile: name, avatar, online status |
| `steam_getOwnedGames` | Game library with playtime data |
| `steam_queryWorkshop` | Search/browse Workshop items with filters |
| `steam_getLeaderboardEntries` | Leaderboard scores and rankings (pass numeric ID from Steamworks dashboard) |
| `steam_resolveVanityURL` | Convert vanity URL to 64-bit Steam ID |
| `steam_getSchemaForGame` | Achievement/stat schema with display names, descriptions, and icon URLs |
| `steam_getPlayerAchievements` | Per-player achievement unlock status and timestamps |
| `steam_getLeaderboardsForGame` | List all leaderboards with numeric IDs, names, and sort methods |
Write / Guidance Tools (Publisher Key) - 7 tools
These require a publisher API key with server IP allowlisted in Steamworks partner settings. SDK-only tools return code examples instead of making HTTP calls.
| Tool | Type | Description |
|------|------|-------------|
| `steam_createLobby` | SDK guide | Returns C++/C#/GDScript code for ISteamMatchmaking lobby creation |
| `steam_uploadWorkshopItem` | SDK guide | Returns code for ISteamUGC Workshop upload workflow |
| `steam_updateWorkshopItem` | HTTP POST | Update Workshop item metadata via IPublishedFileService partner API |
| `steam_setAchievement` | HTTP POST | Set/unlock achievements via ISteamUserStats partner API (dev/test) |
| `steam_clearAchievement` | HTTP POST | Clear/re-lock achievements via ISteamUserStats partner API (dev/test) |
| `steam_uploadLeaderboardScore` | HTTP POST | Upload scores via ISteamLeaderboards partner API |
| `steam_grantInventoryItem` | HTTP POST | Grant inventory items via IInventoryService partner API |
Steam API Endpoints (19 endpoints)
| Endpoint | Auth |
|----------|------|
| `store.steampowered.com/api/appdetails` | None |
| `store.steampowered.com/api/storesearch` | None |
| `ISteamUserStats/GetNumberOfCurrentPlayers/v1` | None |
| `ISteamUserStats/GetGlobalAchievementPercentagesForApp/v2` | None |
| `ISteamNews/GetNewsForApp/v2` | None |
| `ISteamRemoteStorage/GetPublishedFileDetails/v1` | None |
| `store.steampowered.com/appreviews/{appid}` | None |
| `ISteamUser/GetPlayerSummaries/v2` | API key |
| `IPlayerService/GetOwnedGames/v1` | API key |
| `ISteamUser/ResolveVanityURL/v1` | API key |
| `IPublishedFileService/QueryFiles/v1` | API key |
| `ISteamUserStats/GetSchemaForGame/v2` | API key |
| `ISteamUserStats/GetPlayerAchievements/v1` | API key |
| `ISteamLeaderboards/GetLeaderboardEntries/v1` | Publisher key |
| `ISteamLeaderboards/GetLeaderboardsForGame/v2` | API key |
| `IPublishedFileService/UpdateDetails/v1` (POST) | Publisher key |
| `ISteamUserStats/SetUserStatsForGame/v1` (POST) | Publisher key |
| `ISteamLeaderboards/SetLeaderboardScore/v1` (POST) | Publisher key |
| `IInventoryService/AddItem/v1` (POST) | Publisher key |
Development
```bash
npm run dev # Watch mode with auto-reload
npm run build # Compile TypeScript to dist/
npm start # Run the compiled server
npm test # Run all tests (vitest)
npm run test:watch # Test watch mode
```
See [CONTRIBUTING.md](CONTRIBUTING.md) for how to add new tools and submit PRs.
## Related
- [Steam Developer Tools](https://github.com/TMHSDigital/Steam-Cursor-Plugin) - Cursor IDE plugin with 30 skills and 9 rules for Steam/Steamworks development
## License
CC BY-NC-ND 4.0 - see [LICENSE](LICENSE) for details.
---
Built by TMHSDigital