R2-D2
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SWU_MCP_CACHE_DIR | No | Per-card response cache directory | .swu-mcp-cache |
| SWU_MCP_API_BASE_URL | No | Live card data API URL | https://api.swu-db.com |
| SWU_MCP_DEFAULT_LIMIT | No | Default search result limit | 10 |
| SWU_MCP_CARD_CATALOG_PATH | No | Local JSON fallback path | Auto-discovered from data/catalog/ |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| swu_search_cardsA | Search Star Wars Unlimited cards using natural text and optional structured filters. Pass |
| swu_lookup_cardA | Look up a specific Star Wars Unlimited card by name or set_code+card_number. Returns the full CardDetail record. |
| swu_random_cardB | Return a random Star Wars Unlimited card from a search result set. |
| swu_get_imageA | Return the front or back image URL for a Star Wars Unlimited card. |
| swu_upload_deckC | Upload a Star Wars Unlimited decklist into a named stateful session. |
| swu_draw_cardB | Draw one or more cards from an uploaded deck session. |
| swu_view_handA | View the current hand, resources, and core counters for a deck session. |
| swu_view_boardB | View the current in-play board state, including ground, space, leaders, bases, and resources. |
| swu_mulliganA | Take a full-hand mulligan in the current deck session. |
| swu_sideboardB | Swap cards between the main deck and sideboard, then reset playtest zones. |
| swu_resource_phaseA | Advance the resource phase by readying resources, optionally resourcing a hand card, and drawing for turn. |
| swu_play_cardB | Play or deploy a card from hand, discard, or leader zone into ground, space, or resources. |
| swu_move_cardA | Move an existing in-play card or leader/resource between zones such as ground, space, resource, and discard. |
| swu_set_card_stateC | Update a card's ready state and counters while it is in play. |
| swu_defeat_cardA | Defeat a card from the board or another in-play zone and move it to discard. |
| swu_validate_deckB | Validate a Star Wars Unlimited deck for Premier or Twin Suns. |
| swu_analyze_deckB | Analyze a Star Wars Unlimited deck's curve, aspects, roles, and synergy. |
| swu_suggest_cardsA | Suggest cards to improve a Star Wars Unlimited deck toward a stated goal. Set only_owned=True to restrict suggestions to cards in your loaded collection. |
| swu_generate_deckA | Generate a first-pass Star Wars Unlimited brew around a theme. Set only_owned=True to build only with cards in your loaded collection (quantities will be capped by ownership). By default the deck is restricted to on-aspect cards (the aspects granted by the two leaders plus the base); set allow_off_aspect=True to permit off-aspect splashes that cost extra resources. Set target_avg_cost to steer the curve (e.g. 2.5 for an aggressive low-curve deck, 3.5 for midrange); lower = cheaper and faster. When omitted, the format default is used. |
| swu_rank_leader_pairsA | Twin Suns only — brew a deck for every legal leader pairing in your owned pool and rank them by composite score (synergy + interaction density - off-aspect burden). Use moral='Heroism' or 'Villainy' to narrow. primary_aspects filters leaders whose aspects intersect the given list. include_decks=true returns full holoscan lists for the top_k results. Useful for surfacing leader pairs you wouldn't have considered manually. |
| swu_load_collectionA | Import a Star Wars Unlimited card collection from a SWUDB CSV export (columns: Set, CardNumber, Count, IsFoil). Persists to disk. Set merge=True to add to existing collection instead of replacing it. |
| swu_collection_summaryA | Summarize the loaded Star Wars Unlimited collection — total cards, unique printings, per-set breakdown, and storage path. |
| swu_collection_combo_profileA | Profile the loaded collection for combo-package density. Returns per-package enabler/payoff counts (Force engine, Indirect damage, When Defeated, Pilot/Vehicle, Token swarm, Cost reduction, Fortress, Bounty Hunter, Mandalorian) and flags which are 'live' (≥4 enablers + ≥2 payoffs). Pass refresh=true to recompute from scratch. |
| swu_owned_countA | Return how many copies of a specific Star Wars Unlimited printing the user owns. Use set_code and card_number (e.g. LOF 47). |
| swu_list_collectionA | List owned printings from the loaded collection, optionally filtered by set_code. Pass limit=0 for no limit. |
| swu_export_deckB | Export a deck session or decklist as plain text or JSON. |
| swu_start_gameC | Start a two-player Star Wars Unlimited game between you and Claude. |
| swu_simulate_gameA | Run a full AI-vs-AI game simulation to completion. Both players must be AI (set player_is_ai=true in start_game). Returns winner, base damage breakdown, MVP cards, and full game log. |
| swu_get_game_stateA | Get the current two-player game state, with hidden information filtered by viewer unless reveal_all is true. |
| swu_get_legal_actionsC | Return the currently legal actions for the active player in a game. |
| swu_take_game_actionC | Take a game action such as resource, play, resolve_effect, pass_priority, deploy_leader, attack, or end_turn. |
| swu_take_ai_turnC | Let the AI pilot its side for one turn or until it ends the turn. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 32 tools
Tools are largely distinct, each targeting a specific resource or action (search, lookup, collection, deck, game). Minor overlap exists between view_hand/view_board and get_game_state, and play_card vs take_game_action, but descriptions clarify the contexts.
All tools share the swu_ prefix and use snake_case, with most following a verb_noun pattern. A few exceptions like owned_count and collection_summary deviate from verb-first but remain readable and predictable.
32 tools is above the 25+ threshold that indicates a bloated surface. While the scope covers card data, collection, deckbuilding, and gameplay, the count feels heavy and could be consolidated (e.g., combining game actions into a single action dispatcher).
The tool set covers card search, collection management, deck analysis/generation, playtesting, and full game simulation thoroughly. Minor gaps exist (no direct single-card ownership update, no persistent deck save beyond export), but agents can work around them.