Rgl
FreeNot checkedEnables querying RGL.gg competitive TF2 data through natural language, resolving player, team, season, division, and match information via a series of API calls
About
Enables querying RGL.gg competitive TF2 data through natural language, resolving player, team, season, division, and match information via a series of API calls.
README
MCP server that wraps the RGL API with natural-language tools. Designed for hosting on fly.io.
What it does
Translates queries like "every player who played IM in S7 of 6s" into the right sequence of API calls:
- Resolves "6s" → format/region (defaults to NA when not specified).
- Resolves "S7" → SeasonId by fuzzy-matching cached season list.
- Resolves "IM" → DivisionId scoped to the region.
- Fetches the corresponding Group, then its rosters.
- Optionally bulk-fetches profile data for every unique player.
Tools
| Tool | Purpose |
|---|---|
find_season |
Resolve season phrase → SeasonId |
get_season |
Reverse lookup: SeasonId → season/region/format metadata (inverse of find_season) |
find_region |
Resolve region phrase → RegionId |
find_division |
Resolve division phrase → DivisionId (scoped to a region) |
find_team |
Substring search on team name/tag |
find_player |
Substring search on player aliases |
get_player |
Profile by SteamID |
get_team |
Team data by TeamId (includes a resolved region block — use region.regionId as the r= value in rgl.gg URLs) |
get_match |
Match data by MatchId |
list_season_divisions |
Groups in a season |
list_division_teams |
Teams in a (season, division) |
list_division_players |
Every unique player in (season, division), optionally with full profile data |
list_formats |
All formats (lookup) |
list_regions |
All regions (lookup) |
Local development
npm install
npm run dev
The server reads .env.local for RGL_API_BASE_URL etc. By default it points at the production RGL API.
Deploy
fly launch --name rgl-mcp --copy-config --no-deploy # first time only
fly deploy
Then point your MCP client at https://rgl-mcp.fly.dev/mcp (Streamable HTTP transport).
Edits aren't live until you
fly deploy. The hosted server athttps://rgl-mcp.fly.dev/mcpis what MCP clients talk to, so any change tosrc/requires afly deployto take effect. A connected client also caches the tool list at session start — new or renamed tools only appear in a fresh session after the deploy.
Use with Claude Code
This is an unauthenticated, read-only endpoint over already-public RGL data. Every tool just proxies the public RGL API, so the URL isn't a secret. The server adds no auth of its own, and abuse is naturally bounded by the upstream RGL API's own rate limiting. The open pattern is safe only because nothing here is sensitive — don't bolt private or authenticated data onto this server without first adding auth.
The server is live at https://rgl-mcp.fly.dev/mcp. Add it to Claude Code with the HTTP transport — no local clone or build required, you're connecting straight to the hosted fly instance:
claude mcp add --transport http rgl https://rgl-mcp.fly.dev/mcp
By default this adds the server at local scope (just you, this project). Use --scope user to make it available across all your projects, or --scope project to share it with the repo via a checked-in .mcp.json:
claude mcp add --transport http --scope user rgl https://rgl-mcp.fly.dev/mcp
Verify and inspect the connection:
claude mcp list # shows rgl as connected
claude mcp get rgl # shows the URL, transport, and scope
Inside a session, /mcp lists the connected servers and their tools. The tools then show up as mcp__rgl__<tool> (e.g. mcp__rgl__find_season). To remove it later: claude mcp remove rgl.
Configuration
| Env var | Default | Meaning |
|---|---|---|
RGL_API_BASE_URL |
https://rglgg-api.fly.dev/v0 |
Base URL of the RGL API |
PORT |
3000 |
HTTP listen port |
CACHE_REFRESH_MS |
3600000 |
Lookup cache TTL (1h) |
DEFAULT_REGION_ID |
40 |
NA Sixes — used when only a format is given |
from github.com/RGLgg/MCP
Installing Rgl
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/RGLgg/MCPFAQ
Is Rgl MCP free?
Yes, Rgl MCP is free — one-click install via Unyly at no cost.
Does Rgl need an API key?
No, Rgl runs without API keys or environment variables.
Is Rgl hosted or self-hosted?
A hosted option is available: Unyly runs the server in the cloud, no local setup required.
How do I install Rgl in Claude Desktop, Claude Code or Cursor?
Open Rgl on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectCompare Rgl with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
