Skip to content

Commit 75b55f8

Browse files
committed
fix: rename MCP tool names from dots to underscores for Cursor compatibility
Cursor's MCP bridge can't route tool calls with dots in the name (e.g. steam.getAppDetails) because dots conflict with its internal server-id.toolName routing. Renamed all 20 MCP tool references from dot notation to underscore notation across 34 files: skills, rules, docs, config. The companion steam-mcp server needs a matching rename in its server.tool() registrations (separate repo). Made-with: Cursor
1 parent 3db5381 commit 75b55f8

34 files changed

Lines changed: 202 additions & 202 deletions

File tree

.cursorrules

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,6 @@
2727
## MCP Tool Signatures
2828

2929
When referencing MCP tools in documentation, use the canonical parameter names from the skill files:
30-
- `steam.searchApps({ term })` not `{ query }`
31-
- `steam.getWorkshopItem({ publishedfileid })` not `{ fileid }`
32-
- `steam.getLeaderboardEntries({ appid, leaderboardid, rangestart?, rangeend? })` not `{ id, range }`
30+
- `steam_searchApps({ term })` not `{ query }`
31+
- `steam_getWorkshopItem({ publishedfileid })` not `{ fileid }`
32+
- `steam_getLeaderboardEntries({ appid, leaderboardid, rangestart?, rangeend? })` not `{ id, range }`

CHANGELOG.md

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1010
### Added
1111

1212
- **4 new MCP read tools** in companion Steam MCP server (v0.4.0), reaching the target of 20 total tools:
13-
- `steam.getReviews` — Fetch user reviews with filters for language, sentiment, purchase type, and pagination (no auth)
14-
- `steam.getPriceOverview` — Batch price check for multiple apps in a specific region (no auth)
15-
- `steam.getAppReviewSummary` — Review score, total counts, and positive percentage without individual reviews (no auth)
16-
- `steam.getRegionalPricing` — Pricing breakdown across multiple countries/regions (no auth)
13+
- `steam_getReviews` — Fetch user reviews with filters for language, sentiment, purchase type, and pagination (no auth)
14+
- `steam_getPriceOverview` — Batch price check for multiple apps in a specific region (no auth)
15+
- `steam_getAppReviewSummary` — Review score, total counts, and positive percentage without individual reviews (no auth)
16+
- `steam_getRegionalPricing` — Pricing breakdown across multiple countries/regions (no auth)
1717

1818
### Changed
1919

@@ -40,16 +40,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
4040

