Self-Serve Card Reissue
A signed-in BlastPass member has lost their physical membership card and just wants a replacement sent over. It's the kind of small, everyday errand that usually means waiting in a support queue. Here it's fully self-serve, with no associate in the loop, and one firm rule underneath it all: nothing on the account changes until the member proves the card is really theirs.
The conversation
- 1Member (signed in)
Hi, I lost my BlastPass card. Can you send me a new one?
- ◆BlastPass Concierge
"They want a replacement card. I don't have a membership ID yet, and I can't look anything up, or verify anyone, without it. I'll ask for it first; nothing changes until I have it."
"Oh no, let's get you a new one. 💜 To pull up your membership, what's your BlastPass member ID? It usually looks like
MEGA-BLAST-####." - 2Member
Sure, it's MEGA-BLAST-1024.
- ◆BlastPass Conciergeget_membership looks up MEGA-BLAST-1024 (read-only)
Finds a BlastPass Plus Extra membership. Before deactivating a card, the agent verifies identity with two factors the real owner has, and reveals neither.
"Got it, I found a Plus Extra membership under that ID. Before I deactivate the old card and issue a new one, I just need to confirm it's really you. Can you give me two things: the name on the membership, and the last 4 digits of your console's serial number?"
- 3Member
It's Jordan Pixel, and the last 4 are 1024.
- ◆BlastPass Concierge
"Name Jordan Pixel matches, and the serial ends in 1024. Both factors match. Identity confirmed. Now I can safely reissue."
reissue_card deactivates the old card, mints a new serial, keeps membership activemembership-card-png generates & runs Python (matplotlib)Renders a CR80 digital card from the
get_membershipdetails plus the freshly minted serial: name, Plus Extra purple tier badge, member ID, console serial, dates, barcode, and perks line.📄 hands back blastpass_card.png"Thanks, Jordan. You're verified. ✅ Your new digital card is ready. The old card is now deactivated; your tier, term, and BlastPoints are unchanged."
What was demonstrated
Verify before you mutate
Identity is confirmed with two factors (name and last-4 of the serial) before any card is touched. The agent never reveals either value while asking.
It actually changes state
reissue_card deactivates the lost card server-side and mints a new one, distinct from cancelling the membership. The PNG reflects the new serial, not the old.
The foundation pattern
MCP → verify → MCP → skill → file is the core loop. The flagship scenario stacks connected agents, policy, and chained math on top of it.
What gets generated
The member gets a digital card, rendered live by the
membership-card-png skill (matplotlib) from the
get_membership details plus the freshly minted serial.
This is the actual PNG from a real run of the skill — download it
to see exactly what the member saves to their phone.