rivalsdata-mcp
Optional Camoufox Cloudflare fallback for bypassing Cloudflare protection when fetching provider data.
Includes openai/outputTemplate compatibility alias for ChatGPT, and supports Streamable HTTP for remote MCP clients such as ChatGPT.
Python package and library with a read-only MCP server; installable via pip and runnable as a Python module.
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., "@rivalsdata-mcpshow me the player dashboard for GS- including their live match"
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.
rivals-api
Marvel Rivals stats from three public sources, through one Python client.
rivals-api brings together RivalsData, RivalsTracker, and Tracker.gg. Look up
players, explore matches and heroes, calculate win rates, or use the read-only
MCP server in an AI client. It is unofficial and requires Python 3.10+.
RivalsData ────┐
RivalsTracker ─┼──► rivals-api ──► Python client / MCP tools / player dashboard
Tracker.gg ────┘Get started
python -m pip install rivals-apifrom rivals_api import RivalsClient
with RivalsClient() as client:
player = client.get_player("GS-") # A player name or numeric UID
rate = player.stats.win_rate()
print(player.name, player.level)
print(rate.wins, rate.games, rate.win_rate_pct)
print(rate.metadata.coverage)The default win rate is for the current season, combining Competitive and
Quickplay. If the current season cannot be verified, pass a season ID or
season="all". The latter means all available tracked history, which may be
less than a player's lifetime history.
Related MCP server: Marvel Rivals MCP
What makes it useful
Feature | Why it matters |
Three providers, one view | Available data from RivalsData, RivalsTracker, and Tracker.gg can fill gaps when a source has less detail or fails. Match results retain source decisions in |
Win rates with evidence | Normal calculations use win/loss counts rather than averaging provider percentages. Coverage and missing modes are reported, so an incomplete answer is recognizable. |
Match-verified rates |
|
Persistent match cache | Precise calculations retain history and details in SQLite. Later runs refresh recent pages and reuse verified older matches. |
Readable match data | Maps, heroes, ranks, modes, platforms, and seasons have names alongside their original IDs. Models also preserve the source payload in |
AI-ready access | Read-only MCP tools cover player profiles, matches, leaderboards, heroes, and more. |
Pick the stats you need
from rivals_api import RivalsClient
with RivalsClient() as client:
player = client.get_player("GS-")
ranked = player.stats.win_rate(mode="competitive")
quickplay = player.stats.win_rate(mode="quickplay")
heroes = player.stats.hero_win_rates(season="all")
classes = player.stats.class_win_rates()
print(ranked.win_rate_pct, quickplay.win_rate_pct)
print(heroes.metadata.coverage)mode accepts "competitive", "quickplay", or "all" (the default).
season accepts a provider season ID, "current", or "all".
Hero and class results have their own coverage metadata.
Go deeper with match-verified rates
from rivals_api import RivalsClient
with RivalsClient() as client:
player = client.get_player("GS-")
rate = player.stats.win_rate(method="precise")
hero_rates = player.stats.hero_win_rates(method="precise")
print(rate.win_rate_pct, rate.metadata.coverage)
print(hero_rates.metadata.unresolved)The first precise run may fetch many history pages and match details. It checks each provider's complete match record independently; it does not splice hero playtime from different sources. Missing playtime, ties, conflicting outcomes, and other uncertain records are reported as unresolved. See the advanced usage guide for attribution and cache details.
Explore players and matches
from rivals_api import RivalsClient
with RivalsClient() as client:
candidates = client.search_players("silo")
for candidate in candidates:
print(candidate.name, candidate.uid)
if candidates:
player = client.get_player(candidates[0].uid)
history = player.matches.fetch(limit=20)
if history.matches:
match = history.matches[0].get_details()
print(match.map, match.game_mode, match.platform)
print(match.provider_metadata.errors)
leaderboard = client.leaderboards.fetch(limit=100)
tier_list = client.heroes.tier_list()Match history combines and deduplicates provider results. Details are fetched when you ask for them. More resources include live games, teammates, team-ups, hero metrics, proficiency, factions, and public insights. Browse the API inventory for the full list and observed response shapes.
Use it with an MCP client
python -m pip install "rivals-api[mcp]"For a local Claude Desktop connection, add this to its configuration and point
command at the Python executable where you installed the package:
{
"mcpServers": {
"rivals-api": {
"command": "C:\\path\\to\\venv\\Scripts\\python.exe",
"args": ["-m", "rivals_api.mcp_server"]
}
}
}On macOS/Linux, use the environment's bin/python path. For local HTTP
testing, run uvicorn rivals_api.mcp_server:app --host 127.0.0.1 --port 8000;
the endpoint is /mcp. The advanced usage guide
covers remote hosting and the player dashboard.
More detail
RivalsDataClient and the rivalsdata import path remain available for older
projects. This project is not affiliated with RivalsData, RivalsTracker,
Tracker.gg, NetEase, or Marvel. Public data can be incomplete, private, or stale.
This server cannot be deployed
Maintenance
Related MCP Connectors
Hosted MCP server for DataLikers — Instagram & TikTok data API. 51 tools: Instagram user search by demographics (gender/age/race/country/city), profiles, bulk lookup, engagement, posts & reels, comments, hashtags, locations, stories, highlights, music, business accounts, top users; TikTok users, videos, comments, hashtags, playlists and top charts. Streamable HTTP, Bearer API key. Free tier: 100 requests on signup at https://datalikers.com/p/1by27bwg
MLB Stats API MCP — official MLB statistics (keyless).
Related MCP Servers
- AlicenseCqualityDmaintenanceAn MCP (Model-Controller-Processor) server for accessing League of Legends client data. This server provides a collection of tools that communicate with the League of Legends Live Client Data API to retrieve in-game data.1212Apache 2.0
- AlicenseAqualityDmaintenanceProvides access to Marvel Rivals game data including hero information, abilities, skins, achievements, items, maps, and player profiles through a standardized interface.1417 npm1MIT
- AlicenseAqualityDmaintenanceProvides MCP tools to query Liquipedia esports data (matches, teams, players, tournaments, placements, standings) via the Liquipedia v3 API and MediaWiki action API.815 npmMIT
- FlicenseNot gradedqualityDmaintenanceMCP server for Valorant match analysis. Enables fetching player stats, match history, agent performance, and more via Henrik's Valorant API.-