steamforecast-mcp
Model Context Protocol server for Steam Launch Forecaster. Exposescalibrated revenue cones (P10–P90, empirically validated 80% coverage pergenre) to Claude, ChatGPT, and any MCP-aware AI agent as tool calls.
What it does
Five tools, all backed by the public steamforecast.app API:
| Tool | What it does |
|---|---|
get_forecast(appid) |
Calibrated P10/P50/P90 revenue cone for a Steam game by appid |
get_comps(appid, k) |
Top-K nearest-neighbor comparable games (cosine sim over BGE embeddings) |
boxleiter_estimate(review_count, price_cents) |
Pure-compute Boxleiter rule-of-thumb sanity check |
get_calibration_summary() |
Latest published live coverage table (per-stratum) |
get_methodology() |
Pulls llms.txt — high-quality URL inventory for ingestion |
get_forecast and get_comps make HTTPS calls to steamforecast.app. Theother three are pure compute / static reference, so they work offline oncethe package is installed.
Install
pip install steamforecast-mcp
Configure your MCP client
Claude Desktop / Claude Code
Add to your MCP config (typically ~/.claude.json or~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"steamforecast": {
"command": "steamforecast-mcp"
}
}
}
Or via the Claude Code CLI:
claude mcp add steamforecast -- steamforecast-mcp
Other MCP clients (Cursor, Cline, etc.)
Use the standard stdio MCP config; the executable is steamforecast-mcpand takes no arguments.
Quick usage
Once configured, ask your AI agent things like:
"Pull a calibrated revenue forecast for Hades on Steam (appid 1145360)and compare it to the Boxleiter rule of thumb. Are they consistent?"
The agent will call get_forecast(1145360), then callboxleiter_estimate(review_count, price_cents) with values from theforecast result, then surface the divergence to you.
"What's the live calibration coverage on the strategy_sim stratum?"
The agent calls get_calibration_summary() and reads the per_stratumtable.
Why a separate server when the website exists?
Because LLMs and AI agents shouldn't have to scrape HTML to use acalibrated forecast. The MCP surface is structured (typed JSON), versioned,and rate-limit-aware, which is the right contract for tool-using models.
It also lets you build automations without manually copying numbers fromthe website into spreadsheets — e.g., a nightly Claude Code routine thatpulls a forecast for every appid in a publisher's portfolio and writes areport.
Configuration
| Env var | Purpose | Default |
|---|---|---|
STEAMFORECAST_BASE_URL |
Override the API base URL (useful for local dev / staging) | https://steamforecast.app |
Development
git clone https://github.com/GC108/steamforecast-mcp
cd steamforecast-mcp
pip install -e ".[dev]"
pytest
ruff check .
License
MIT — see LICENSE.
Related
- steamforecast.app — calibrated revenue cones with empirically-validated 80% coverage per genre.
- The Calibration Gap (Q2 2026 report) — methodology + live coverage evidence.
- steam-page-stats — companion OSS Python client for Steam Storefront + Boxleiter rule-of-thumb (no MCP, just a library + CLI).
- Model Context Protocol — the open standard this server implements.