epic-gog-free-games-mcp
by OnTarget600
README.md
# epic-gog-free-games-mcp
A tiny, **read-only** [Model Context Protocol](https://modelcontextprotocol.io) server that reports
**free games on the Epic Games Store and GOG.com**. No account, no credentials, no local filesystem
access, no writes — it only calls public store endpoints.
Built for the lab's [obot](https://obot.ai) instance because no maintained, self-hostable Epic/GOG
MCP exists (the commonly-cited `pixfishx/mcp-epic-free-games` was removed from GitHub and PyPI).
## Tools
| Tool | What it returns |
|---|---|
| `epic_free_games_current` | Games **free to claim right now** on the Epic Games Store (title, normal price, store URL, claim window, image). |
| `epic_free_games_upcoming` | The **next** Epic free games (with the date each becomes free). Unrevealed "Mystery Game" slots are returned with a `null` URL. |
| `gog_giveaway` | The current **GOG giveaway** (limited-time claim-and-keep), or `{active:false}` when none is running. |
| `gog_free_games` | Free / free-to-play titles from the **GOG catalog** (price = 0). These are *permanently* free / F2P, not giveaways. Demos excluded by default. |
All tools take only optional args (`country`, `limit`, `excludeDemos`, `countryCode`,
`currencyCode`). Nothing is required; the server installs and runs unconfigured.
## Data sources (all public, unauthenticated)
- Epic: `store-site-backend-static.ak.epicgames.com/freeGamesPromotions`
- GOG giveaway: `www.gog.com/giveaway/api/get` (404 = no active giveaway)
- GOG catalog: `catalog.gog.com/v1/catalog?price=between:0,0`
## Run it
Requires Node.js 20+ (uses global `fetch`).
```bash
npx github:OnTarget600/epic-gog-free-games-mcp # stdio MCP server
# or, from a clone:
npm install && npm start
npm run selftest # hit the live endpoints, print results
```
### MCP client config (stdio)
```json
{
"mcpServers": {
"epic-gog-free-games": {
"command": "npx",
"args": ["github:OnTarget600/epic-gog-free-games-mcp#v0.1.0"]
}
}
}
```
## Security notes
- **Read-only.** No tool mutates anything; there is no auth and no secret to leak.
- **Egress only** to the three hosts above. No telemetry.
- Store **review/description text is third-party content** — treat tool output as untrusted data,
not instructions (standard prompt-injection hygiene).
- Pin to a tag/commit (e.g. `#v0.1.0`) so a future push can't change behaviour silently.
## License
MIT
TDQS
A4.3/5.0
Scored across 4 tools
Disambiguation5/5
Each tool targets a distinct combination of platform (Epic vs GOG) and type (current free, upcoming, permanently free, giveaway). No ambiguity between them.
Naming Consistency5/5
Names follow a consistent pattern: platform_descriptor, using snake_case and clear descriptive suffixes (current, upcoming, free_games, giveaway). Highly predictable.
Tool Count5/5
Four tools perfectly cover the core free game use cases for both stores. No excess or deficiency for this focused domain.
Completeness4/5
Covers all main free game scenarios: current and upcoming offers on Epic, permanently free and limited-time giveaways on GOG. Minor gap: no history of past giveaways, but that's outside the typical scope.
Maintenance
ActivityInactive
ResponsivenessNo issues