4141
- **steam-testing-sandbox** skill: development sandbox guide — App ID 480 (SpaceWar) usage, test account setup, Steam client console commands, partner test environments, and dev-to-production checklist
4242
- **6 new MCP write tools** in companion Steam MCP server (v0.3.0):
43-
- `steam.createLobby` — SDK guidance for ISteamMatchmaking lobby creation (C++/C#/GDScript)
44-
- `steam.uploadWorkshopItem` — SDK guidance for ISteamUGC Workshop uploads (C++/GDScript)
45-
- `steam.updateWorkshopItem` — HTTP POST to update Workshop item metadata via partner API
46-
- `steam.setAchievement` — HTTP POST to set/unlock achievements via partner API (dev/test)
47-
- `steam.uploadLeaderboardScore` — HTTP POST to upload scores via partner API
48-
- `steam.grantInventoryItem` — HTTP POST to grant inventory items via partner API
43+
- `steam_createLobby` — SDK guidance for ISteamMatchmaking lobby creation (C++/C#/GDScript)
44+
- `steam_uploadWorkshopItem` — SDK guidance for ISteamUGC Workshop uploads (C++/GDScript)
45+
- `steam_updateWorkshopItem` — HTTP POST to update Workshop item metadata via partner API
46+
- `steam_setAchievement` — HTTP POST to set/unlock achievements via partner API (dev/test)
47+
- `steam_uploadLeaderboardScore` — HTTP POST to upload scores via partner API
48+
- `steam_grantInventoryItem` — HTTP POST to grant inventory items via partner API
4949

5050
### Changed
5151

52-
- `steam-appid-validation` rule enhanced with MCP live validation — suggests `steam.getAppDetails()` to verify App IDs exist
52+
- `steam-appid-validation` rule enhanced with MCP live validation — suggests `steam_getAppDetails()` to verify App IDs exist
5353
- Plugin version bumped to 0.7.0
5454
- Plugin description updated to reflect 29 skills and 16 MCP tools
5555
- All documentation updated: README, CLAUDE.md, CONTRIBUTING.md, ROADMAP.md
@@ -88,8 +88,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
8888

8989
### MCP Roadmap
9090

91-
- `steam.getAppReviewSummary({ appid })` - review histogram and summary (planned for MCP server)
92-
- `steam.getRegionalPricing({ appid, countries })` - pricing by region (planned for MCP server)
91+
- `steam_getAppReviewSummary({ appid })` - review histogram and summary (planned for MCP server)
92+
- `steam_getRegionalPricing({ appid, countries })` - pricing by region (planned for MCP server)
9393

9494
## [0.4.0] - 2026-03-28
9595

@@ -124,8 +124,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
124124

125125
### MCP Roadmap
126126

127-
- `steam.getReviews({ appid, filter, language, count })` - planned for MCP server v0.3.0 (review analysis skill uses curl fallback until available)
128-
- `steam.getPriceOverview({ appids, cc })` - planned for MCP server v0.3.0 (price history skill uses getAppDetails with cc parameter until available)
127+
- `steam_getReviews({ appid, filter, language, count })` - planned for MCP server v0.3.0 (review analysis skill uses curl fallback until available)
128+
- `steam_getPriceOverview({ appids, cc })` - planned for MCP server v0.3.0 (price history skill uses getAppDetails with cc parameter until available)
129129

130130
## [0.2.0] - 2026-03-27
131131

CLAUDE.md

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -75,26 +75,26 @@ The [Steam MCP Server](https://github.com/TMHSDigital/steam-mcp) provides 20 too
7575

7676
| MCP Tool | Auth | Maps to |
7777
|----------|------|---------|
78-
| `steam.getAppDetails({ appid })` | None | Store API `appdetails` |
79-
| `steam.searchApps({ term })` | None | Store API `storesearch` |
80-
| `steam.getPlayerCount({ appid })` | None | `GetNumberOfCurrentPlayers` |
81-
| `steam.getAchievementStats({ appid })` | None | `GetGlobalAchievementPercentagesForApp` |
82-
| `steam.getWorkshopItem({ publishedfileid })` | None | `GetPublishedFileDetails` |
83-
| `steam.getReviews({ appid, filter, language })` | None | Store API `appreviews` |
84-
| `steam.getPriceOverview({ appids, cc })` | None | Store API `appdetails` (price filter) |
85-
| `steam.getAppReviewSummary({ appid })` | None | Store API `appreviews` (summary only) |
86-
| `steam.getRegionalPricing({ appid, countries })` | None | Store API `appdetails` (multi-region) |
87-
| `steam.getPlayerSummary({ steamid })` | Key | `GetPlayerSummaries` |
88-
| `steam.getOwnedGames({ steamid })` | Key | `GetOwnedGames` |
89-
| `steam.queryWorkshop({ appid })` | Key | `IPublishedFileService/QueryFiles` |
90-
| `steam.getLeaderboardEntries({ appid, leaderboardid })` | Key | `ISteamLeaderboards/GetLeaderboardEntries` |
91-
| `steam.resolveVanityURL({ vanityurl })` | Key | `ResolveVanityURL` |
92-
| `steam.createLobby({ type, max_members, metadata })` | SDK guide | ISteamMatchmaking code examples |
93-
| `steam.uploadWorkshopItem({ appid, title, ... })` | SDK guide | ISteamUGC upload code examples |
94-
| `steam.updateWorkshopItem({ publishedfileid, ... })` | Publisher key | `IPublishedFileService/UpdateDetails` |
95-
| `steam.setAchievement({ steamid, appid, achievement })` | Publisher key | `ISteamUserStats/SetUserStatsForGame` |
96-
| `steam.uploadLeaderboardScore({ appid, leaderboardid, ... })` | Publisher key | `ISteamLeaderboards/SetLeaderboardScore` |
97-
| `steam.grantInventoryItem({ appid, steamid, itemdefid })` | Publisher key | `IInventoryService/AddItem` |
78+
| `steam_getAppDetails({ appid })` | None | Store API `appdetails` |
79+
| `steam_searchApps({ term })` | None | Store API `storesearch` |
80+
| `steam_getPlayerCount({ appid })` | None | `GetNumberOfCurrentPlayers` |
81+
| `steam_getAchievementStats({ appid })` | None | `GetGlobalAchievementPercentagesForApp` |
82+
| `steam_getWorkshopItem({ publishedfileid })` | None | `GetPublishedFileDetails` |
83+
| `steam_getReviews({ appid, filter, language })` | None | Store API `appreviews` |
84+
| `steam_getPriceOverview({ appids, cc })` | None | Store API `appdetails` (price filter) |
85+
| `steam_getAppReviewSummary({ appid })` | None | Store API `appreviews` (summary only) |
86+
| `steam_getRegionalPricing({ appid, countries })` | None | Store API `appdetails` (multi-region) |
87+
| `steam_getPlayerSummary({ steamid })` | Key | `GetPlayerSummaries` |
88+
| `steam_getOwnedGames({ steamid })` | Key | `GetOwnedGames` |
89+
| `steam_queryWorkshop({ appid })` | Key | `IPublishedFileService/QueryFiles` |
90+
| `steam_getLeaderboardEntries({ appid, leaderboardid })` | Key | `ISteamLeaderboards/GetLeaderboardEntries` |
91+
| `steam_resolveVanityURL({ vanityurl })` | Key | `ResolveVanityURL` |
92+
| `steam_createLobby({ type, max_members, metadata })` | SDK guide | ISteamMatchmaking code examples |
93+
| `steam_uploadWorkshopItem({ appid, title, ... })` | SDK guide | ISteamUGC upload code examples |
94+
| `steam_updateWorkshopItem({ publishedfileid, ... })` | Publisher key | `IPublishedFileService/UpdateDetails` |
95+
| `steam_setAchievement({ steamid, appid, achievement })` | Publisher key | `ISteamUserStats/SetUserStatsForGame` |
96+
| `steam_uploadLeaderboardScore({ appid, leaderboardid, ... })` | Publisher key | `ISteamLeaderboards/SetLeaderboardScore` |
97+
| `steam_grantInventoryItem({ appid, steamid, itemdefid })` | Publisher key | `IInventoryService/AddItem` |
9898

9999
## Development Workflow
100100

README.md

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -171,36 +171,36 @@ The [Steam MCP Server](https://github.com/TMHSDigital/steam-mcp) provides live,
171171

172172
| Tool | Description |
173173
|------|-------------|
174-
| `steam.getAppDetails` | Store data — price, reviews, tags, platforms |
175-
| `steam.searchApps` | Search the Steam store by name |
176-
| `steam.getPlayerCount` | Current concurrent players |
177-
| `steam.getAchievementStats` | Global achievement unlock percentages |
178-
| `steam.getWorkshopItem` | Workshop item details |
179-
| `steam.getReviews` | User reviews with filters for language, sentiment, purchase type |
180-
| `steam.getPriceOverview` | Batch price check for multiple apps in a region |
181-
| `steam.getAppReviewSummary` | Review score, totals, and positive percentage |
182-
| `steam.getRegionalPricing` | Pricing breakdown across multiple countries |
174+
| `steam_getAppDetails` | Store data — price, reviews, tags, platforms |
175+
| `steam_searchApps` | Search the Steam store by name |
176+
| `steam_getPlayerCount` | Current concurrent players |
177+
| `steam_getAchievementStats` | Global achievement unlock percentages |
178+
| `steam_getWorkshopItem` | Workshop item details |
179+
| `steam_getReviews` | User reviews with filters for language, sentiment, purchase type |
180+
| `steam_getPriceOverview` | Batch price check for multiple apps in a region |
181+
| `steam_getAppReviewSummary` | Review score, totals, and positive percentage |
182+
| `steam_getRegionalPricing` | Pricing breakdown across multiple countries |
183183

184184
**Read-only (API key) — 5 tools:**
185185

186186
| Tool | Description |
187187
|------|-------------|
188-
| `steam.getPlayerSummary` | Player profile — name, avatar, status |
189-
| `steam.getOwnedGames` | Game library with playtime |
190-
| `steam.queryWorkshop` | Search/browse Workshop items |
191-
| `steam.getLeaderboardEntries` | Leaderboard scores and rankings |
192-
| `steam.resolveVanityURL` | Convert vanity URL to Steam ID |
188+
| `steam_getPlayerSummary` | Player profile — name, avatar, status |
189+
| `steam_getOwnedGames` | Game library with playtime |
190+
| `steam_queryWorkshop` | Search/browse Workshop items |
191+
| `steam_getLeaderboardEntries` | Leaderboard scores and rankings |
192+
| `steam_resolveVanityURL` | Convert vanity URL to Steam ID |
193193

194194
**Write / guidance (publisher key):**
195195

196196
| Tool | Type | Description |
197197
|------|------|-------------|
198-
| `steam.createLobby` | SDK guide | Code examples for ISteamMatchmaking lobby creation |
199-
| `steam.uploadWorkshopItem` | SDK guide | Code examples for ISteamUGC Workshop uploads |
200-
| `steam.updateWorkshopItem` | HTTP POST | Update Workshop item metadata via partner API |
201-
| `steam.setAchievement` | HTTP POST | Set/unlock achievements (dev/test) |
202-
| `steam.uploadLeaderboardScore` | HTTP POST | Upload leaderboard scores |
203-
| `steam.grantInventoryItem` | HTTP POST | Grant inventory items |
198+
| `steam_createLobby` | SDK guide | Code examples for ISteamMatchmaking lobby creation |
199+
| `steam_uploadWorkshopItem` | SDK guide | Code examples for ISteamUGC Workshop uploads |
200+
| `steam_updateWorkshopItem` | HTTP POST | Update Workshop item metadata via partner API |
201+
| `steam_setAchievement` | HTTP POST | Set/unlock achievements (dev/test) |
202+
| `steam_uploadLeaderboardScore` | HTTP POST | Upload leaderboard scores |
203+
| `steam_grantInventoryItem` | HTTP POST | Grant inventory items |
204204

205205
</details>
206206

ROADMAP.md

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -33,16 +33,16 @@ Read-only tools:
3333

3434
| Tool | Description |
3535
|------|-------------|
36-
| `steam.getAppDetails({ appid })` | Store data (price, reviews, tags, platforms) |
37-
| `steam.searchApps({ term })` | App search by name |
38-
| `steam.getPlayerCount({ appid })` | Current concurrent players |
39-
| `steam.getAchievementStats({ appid })` | Global achievement unlock percentages |
40-
| `steam.getPlayerSummary({ steamid })` | Profile data (name, avatar, status) |
41-
| `steam.getOwnedGames({ steamid })` | Game library with playtime |
42-
| `steam.getWorkshopItem({ publishedfileid })` | Workshop item details |
43-
| `steam.queryWorkshop({ appid, query_type, count })` | Workshop search/browse |
44-
| `steam.getLeaderboardEntries({ appid, leaderboardid, rangestart?, rangeend? })` | Leaderboard data |
45-
| `steam.resolveVanityURL({ vanity })` | Vanity URL to 64-bit Steam ID |
36+
| `steam_getAppDetails({ appid })` | Store data (price, reviews, tags, platforms) |
37+
| `steam_searchApps({ term })` | App search by name |
38+
| `steam_getPlayerCount({ appid })` | Current concurrent players |
39+
| `steam_getAchievementStats({ appid })` | Global achievement unlock percentages |
40+
| `steam_getPlayerSummary({ steamid })` | Profile data (name, avatar, status) |
41+
| `steam_getOwnedGames({ steamid })` | Game library with playtime |
42+
| `steam_getWorkshopItem({ publishedfileid })` | Workshop item details |
43+
| `steam_queryWorkshop({ appid, query_type, count })` | Workshop search/browse |
44+
| `steam_getLeaderboardEntries({ appid, leaderboardid, rangestart?, rangeend? })` | Leaderboard data |
45+
| `steam_resolveVanityURL({ vanity })` | Vanity URL to 64-bit Steam ID |
4646

4747
### Skill Updates
4848

@@ -71,8 +71,8 @@ Update all 14 existing skills to reference MCP tools where applicable. Replace "
7171

7272
| Tool | Description |
7373
|------|-------------|
74-
| `steam.getReviews({ appid, filter, language, count })` | Fetch user reviews |
75-
| `steam.getPriceOverview({ appids, cc })` | Batch price check across regions |
74+
| `steam_getReviews({ appid, filter, language, count })` | Fetch user reviews |
75+
| `steam_getPriceOverview({ appids, cc })` | Batch price check across regions |
7676

7777
---
7878

@@ -114,8 +114,8 @@ Update all 14 existing skills to reference MCP tools where applicable. Replace "
114114

115115
| Tool | Description |
116116
|------|-------------|
117-
| `steam.getAppReviewSummary({ appid })` | Review histogram and summary |
118-
| `steam.getRegionalPricing({ appid, countries })` | Pricing by region |
117+
| `steam_getAppReviewSummary({ appid })` | Review histogram and summary |
118+
| `steam_getRegionalPricing({ appid, countries })` | Pricing by region |
119119

120120
---
121121

@@ -149,12 +149,12 @@ Update all 14 existing skills to reference MCP tools where applicable. Replace "
149149

150150
| Tool | Description |
151151
|------|-------------|
152-
| `steam.createLobby({ type, maxPlayers, metadata })` | Create multiplayer lobbies |
153-
| `steam.uploadWorkshopItem({ appid, title, content_path })` | Upload new Workshop items |
154-
| `steam.updateWorkshopItem({ fileid, changes })` | Update existing Workshop items |
155-
| `steam.setAchievement({ steamid, achievement })` | Unlock achievements (dev/test) |
156-
| `steam.uploadLeaderboardScore({ appid, leaderboard, score })` | Upload leaderboard scores |
157-
| `steam.grantInventoryItem({ steamid, itemdef })` | Grant inventory items (dev/test) |
152+
| `steam_createLobby({ type, maxPlayers, metadata })` | Create multiplayer lobbies |
153+
| `steam_uploadWorkshopItem({ appid, title, content_path })` | Upload new Workshop items |
154+
| `steam_updateWorkshopItem({ fileid, changes })` | Update existing Workshop items |
155+
| `steam_setAchievement({ steamid, achievement })` | Unlock achievements (dev/test) |
156+
| `steam_uploadLeaderboardScore({ appid, leaderboard, score })` | Upload leaderboard scores |
157+
| `steam_grantInventoryItem({ steamid, itemdef })` | Grant inventory items (dev/test) |
158158

159159
### New Skill
160160

@@ -202,10 +202,10 @@ Update all 14 existing skills to reference MCP tools where applicable. Replace "
202202

203203
| Tool | Description |
204204
|------|-------------|
205-
| `steam.getReviews({ appid, filter, language, review_type, purchase_type })` | Fetch user reviews with pagination and filters |
206-
| `steam.getPriceOverview({ appids, cc })` | Batch price check for multiple apps in a region |
207-
| `steam.getAppReviewSummary({ appid })` | Review score, totals, and positive percentage (no individual reviews) |
208-
| `steam.getRegionalPricing({ appid, countries })` | Pricing breakdown across multiple countries |
205+
| `steam_getReviews({ appid, filter, language, review_type, purchase_type })` | Fetch user reviews with pagination and filters |
206+
| `steam_getPriceOverview({ appids, cc })` | Batch price check for multiple apps in a region |
207+
| `steam_getAppReviewSummary({ appid })` | Review score, totals, and positive percentage (no individual reviews) |
208+
| `steam_getRegionalPricing({ appid, countries })` | Pricing breakdown across multiple countries |
209209

210210
---
211211

@@ -254,7 +254,7 @@ Update all 14 existing skills to reference MCP tools where applicable. Replace "
254254
- [x] ~~App ID validation MCP enhancement~~ - `steam-appid-validation.mdc` updated with live validation via MCP in v0.7.0
255255
- [x] ~~Migration guide skill~~ - `steam-migration-guide` added in v0.8.0
256256
- [x] ~~Common Pitfalls sections~~ - added to all 30 skills in v0.8.0
257-
- [x] ~~getReviews MCP tool~~ - `steam.getReviews` added in v0.9.0
258-
- [x] ~~getPriceOverview MCP tool~~ - `steam.getPriceOverview` added in v0.9.0
259-
- [x] ~~getAppReviewSummary MCP tool~~ - `steam.getAppReviewSummary` added in v0.9.0
260-
- [x] ~~getRegionalPricing MCP tool~~ - `steam.getRegionalPricing` added in v0.9.0
257+
- [x] ~~getReviews MCP tool~~ - `steam_getReviews` added in v0.9.0
258+
- [x] ~~getPriceOverview MCP tool~~ - `steam_getPriceOverview` added in v0.9.0
259+
- [x] ~~getAppReviewSummary MCP tool~~ - `steam_getAppReviewSummary` added in v0.9.0
260+
- [x] ~~getRegionalPricing MCP tool~~ - `steam_getRegionalPricing` added in v0.9.0

0 commit comments

Comments
 (0)