LabscoMCP early access ↗
ericraioMCP SERVER

MTG MCP Servers

Two Magic: The Gathering servers — one that holds a real game state with deck, hand and sideboard, and one that searches Scryfall for cards.

by ericraio ↗Games, Entertainment & FandomCommunity

LABSCO SUMMARY

It keeps state, which is what makes it a practice tool.

A card search server tells you what a card does; this one deals you a hand and lets you make the keep-or-mulligan decision with the actual cards in front of you. That difference is the whole reason to run the deck manager — testing an opening-hand distribution or rehearsing a sideboard plan needs a deck that is being drawn from, not queried. Splitting it from the Scryfall server is the right call too: you can register lookup alone if game state is not what you are after.

What it is

A Swift implementation of two separate MCP servers for Magic: The Gathering. One is a game-state manager that loads a decklist and then tracks deck, hand and sideboard through draws, mulligans and sideboarding; the other is a card lookup over the Scryfall API. They run independently, so you can register either or both.

What you get

  • Decklists parsed from the format you already paste around, with deck, sideboard and commander sections — load_deck
  • A real game state rather than a card list: draw from deck to hand with proper shuffling, look at your hand, play a card out of it, and read live deck and hand statistics — draw_cards, get_hand_contents, play_card, get_deck_stats
  • London mulligans implemented as their own operation, and a reset back to the opening state — mulligan, reset_game
  • Sideboarding as a swap between main deck or sideboard and hand — sideboard_swap
  • Card search using Scryfall's own query syntax, so colour, converted mana cost, type and power filters work the way you already write them — search_cards
  • Random cards, optionally constrained by the same query syntax — get_random_card
  • Name lookup two ways, because half-remembered card names are the normal case — exact match or fuzzy — lookup_card_exact, lookup_card_fuzzy
  • Full card data behind those lookups, including images, prices and format legalities

Requirements

No account and no key — Scryfall is public. Swift 6.2 or later and macOS 13 or later. Build from a clone with swift build, optionally in release mode, and copy the two executables somewhere on your path. Each server is registered separately in your client config with a stdio transport; a development configuration runs them through swift run from the project directory, and a production one points at the built binaries directly.

Setup effort

Build from source — clone the repository, then follow the project's own run instructions