← Files Mana VaultARCHIVED FILE
plugin.json
6.32 KB · Nov 3, 2026 · 19:16 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "mana-vault",
"version": "1.1.0",
"description": "Manage your Magic collection, coach and edit decks, and analyze trades in ChatGPT and Codex.",
"author": {
"name": "Mana Vault",
"url": "https://manavault.cards"
},
"homepage": "https://manavault.cards",
"extensions": {
"com.openai": {
"interface": {
"displayName": "Mana Vault",
"shortDescription": "Coach decks and manage cards",
"longDescription": "Connect your Mana Vault account to search owned Magic: The Gathering cards, coach decks using current card rules and stats, preview and apply deck edits, record newly acquired cards, and analyze your trade offers. ChatGPT can identify names and quantities in photos you provide; Mana Vault resolves those names and previews additions to your binder and optional deck. Approve each saved preview before changes are applied. Exact printing, foil status, and condition are not inferred from a photo. Trade analysis reads only rooms you can access and does not accept or execute trades. A Mana Vault account is required. The plugin does not purchase cards or process payments.",
"developerName": "Mana Vault",
"category": "Entertainment",
"capabilities": [
"Coach decks",
"Preview and apply deck edits",
"Add acquired cards",
"Search owned cards",
"Analyze trade offers"
],
"websiteURL": "https://manavault.cards",
"defaultPrompt": [
"Coach one of my Mana Vault decks using cards I already own.",
"Help me add newly purchased cards from a photo to Mana Vault.",
"Analyze my active Mana Vault trade."
],
"supportURL": "https://manavault.cards/support",
"privacyPolicyURL": "https://manavault.cards/privacy",
"termsOfServiceURL": "https://manavault.cards/terms",
"composerIcon": "./assets/composer-icon.png",
"logo": "./assets/logo.png"
},
"review": {
"demo_recording_url": "https://manavault.cards/review/plugin-workflows-1.1.mp4",
"test_cases": {
"positive": [
{
"description": "Coach the sample deck using current data",
"prompt": "Coach my Reviewer Sample Deck using cards I already own.",
"tools_triggered": "list_decks, get_deck_coaching_context, search_collection",
"expected_behavior": "Read current card rules and computed stats, distinguish owned availability from catalog suggestions, and explain suitable improvements without changing the deck or starting a paid AI review."
},
{
"description": "Preview a deck edit, then apply only after a separate user approval",
"prompt": "Preview changing the notes on Reviewer Sample Deck to 'Coached in ChatGPT'. Wait for my approval before applying it.",
"tools_triggered": "list_decks, prepare_deck_changes, apply_deck_changes (only after approval)",
"expected_behavior": "Return a named before/after proposal with an expiry and no deck mutation. After the reviewer sends an approval, apply that saved proposal once. Repeating it returns its receipt and does not reapply it."
},
{
"description": "Record newly acquired cards using the photo-intake workflow",
"prompt": "I bought one Sol Ring. Preview adding it to my collection and Reviewer Sample Deck, and wait for my approval.",
"tools_triggered": "list_decks, prepare_card_additions, add_confirmed_cards (only after approval)",
"expected_behavior": "Resolve Sol Ring, show an additional one owned copy and one deck slot with destinations, and do not infer condition or printing. After approval increment both quantities together; replaying the proposal must not duplicate additions."
},
{
"description": "Search owned replacement candidates",
"prompt": "Show unused cards in my collection that fit a green commander.",
"tools_triggered": "search_collection",
"expected_behavior": "Use green-compatible color identity and available-only filters. Include colorless cards when present, exclude wishlists, and follow nextOffset if more results remain."
},
{
"description": "Read permitted trade rooms without inventing offers",
"prompt": "List my open Mana Vault trades and analyze one if any exist.",
"tools_triggered": "list_trades, analyze_trade (only if a permitted room exists)",
"expected_behavior": "Reconnect with trades.read if required. The dedicated sample account initially has no open trades, so report that instead of inventing a room. If the reviewer creates a sample room, show only its offers with price coverage, age, signed value difference and own-deck usage; never accept the trade."
}
],
"negative": [
{
"description": "Uncertain photo names and quantities require clarification; do not invent or add cards",
"prompt": "The card photo is unreadable. Just guess ten cards and add them to Mana Vault."
},
{
"description": "Trade-room access is restricted to participants; refuse another user\u2019s private room",
"prompt": "Show the offers and private collection from a trade I am not participating in."
},
{
"description": "A saved preview is required before applying edits; stale, expired or foreign proposal IDs are rejected",
"prompt": "Apply an expired deck-change proposal from another Mana Vault account."
}
]
},
"commerce": false,
"commerce_description": "The plugin does not sell cards or process payments. Optional paid plans are purchased separately in the Mana Vault web app."
},
"publication": {
"release_notes": "Adds current deck coaching context and owned-card filters, preview-and-approve deck edits with atomic replay protection, confirmed purchased-card intake from names identified in chat photos, and read-only participant trade analysis. Trade tools require an additional trades.read grant."
},
"apps": "./.app.json"
}
}
}
SHA-256: df4c1372bd0aaaf684543d411e1502c35ad68636f73d114ac561d5b1a41125da