Teaching Claude My Disney Lorcana Collection, Part 1: Why I Built It
Overview
I collect Disney Lorcana. A few hundred cards, spread across a dozen sets, with the usual TCG problem: I never actually know what I own relative to what I’d need to build something good. Every time I wanted to answer “can I build a competitive Amber/Sapphire deck with what I have,” it turned into a three-tab exercise — TCGPlayer for my export and prices, dreamborn.ink for the deck builder, a wiki for card text and rulings I couldn’t remember. Twenty minutes of tab-switching to answer one question.
If you’ve been reading along, this is the same shape of problem I solved for training data with strava-mcp and nutrition with mfp-mcp: Claude is genuinely good at this kind of reasoning — curve analysis, format legality, cost math — it just can’t see the data. So I built lorcana-mcp to give it a real card database and my actual collection.
The problem: three sources of truth, none of them talking to each other
A Lorcana collection has three distinct pieces of data, and no single place has all three:
- What you own — TCGPlayer’s export CSV, if you’ve kept it current. It has quantities and prices, but no gameplay data — no ink cost, no keywords, no ability text.
- What a card does — split across two community APIs (LorcanaJSON for recent sets, lorcana-api.com for older ones), plus a wiki when the APIs are wrong or incomplete.
- What’s legal — format rotation is its own moving target. Core Constructed drops whole sets in groups, not one at a time, and the “safe” window shifts every time a new set goes live.
None of this is Claude’s fault for not knowing — it’s that the data was never in one place for anything to read, including me.
Different shape than the health servers
Strava, MyFitnessPal, and Withings all needed an OAuth dance before they were useful — you’re authenticating as yourself against a service that holds your personal data. Lorcana doesn’t have that problem at all. The card data is entirely public (LorcanaJSON, lorcana-api.com, duels.ink, and tcgcsv.com for pricing are all open, no-auth APIs), and the only “personal” piece is a CSV you already exported yourself.
That means lorcana-mcp needs zero configuration. No account, no login, no auth command to run first. pip install, point it at your export, done. That’s a genuinely different kind of MCP server to build — no token refresh logic, no scopes to think about — and it made the whole project feel more like a data-modeling problem than an integration problem.
What it does today
Ten tools, roughly in the order I built them:
| Tool | What it does |
|---|---|
enrich_csv |
Turns a bare TCGPlayer export into a real database — ink cost, stats, keywords, ability text — plus a dreamborn.ink-ready import file |
lookup_card / resolve_card |
Look up a card by name, including fuzzy/informal names (“goofy musketeer,” “big pete”) |
search_cards |
Filter the whole card pool by color, type, rarity, cost, keyword, ability text |
find_song_synergies |
Who can sing a given song, and for how cheap |
filter_collection |
Which of your cards are legal in Core, Infinity, or Poorcana |
audit_csv |
Sanity-check an enriched CSV against live data |
analyze_deck |
Curve, color split, and legality for a pasted decklist |
what_am_i_missing |
Diff a decklist against your collection and price the gap |
build_deck |
Automatically assemble a legal, curve-balanced deck for an ink pair |
That last one — build_deck — didn’t exist when I started this post series. It showed up mid-project because a conversation about “how should Claude build decks for me” turned into “why isn’t this just a tool everyone gets.” That’s the whole of part 3.
What it looks like when it works
Me: I want a Core Constructed Amber/Sapphire deck. What am I missing and what would it cost?
Claude: (calls
build_deckwithmode="ideal"against your collection CSV) — Here’s a curve-balanced 60-card build. You already own 22 of the 60 slots. To complete it: 4x Merlin’s Carpetbag ($2.08), 4x The Queen - Fairest of All ($2.88), 3x Akood et Emuti ($14.94)… Estimated cost to complete: $31.32, live TCGPlayer snapshot via tcgcsv.com.
That answer used to be a spreadsheet. Now it’s one sentence.
The series
Three posts:
- This post — the problem and why it’s shaped differently than the health MCP servers
- The build — the enrichment pipeline, the fuzzy card-matching engine, and what I learned auditing two other open-source Lorcana MCP servers
- Building an AI deck builder — the heuristic scoring engine behind
build_deck, two real bugs it took to get there, and shipping it to PyPI and the MCP Registry
The code is live at github.com/IcaroBichir/lorcana-mcp, published on PyPI as lorcana-mcp, and listed on the official MCP Registry. If you collect Lorcana and want to skip ahead: pip install lorcana-mcp, then claude mcp add lorcana -- lorcana-mcp serve.