Model Context Protocol server for Steam Launch Forecaster — calibrated revenue cones for indie Steam game launches, exposed as MCP tools to Claude / AI agents.
Project description
steamforecast-mcp
Model Context Protocol server for Steam Launch Forecaster. Exposes calibrated revenue cones (P10–P90, empirically validated 80% coverage per genre) 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. The
other three are pure compute / static reference, so they work offline once
the 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-mcp
and 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 call
boxleiter_estimate(review_count, price_cents) with values from the
forecast 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_stratum
table.
Why a separate server when the website exists?
Because LLMs and AI agents shouldn't have to scrape HTML to use a calibrated 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 from the website into spreadsheets — e.g., a nightly Claude Code routine that pulls a forecast for every appid in a publisher's portfolio and writes a report.
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file steamforecast_mcp-0.1.0.tar.gz.
File metadata
- Download URL: steamforecast_mcp-0.1.0.tar.gz
- Upload date:
- Size: 8.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
24da9db9608505b57f869175abe58943d1c6bc5be9325f050038582cb090265e
|
|
| MD5 |
ef3a76f979e92642cbcfa99a3e3ee7cd
|
|
| BLAKE2b-256 |
0b7720189d8285b5cad7ec4e331025c4a73bf9990776743e62d47ca738e30c07
|
Provenance
The following attestation bundles were made for steamforecast_mcp-0.1.0.tar.gz:
Publisher:
publish.yml on GC108/steamforecast-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
steamforecast_mcp-0.1.0.tar.gz -
Subject digest:
24da9db9608505b57f869175abe58943d1c6bc5be9325f050038582cb090265e - Sigstore transparency entry: 1487018595
- Sigstore integration time:
-
Permalink:
GC108/steamforecast-mcp@21689e1bedb87c0f7f7ed5acde6ff1e1906c8791 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/GC108
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@21689e1bedb87c0f7f7ed5acde6ff1e1906c8791 -
Trigger Event:
push
-
Statement type:
File details
Details for the file steamforecast_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: steamforecast_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 8.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b4242901cf449701e045c64431a6bd16eb8e12dbbebe9d7490c8324d2b87e16
|
|
| MD5 |
9082fe3fe7fc6ddc68ec5a40bb80fabd
|
|
| BLAKE2b-256 |
df34df9d3aa1e313757780c3687f412be7b2a9633693606c40d33a3c61e00204
|
Provenance
The following attestation bundles were made for steamforecast_mcp-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on GC108/steamforecast-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
steamforecast_mcp-0.1.0-py3-none-any.whl -
Subject digest:
5b4242901cf449701e045c64431a6bd16eb8e12dbbebe9d7490c8324d2b87e16 - Sigstore transparency entry: 1487018659
- Sigstore integration time:
-
Permalink:
GC108/steamforecast-mcp@21689e1bedb87c0f7f7ed5acde6ff1e1906c8791 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/GC108
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@21689e1bedb87c0f7f7ed5acde6ff1e1906c8791 -
Trigger Event:
push
-
Statement type: