Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ICE_PUZZLE_PROJECT_ID | No | The project ID for the Firebase instance. Defaults to 'ice-puzzle-game'. | ice-puzzle-game |
| ICE_PUZZLE_FIREBASE_APP_ID | No | Explicit Firebase App ID override. | |
| ICE_PUZZLE_FIREBASE_API_KEY | No | Explicit Firebase API key override. | |
| ICE_PUZZLE_FIREBASE_AUTH_DOMAIN | No | Explicit Firebase Auth domain override. | |
| ICE_PUZZLE_FIREBASE_STORAGE_BUCKET | No | Explicit Firebase Storage bucket override. | |
| ICE_PUZZLE_FIREBASE_MESSAGING_SENDER_ID | No | Explicit Firebase Messaging sender ID override. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
| prompts | {} |
| resources | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create_level | Create a new empty ice puzzle level |
| get_level | Get the current working draft level with details and visualization |
| list_drafts | List all locally saved draft snapshots |
| save_local_draft | Save a snapshot of the current draft in local MCP memory |
| load_local_draft | Load a locally saved draft snapshot by ID |
| delete_draft | Delete a locally saved draft snapshot |
| import_level | Import a level from PuzzleData JSON |
| export_level | Export the current working draft as PuzzleData JSON |
| rename_level | Rename the current working draft without recreating it |
| undo | Undo the last edit operation |
| redo | Redo the most recently undone operation |
| revert_to_last_solvable | Restore the latest known solvable state |
| place_tile | Place a tile (rock, lava, hot_coals, or spike) at position. Auto-solves. |
| remove_tile | Remove any tile at position. Auto-solves. |
| move_tile | Move one tile/special element from one coordinate to another. Auto-solves. |
| place_tiles_batch | Place multiple tiles at once. Auto-solves. |
| fill_region | Fill a rectangular region with a tile type. Auto-solves. |
| clear_region | Clear all tiles in a rectangular region. Auto-solves. |
| set_grid_size | Resize the level grid. Elements outside new bounds are removed. |
| set_start | Set the player start position |
| set_goal | Set the goal position (can be on edge/wall) |
| set_par | Set explicit par (target shortest optimal move count) for the current draft |
| set_par_to_shortest | Solve and set par to the current solver shortest path length |
| clear_level | Clear all elements from the level, keeping grid size |
| add_warp_pair | Add a warp portal pair connecting two positions |
| remove_warp | Remove a warp pair by ID |
| add_thin_ice | Add thin ice tiles (break after crossing) |
| remove_thin_ice | Remove thin ice tiles |
| add_pushable_rock | Add pushable rocks |
| remove_pushable_rock | Remove pushable rocks |
| set_pressure_plate | Set pressure plate position (deactivates barrier) |
| remove_pressure_plate | Remove the pressure plate |
| set_barrier | Set barrier position (kills if pressure plate not activated) |
| remove_barrier | Remove the barrier |
| solve_level | Run BFS solver on current level with direction balance and unsolvable diagnostics |
| test_placement | Dry-run placing one tile and solve without modifying the draft |
| reachable_from | Analyze all reachable landing positions from a starting coordinate |
| suggest_stop_points | Suggest blocker placements to stop a slide at intermediate points |
| seed_layout_pattern | Apply a starter rock skeleton pattern to bootstrap solvable layout design |
| suggest_skeleton_layout | Suggest starter rock skeleton plans without modifying the current draft |
| simulate_move | Simulate a single slide move from a position |
| simulate_playthrough | Simulate a full sequence of moves |
| analyze_difficulty | Analyze current level difficulty and characteristics |
| validate_quality_gate | Run canonical parity/quality checks (par-shortest, timeout rule, warp parity, hot coals shortcut diagnostics) |
| check_publish_readiness | Check publish blockers: auth status + strict quality gate |
| visualize_level | Show ASCII art visualization of current level |
| get_game_rules | Get comprehensive ice puzzle game rules and design guide |
| get_tile_types | Get all tile types with behavior descriptions |
| get_level_requirements | Get requirements for publishable levels |
| interaction_faq | Get quick-reference interaction outcomes for adjacent mechanic combinations |
| list_campaign_examples | List campaign level examples by difficulty tier (easy/medium/hard) with solver solutions |
| get_campaign_example | Get one campaign level example (by level number or ID) with solution and optional PuzzleData |
| save_draft | Save the current draft to Firebase (requires authentication) |
| load_draft | Load a draft from Firebase by ID |
| delete_remote_draft | Delete a remote draft from Firebase by ID |
| list_remote_drafts | List all remote drafts from Firebase |
| list_my_published_levels | List your marketplace levels with status filter, sorting, and pagination |
| get_my_published_level | Get one of your published marketplace levels by ID |
| unpublish_level | Unpublish (soft-delete) one of your marketplace levels by ID |
| restore_published_level | Restore an unpublished marketplace level back to ACTIVE status |
| publish_level | Publish the current draft as a marketplace level |
| preview_level | Create or update a shareable preview link without publishing to marketplace |
| auth_status | Check Firebase authentication status |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| build-level | Build a solvable ice puzzle level |
| improve-level | Analyze and improve the current level |
| challenge-level | Build a challenging level using all mechanics |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Game Rules | Comprehensive ice puzzle game rules and design guide |
| Tile Types | All tile types with behavior descriptions |
| Current Level | Current working draft level data and visualization |
| Campaign Examples | All campaign level examples with difficulty tiers and shortest solutions |
| Campaign Examples (Easy) | Easy campaign level examples with shortest solutions |
| Campaign Examples (Medium) | Medium campaign level examples with shortest solutions |
| Campaign Examples (Hard) | Hard campaign level examples with shortest solutions |