gameswarp-mcp
This server lets an AI agent investigate Steam games through player reviews, rating history, patch notes, and gaming press articles.
search_games: Resolve a game name (prefix-matched, Russian supported) to a Steam appid.
get_review_timeline: Get monthly positive/negative counts for the game's full history, plus daily data for the last 30 days, to spot rating shifts.
get_game_news: Fetch patch notes and press items by date, to correlate releases with rating changes.
get_reviews: Pull player reviews filtered by date, sentiment, and minimum playtime, with clear errors for windows that are too old to reach.
search_articles: Full-text search over collected gaming press articles, covering industry-wide coverage beyond just Steam.
Provides tools for investigating Steam games: searching games by name, retrieving review sentiment timelines, patch notes and news, and reading player reviews filtered by time, sentiment, and playtime.
Click on "Deploy 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., "@gameswarp-mcp Investigate why No Man's Sky's rating dropped in October 2022."
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.
gameswarp-mcp
An MCP server that lets a model investigate Steam games through what players actually write — reviews, rating history, patch notes and gaming press.
A Steam rating tells you 84% of people liked a game. It does not tell you what broke in October, whether it was fixed, or what the players with 300 hours think that the ones with 20 minutes do not. That information exists; it is just buried in a hundred thousand reviews.
Install
claude mcp add gameswarp -- npx -y gameswarp-mcpOr, for any MCP client, run npx -y gameswarp-mcp over stdio.
search_articles additionally needs a Postgres database with collected press
articles; the other four tools work against Steam directly with no setup.
Related MCP server: Steam Reviews MCP
Tools
Tool | What it answers |
| Name to appid. Prefix matching; Russian titles when asked in Russian |
| Monthly positive share for the whole life of a game, plus the last 30 days |
| Patch notes with dates, and press Steam syndicates |
| Reviews filtered by window, sentiment and hours played at the time of writing |
| Full-text search over collected gaming press |
A typical investigation runs get_review_timeline to find when a rating moved,
get_game_news to find the patch released around that date, then get_reviews
for the same window to read what players said.
Two constraints worth knowing
Reviews cannot be read for an arbitrary past window. Steam offers no way to
jump to a date — day_range silently ignores anything beyond about a year — so
the only route back is walking newer reviews first. Reaching October 2022 for No
Man's Sky means roughly 1,300 requests. get_reviews therefore works on recent
windows and fails with a clear message rather than burning minutes to return
nothing. Use get_review_timeline for old history: it is cheap and complete.
Steam is unforthcoming about its rate limits but does enforce them. Requests are paced, retried with a growing backoff, and cached on disk. 4xx is never retried: a 403 means the appid does not exist.
Selecting reviews
A popular game runs over 90% positive, so a naive sample answers "what do people
complain about?" with nothing to complain about. get_reviews scans far more
reviews than it returns whenever a filter is selective, and reports how many it
scanned when nothing matches, so the caller can tell an empty window from an
unlucky sample.
Every review carries the hours its author had played at the moment of writing.
A review with 300 hours behind it and one with 15 minutes are different kinds of
evidence, and min_playtime_hours exists to separate them.
Collecting articles
npm run tick applies migrations, polls every source and resolves new game names.
Every step is idempotent, so running it repeatedly is safe and cheap: sources that
have not changed answer 304 with no body, and only names never seen before cost a
Steam lookup.
It runs hourly on GitHub Actions against a hosted database. Hourly is not arbitrary - the tightest feed holds about five hours of articles, and anything slower loses items permanently.
Set DATABASE_URL as a repository secret to enable it. The hosted database holds
the feed, games, links and finished analyses; raw reviews and full patch notes
stay local, where they are fetched on demand and cached to disk, because they are
three orders of magnitude larger.
Which model answers
Nothing above src/model names a provider; the environment decides, and the
split is deliberate:
Provider | Why | |
Scheduled work | hosted, OpenAI-compatible | a scheduled job cannot reach a laptop, and a laptop should not be the compute for background work |
Evals and iteration | local, through Ollama | dozens of runs in a row would exhaust a free tier's daily budget in one sitting |
See .env.example. Adding another vendor is a file beside src/model/ollama.ts
and a case in the factory; nothing else changes.
Development
npm install
npm run dev # tsc --watch
npm test # unit tests, offline
npm run inspect # build and open the MCP Inspector
npm run acceptance # end-to-end over stdio, needs network and the database
node scripts/build-dataset.mjs # rebuild the eval dataset from Steam
node scripts/run-eval.mjs # run it; resumes where it stopped
node scripts/run-eval.mjs '' --fresh # start over instead of resuming
docker compose up -d && npm run db:migrateSee ARCHITECTURE.md for how the pieces fit together and API-NOTES.md for hand-verified Steam endpoints, including a few that every tutorial still gets wrong.
License
MIT
Available Tools
5 toolsget_game_newsPatch notes and pressB
News Steam holds for a game. Developer announcements are the patch notes, and they carry dates - use them to find which patch landed near a rating change. Press items are third-party articles Steam syndicates.
Inputs: appid (required), kind, limit, since.
get_reviewsPlayer reviewsA
Reviews for a game, optionally limited to a date window, sentiment, or players with real time in the game. Only recent windows can be read: Steam offers no way to jump to an old date, so anything more than a few months back fails with a clear message. Use get_review_timeline for old history instead.
Inputs: appid (required), limit, since, until, +2 more.
get_review_timelineRating over timeA
Monthly positive and negative review counts for the whole life of a game, plus the last 30 days daily. This is how you find when a rating moved. It is cheap and covers all history, unlike get_reviews.
Inputs: appid (required).
search_articlesSearch collected pressB
Full-text search over gaming press articles collected from outlet feeds. Unlike the Steam tools this covers the industry generally, so it answers what is being written about a game or a topic right now.
Inputs: query (required), limit, since_days.
search_gamesSearch Steam gamesA
Find a game on Steam by name and get its appid, which every other tool needs. Matches prefixes ("no man" finds No Man's Sky) but not typos. Searching in Russian returns Russian titles.
Inputs: query (required), limit, language.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 5 tools
Most tools are clearly distinct: search_games is a Steam appid lookup, get_review_timeline is aggregated history, and get_reviews is individual recent reviews. There is minor potential confusion between get_reviews and get_review_timeline, and between search_articles and get_game_news, but the descriptions explicitly differentiate their data sources and use cases.
All tools follow a consistent verb_noun snake_case pattern: search_* for lookup-style tools and get_* for retrieval tools. The naming pattern is predictable and matches the underlying operation.
Five tools is a well-scoped set for a gaming/Steam research server. Each tool serves a distinct data need without redundancy or bloat.
The core workflow is covered: search a game, get review timeline, get detailed reviews, get news, and search press articles. Minor gaps exist around game metadata/details, but the set supports the apparent purpose of analyzing rating changes and related coverage.
Maintenance
Related MCP Connectors
Every Steam review of any game: text, votes, playtime, language. No API key.
Steam backlog, account value, buy-or-skip verdicts and Steam Machine checks. Hosted, keyless.
Steam game, Agoda/Booking.com hotel and Google Play app reviews with optional AI insight reports.
Steam game data with dates: review score and consensus, price lows, tags, new releases; cite it.
Related MCP Servers
- AlicenseBqualityCmaintenanceEnables LLMs to retrieve and analyze Steam game reviews, providing access to review statistics, game information, and helping summarize pros and cons of games.168 npm7MIT
- AlicenseAqualityBmaintenanceAbout Search Steam games, fetch user reviews, and analyze sentiment with topic drill-down to make informed purchasing decisions.727 npm3MIT
- AlicenseAqualityCmaintenanceEnables exploring Steam store reviews and community discussion threads with server-side filtering, temporal analysis, and metadata context for understanding player sentiment and feedback beyond store page noise.1325 npm1BSD 3-Clause
- AlicenseAqualityBmaintenanceEnables interaction with Steam: search games, get store details, reviews, prices, discounts, news, and player profiles, libraries, and achievements via the Steam Web API.26268 npm5MIT