MCP
https://slinglab.gg/mcp
This is a streamable HTTP MCP endpoint. Clients that speak OAuth can discover it: a request without a token returns 401 and a WWW-Authenticate header pointing at /.well-known/oauth-protected-resource/mcp. The authorization server is documented in OAuth.
Use POST and Accept: application/json or Accept: text/event-stream. GET and DELETE are not supported. The protocol versions are 2025-03-26 and 2025-06-18.
The access token needs the mcp scope. Each tool also checks its own scope, so include those in the authorize request too. If you set a resource, use https://slinglab.gg/mcp.
A player can approve this from the consent screen. Public MCP clients may register with the dynamic registration endpoint. You can also create the client in the console.
Calls are limited to 60 a minute for the signed-in player. Rejected tokens from one network address are limited as well. Over the limit, the response is HTTP 429 with error rate_limited.
Tools
| Tool | Scope | What it returns |
|---|---|---|
lookup_cards |
cards:read |
Catalog matches for printed English names (card_names, up to 5, 3 matches each). For Magic, query is a meaning search over card embeddings (up to 10). Other games ignore query. |
lookup_rules |
rules:read |
Magic Comprehensive Rules. Pass rule_numbers (up to 5, such as 702.2b) or query. |
list_decks |
decks:read |
The player's decks, including private ones, with a plain-text decklist. Capped at 100. Same decks as Your decks. |
game_history |
games:read |
Finished games, newest first. limit defaults to 20 and stops at 50. Pass before from the previous next_cursor to page. |
deck_analytics |
analytics:read |
Career stats and per-deck performance, the same numbers as Analytics, plus the first page of recent games. |
game_family on lookup_cards is mtg, yugioh, pokemon, or riftbound. It defaults to Magic.
game_history accepts query (player or deck name), result (all, win, or loss), format, hide_short_games (default true), and replays_only. deck_analytics accepts format and hide_short_games (default true). An unknown format comes back as a tool error.
Card and rules text is catalog data. If a meaning search returns nothing, look the card up by name. Do not treat an empty result as permission to invent a card, a rule, or a game result.
Example
{
"mcpServers": {
"slinglab": {
"url": "https://slinglab.gg/mcp"
}
}
}
The first call should request mcp plus the tool scopes the player is willing to share, for example mcp cards:read rules:read decks:read games:read analytics:read.