Overview
Card Deck Shuffler works by generating standard 52-card decks and applying shuffling algorithms. Supports up to 10 decks, optional jokers, and returns complete shuffled deck with sample hands and card details.
Live Test Card Deck Shuffler Skill Skill →
The tool
Once your client is connected to the VerveKit server, this appears in its tool list as CardDeckShufflerSkill. It is read-only and open-world — it fetches and never mutates anything on your side — so most clients call it without asking you to confirm.
{
"name": "CardDeckShufflerSkill",
"arguments": {}
}Connecting
One server URL covers every skill in the catalog, including this one. Authorization is OAuth: the client opens a browser once, and there is no key to paste into a config file.
{
"mcpServers": {
"vervekit": {
"url": "https://api.vervekit.com/v1/mcp"
}
}
}https://api.vervekit.com/v1/mcpPer-client setup — Claude, Cursor, VS Code, ChatGPT — is on the MCP setup page.
Arguments
These are the properties on the tool's inputSchema, so a well-behaved client validates them before the call is made. Premium arguments are accepted on every plan but only take effect on plans that include them.
| Argument | Type | Description |
|---|---|---|
decksOptional | integer | Number of decks to shuffle default 1 · range 1–10 |
jokersOptional | boolean | Include jokers in the deck |
methodOptional | string | Shuffling methodfisher-yatesriffledefault fisher-yates |
What the model gets back
The result carries a structuredContent object matching the tool's declared outputSchema, so a client reads fields without parsing prose. status is "ok" and error is null on success; a null field means the value was not available for that input, not that the call failed.
{
"status": "ok",
"error": null,
"data": {
"total_cards": 52,
"decks_used": 1,
"includes_jokers": false,
"shuffle_method": "fisher-yates",
"cards": [
{
"rank": "8",
"suit": "Spades",
"card": "8 of Spades",
"short": "8♠"
},
{
"rank": "2",
"suit": "Spades",
"card": "2 of Spades",
"short": "2♠"
},
{
"rank": "Queen",
"suit": "Hearts",
"card": "Queen of Hearts",
"short": "Q♥"
},
{
"rank": "7",
"suit": "Clubs",
"card": "7 of Clubs",
"short": "7♣"
},
{
"rank": "Queen",
"suit": "Spades",
"card": "Queen of Spades",
"short": "Q♠"
},
{
"rank": "King",
"suit": "Hearts",
"card": "King of Hearts",
"short": "K♥"
},
{
"rank": "6",
"suit": "Spades",
"card": "6 of Spades",
"short": "6♠"
},
{
"rank": "Queen",
"suit": "Diamonds",
"card": "Queen of Diamonds",
"short": "Q♦"
},
{
"rank": "King",
"suit": "Diamonds",
"card": "King of Diamonds",
"short": "K♦"
},
{
"rank": "4",
"suit": "Hearts",
"card": "4 of Hearts",
"short": "4♥"
},
{
"rank": "7",
"suit": "Hearts",
"card": "7 of Hearts",
"short": "7♥"
},
{
"rank": "8",
"suit": "Clubs",
"card": "8 of Clubs",
"short": "8♣"
},
{
"rank": "4",
"suit": "Spades",
"card": "4 of Spades",
"short": "4♠"
},
{
"rank": "9",
"suit": "Hearts",
"card": "9 of Hearts",
"short": "9♥"
},
{
"rank": "Ace",
"suit": "Diamonds",
"card": "Ace of Diamonds",
"short": "A♦"
},
{
"rank": "Jack",
"suit": "Diamonds",
"card": "Jack of Diamonds",
"short": "J♦"
},
{
"rank": "Jack",
"suit": "Hearts",
"card": "Jack of Hearts",
"short": "J♥"
},
{
"rank": "2",
"suit": "Clubs",
"card": "2 of Clubs",
"short": "2♣"
},
{
"rank": "Jack",
"suit": "Clubs",
"card": "Jack of Clubs",
"short": "J♣"
},
{
"rank": "Queen",
"suit": "Clubs",
"card": "Queen of Clubs",
"short": "Q♣"
},
{
"rank": "9",
"suit": "Spades",
"card": "9 of Spades",
"short": "9♠"
},
{
"rank": "8",
"suit": "Diamonds",
"card": "8 of Diamonds",
"short": "8♦"
},
{
"rank": "10",
"suit": "Spades",
"card": "10 of Spades",
"short": "10♠"
},
{
"rank": "9",
"suit": "Clubs",
"card": "9 of Clubs",
"short": "9♣"
},
{
"rank": "4",
"suit": "Clubs",
"card": "4 of Clubs",
"short": "4♣"
},
{
"rank": "Ace",
"suit": "Clubs",
"card": "Ace of Clubs",
"short": "A♣"
},
{
"rank": "7",
"suit": "Diamonds",
"card": "7 of Diamonds",
"short": "7♦"
},
{
"rank": "7",
"suit": "Spades",
"card": "7 of Spades",
"short": "7♠"
},
{
"rank": "5",
"suit": "Diamonds",
"card": "5 of Diamonds",
"short": "5♦"
},
{
"rank": "10",
"suit": "Clubs",
"card": "10 of Clubs",
"short": "10♣"
},
{
"rank": "10",
"suit": "Diamonds",
"card": "10 of Diamonds",
"short": "10♦"
},
{
"rank": "6",
"suit": "Hearts",
"card": "6 of Hearts",
"short": "6♥"
},
{
"rank": "King",
"suit": "Spades",
"card": "King of Spades",
"short": "K♠"
},
{
"rank": "Jack",
"suit": "Spades",
"card": "Jack of Spades",
"short": "J♠"
},
{
"rank": "Ace",
"suit": "Hearts",
"card": "Ace of Hearts",
"short": "A♥"
},
{
"rank": "5",
"suit": "Hearts",
"card": "5 of Hearts",
"short": "5♥"
},
{
"rank": "King",
"suit": "Clubs",
"card": "King of Clubs",
"short": "K♣"
},
{
"rank": "10",
"suit": "Hearts",
"card": "10 of Hearts",
"short": "10♥"
},
{
"rank": "2",
"suit": "Diamonds",
"card": "2 of Diamonds",
"short": "2♦"
},
{
"rank": "Ace",
"suit": "Spades",
"card": "Ace of Spades",
"short": "A♠"
},
{
"rank": "3",
"suit": "Clubs",
"card": "3 of Clubs",
"short": "3♣"
},
{
"rank": "5",
"suit": "Clubs",
"card": "5 of Clubs",
"short": "5♣"
},
{
"rank": "8",
"suit": "Hearts",
"card": "8 of Hearts",
"short": "8♥"
},
{
"rank": "3",
"suit": "Spades",
"card": "3 of Spades",
"short": "3♠"
},
{
"rank": "6",
"suit": "Clubs",
"card": "6 of Clubs",
"short": "6♣"
},
{
"rank": "4",
"suit": "Diamonds",
"card": "4 of Diamonds",
"short": "4♦"
},
{
"rank": "2",
"suit": "Hearts",
"card": "2 of Hearts",
"short": "2♥"
},
{
"rank": "3",
"suit": "Diamonds",
"card": "3 of Diamonds",
"short": "3♦"
},
{
"rank": "9",
"suit": "Diamonds",
"card": "9 of Diamonds",
"short": "9♦"
},
{
"rank": "5",
"suit": "Spades",
"card": "5 of Spades",
"short": "5♠"
},
{
"rank": "3",
"suit": "Hearts",
"card": "3 of Hearts",
"short": "3♥"
},
{
"rank": "6",
"suit": "Diamonds",
"card": "6 of Diamonds",
"short": "6♦"
}
],
"top_card": {
"rank": "8",
"suit": "Spades",
"card": "8 of Spades",
"short": "8♠"
},
"bottom_card": {
"rank": "6",
"suit": "Diamonds",
"card": "6 of Diamonds",
"short": "6♦"
},
"sample_hand": [
{
"rank": "8",
"suit": "Spades",
"card": "8 of Spades",
"short": "8♠"
},
{
"rank": "2",
"suit": "Spades",
"card": "2 of Spades",
"short": "2♠"
},
{
"rank": "Queen",
"suit": "Hearts",
"card": "Queen of Hearts",
"short": "Q♥"
},
{
"rank": "7",
"suit": "Clubs",
"card": "7 of Clubs",
"short": "7♣"
},
{
"rank": "Queen",
"suit": "Spades",
"card": "Queen of Spades",
"short": "Q♠"
}
]
}
}
Response fields
Paths are relative to data. Premium fields are absent rather than zeroed on plans that do not include them, so check for presence instead of comparing to 0.
| Field | Type | Example | Description |
|---|---|---|---|
total_cards | number | 52 | Total number of cards in the shuffled deck |
decks_used | number | 1 | Number of decks combined for this shuffle |
includes_jokers | boolean | false | Whether jokers are included in this deck |
shuffle_method | string | fisher-yates | Shuffling algorithm used for randomization |
cards | array[52] | Complete shuffled deck with all card details | |
cards.0.rank | string | 8 | Card rank value like Ace, King, or number |
cards.0.suit | string | Spades | Card suit: Spades, Hearts, Diamonds, or Clubs |
cards.0.card | string | 8 of Spades | Full card name like King of Hearts |
cards.0.short | string | 8♠ | Abbreviated card notation with suit symbols |
top_card | object | {…} | First card in the shuffled deck sequence |
top_card.rank | string | 8 | Top card rank value |
top_card.suit | string | Spades | Top card suit |
top_card.card | string | 8 of Spades | Top card full name |
top_card.short | string | 8♠ | Top card abbreviated notation |
bottom_cardPremium | object | {…} | Last card in the shuffled deck sequence |
bottom_card.rankPremium | string | 6 | Bottom card rank value |
bottom_card.suitPremium | string | Diamonds | Bottom card suit |
bottom_card.cardPremium | string | 6 of Diamonds | Bottom card full name |
bottom_card.shortPremium | string | 6♦ | Bottom card abbreviated notation |
sample_handPremium | array[5] | First five cards as example hand from deck | |
sample_hand.0.rankPremium | string | 8 | Sample hand card rank value |
sample_hand.0.suitPremium | string | Spades | Sample hand card suit |
sample_hand.0.cardPremium | string | 8 of Spades | Sample hand card full name |
sample_hand.0.shortPremium | string | 8♠ | Sample hand card abbreviated notation |
Failure modes
Errors come back as tool errors carrying a sentence the model can act on, not a bare status code. Error handling covers the full list.
| Status | What it means |
|---|---|
400 / 422 | The arguments did not validate. The message names the offending one. |
401 | The OAuth session is invalid or expired — reconnect the server. |
403 | Blocked by a key restriction or an IP allow-list. Never a bad identity. |
404 | This skill is not part of VerveKit. Check the catalog. |
429 | Out of credits, or a brief rate limit. The message tells them apart. |
A call costs 2 credits each time the tool actually runs; a model that reasons about the tool without calling it costs nothing.
Use cases
- Card Games
- Generate shuffled decks for online card games, poker, and blackjack applications
- Simulations
- Simulate card distributions and test card game probabilities with random shuffles
- Game Development
- Implement card shuffling functionality in gaming applications and virtual casinos
- Teaching Tools
- Demonstrate shuffling algorithms and randomization concepts in educational applications
Other ways to use Card Deck Shuffler Skill
Set up Card Deck Shuffler Skill on VerveKit, or reach the same source a different way. Your VerveKit account and credits work on all of them — one key, one balance.
Related
More in Games: