Releases: TMHSDigital/steam-mcp
Releases · TMHSDigital/steam-mcp
v0.7.0 - Trusted Publishing + CI
What's New
- Trusted Publisher workflow - npm releases are now published automatically via GitHub Releases using OIDC (no long-lived tokens)
- CI badge in README
- Node.js 20+ requirement - bumped from 18 to match CI matrix and vitest compatibility
- Doc fixes - corrected stale tool counts in CLAUDE.md, version refs in README, dot notation in CONTRIBUTING.md
Changes since v0.6.0
- ci: add npm trusted publisher workflow (
publish.yml) - ci: add GitHub Actions CI for build + test on Node 20/22
- docs: bump Node.js requirement to 20
- docs: add CI status badge
- fix: update stale tool counts, version refs, and dot notation in docs
- fix: update package description to 25 tools
v0.6.0 - Bug Fixes + 5 New Tools
Bug Fixes
- Fixed POST body encoding on publisher tools - setAchievement, uploadLeaderboardScore, and grantInventoryItem now send params as application/x-www-form-urlencoded body instead of query string params, matching what the Steam Partner API expects. Added steamPartnerPost() helper.
- Removed dead variable in grantInventoryItem.ts (itemJson was built but never used).
- Renamed term to query in steam_searchApps input schema for discoverability.
- Improved leaderboard ID docs - steam_getLeaderboardEntries now clearly states the numeric ID requirement and where to find it in Steamworks.
- Better 400/403 errors on write tools - publisher tools now return actionable guidance about API key type and IP allowlisting instead of raw HTTP status.
- Renamed all tool names from dot notation (steam.toolName) to underscore notation (steam_toolName) to fix Cursor MCP bridge routing conflicts.
New Tools (5)
| Tool | Auth | Description |
|---|---|---|
| steam_clearAchievement | Publisher key | Clear (re-lock) an achievement for a player (symmetric with setAchievement) |
| steam_getSchemaForGame | API key | Achievement/stat schema with display names, descriptions, and icon URLs |
| steam_getNewsForApp | None | Recent news articles for any Steam app |
| steam_getLeaderboardsForGame | Publisher key | List all leaderboards with numeric IDs, names, sort methods |
| steam_getPlayerAchievements | API key | Per-player achievement unlock status and timestamps |
Total: 25 MCP tools
v0.4.0 — 20 MCP Tools
Steam MCP Server v0.4.0 — 20 Tools
New Read-Only Tools (No Auth)
| Tool | Description |
|---|---|
steam.getReviews |
Fetch user reviews with filters for language, sentiment, purchase type, pagination |
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 |
Summary
- 20 total tools: 14 read-only (9 no-auth + 5 API key) + 6 write/guidance (publisher key)
- All 4 new tools work without an API key
- All 53 tests passing
Full Changelog: v0.3.0...v0.4.0
v0.3.0 - Write Operations
v0.3.0 - Write Operations
Adds 6 new write/guidance tools, bringing the total to 16 (10 read-only + 6 write).
New Tools
| 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 |
steam.uploadLeaderboardScore |
HTTP POST | Upload scores via ISteamLeaderboards partner API |
steam.grantInventoryItem |
HTTP POST | Grant inventory items via IInventoryService partner API |
Notes
- SDK guide tools return structured code examples (no HTTP call) for operations that require the native Steamworks SDK
- HTTP POST tools require a publisher API key with server IP allowlisted in Steamworks partner settings
- All existing tests pass (53/53)
Companion plugin: Steam Developer Tools v0.7.0
v0.2.1 - Polish
Quality improvements and test coverage.
New:
- 53 automated tests (vitest) covering error classes, steamFetch, retry logic, and input validation
- TimeoutError class -- client-side timeouts now report accurately instead of 'Steam unavailable'
- Retry with exponential backoff on HTTP 429 (up to 2 retries, reads Retry-After header)
- README badges (npm version, license, Node.js version)
Fixed:
- Input validation: steamid fields now enforce 17-digit format, publishedfileid requires digits-only
- getLeaderboardEntries validates that steamid is provided for AroundUser/Friends requests
- CLAUDE.md rule count (3 -> 4)
Housekeeping:
- Added homepage/bugs fields to package.json
- Extended .gitignore (OS files, IDE dirs, coverage)
- Test files excluded from dist/ build output
v0.2.0 - Live Data
First npm release as @tmhs/steam-mcp.
10 MCP tools:
- 5 no-auth: getAppDetails, searchApps, getPlayerCount, getAchievementStats, getWorkshopItem
- 5 key-required: getPlayerSummary, getOwnedGames, queryWorkshop, getLeaderboardEntries, resolveVanityURL
Install:
{ "mcpServers": { "steam": { "command": "npx", "args": ["-y", "@tmhs/steam-mcp"], "env": { "STEAM_API_KEY": "your_key_here" } } } }Companion plugin: Steam Developer Tools v0.2.0