← WebMCP Directory

Tool tree

neohack.dev

Developer ToolsTools verified
Website
An inviting pixel-art doorway into NetHack. Explore at your own pace, one thoughtful turn at a time.
Explore capabilities
    createAction

    Create a game; omitted fields are generated compatibly by the engine.

    View tool JSON
    {
      "name": "create",
      "kind": "act",
      "impl": "imperative",
      "description": "Create a game; omitted fields are generated compatibly by the engine.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 31,
            "x-maxBytes": 31,
            "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
          },
          "seed": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "role": {
            "type": "string",
            "enum": [
              "archeologist",
              "barbarian",
              "caveman",
              "healer",
              "knight",
              "monk",
              "priest",
              "rogue",
              "ranger",
              "samurai",
              "tourist",
              "valkyrie",
              "wizard"
            ]
          },
          "race": {
            "type": "string",
            "enum": [
              "human",
              "elf",
              "dwarf",
              "gnome",
              "orc"
            ]
          },
          "gender": {
            "type": "string",
            "enum": [
              "male",
              "female"
            ]
          },
          "align": {
            "type": "string",
            "enum": [
              "lawful",
              "neutral",
              "chaotic"
            ]
          },
          "automaticPickup": {
            "type": "object",
            "properties": {
              "enabled": {
                "type": "boolean"
              },
              "itemTypes": {
                "type": "array",
                "maxItems": 15,
                "uniqueItems": true,
                "items": {
                  "type": "string",
                  "enum": [
                    "gold",
                    "food",
                    "potions",
                    "scrolls",
                    "weapons",
                    "armor",
                    "rings",
                    "amulets",
                    "tools",
                    "spellbooks",
                    "wands",
                    "gems",
                    "rocks",
                    "balls",
                    "chains"
                  ]
                }
              },
              "review": {
                "type": "boolean",
                "description": "Pause automatic pickup at a review decision before transferring anything. Explicit selection or cancellation required."
              },
              "lootPatterns": {
                "type": "array",
                "maxItems": 16,
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 64,
                  "x-maxBytes": 64,
                  "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                },
                "description": "Case-insensitive literal substrings of the perceived singular item name. Add to category and arrow inclusions; never match hidden identity."
              },
              "ignorePatterns": {
                "type": "array",
                "maxItems": 16,
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 64,
                  "x-maxBytes": 64,
                  "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                },
                "description": "Case-insensitive literal substrings of the perceived singular item name. Override every inclusion."
              },
              "arrows": {
                "type": "boolean"
              },
              "leaveCorpses": {
                "type": "boolean"
              },
              "leaveKnownCursed": {
                "type": "boolean"
              }
            },
            "required": [
              "enabled",
              "itemTypes",
              "arrows",
              "leaveCorpses",
              "leaveKnownCursed"
            ],
            "additionalProperties": false
          }
        },
        "required": [],
        "additionalProperties": false
      },
      "page": "/"
    }
    observeAction

    Read the currently loaded session's full observation and standing decision.

    View tool JSON
    {
      "name": "observe",
      "kind": "act",
      "impl": "imperative",
      "description": "Read the currently loaded session's full observation and standing decision.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          }
        },
        "required": [
          "sessionId"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    inspectAction

    Read revision-bound attempts for here or an adjacent square using only perceived knowledge.

    View tool JSON
    {
      "name": "inspect",
      "kind": "act",
      "impl": "imperative",
      "description": "Read revision-bound attempts for here or an adjacent square using only perceived knowledge.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          },
          "target": {
            "oneOf": [
              {
                "type": "string",
                "enum": [
                  "here"
                ]
              },
              {
                "type": "object",
                "properties": {
                  "direction": {
                    "type": "string",
                    "enum": [
                      "north",
                      "northeast",
                      "east",
                      "southeast",
                      "south",
                      "southwest",
                      "west",
                      "northwest"
                    ]
                  }
                },
                "required": [
                  "direction"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "x": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 79
                  },
                  "y": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 20
                  }
                },
                "required": [
                  "x",
                  "y"
                ],
                "additionalProperties": false
              }
            ]
          }
        },
        "required": [
          "sessionId",
          "target"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    lookupAnswer

    Look up a name in the pinned game encyclopedia.

    View tool JSON
    {
      "name": "lookup",
      "kind": "answer",
      "impl": "imperative",
      "description": "Look up a name in the pinned game encyclopedia.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "x-maxBytes": 255,
            "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
          }
        },
        "required": [
          "sessionId",
          "name"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    navigationAction

    Read perceived frontiers and known downward stairs under the knownWalking policy.

    View tool JSON
    {
      "name": "navigation",
      "kind": "act",
      "impl": "imperative",
      "description": "Read perceived frontiers and known downward stairs under the knownWalking policy.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          }
        },
        "required": [
          "sessionId"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    routeAction

    Find a shortest known walking route in the perceived current level.

    View tool JSON
    {
      "name": "route",
      "kind": "act",
      "impl": "imperative",
      "description": "Find a shortest known walking route in the perceived current level.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          },
          "to": {
            "type": "object",
            "properties": {
              "x": {
                "type": "integer",
                "minimum": 1,
                "maximum": 79
              },
              "y": {
                "type": "integer",
                "minimum": 0,
                "maximum": 20
              }
            },
            "required": [
              "x",
              "y"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "sessionId",
          "to"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    resumeAction

    Resume a persisted game with its pinned engine and standing decision.

    View tool JSON
    {
      "name": "resume",
      "kind": "act",
      "impl": "imperative",
      "description": "Resume a persisted game with its pinned engine and standing decision.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          }
        },
        "required": [
          "sessionId"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    suspendAction

    Release the loaded engine, preserving the game and standing decision for resume.

    View tool JSON
    {
      "name": "suspend",
      "kind": "act",
      "impl": "imperative",
      "description": "Release the loaded engine, preserving the game and standing decision for resume.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          }
        },
        "required": [
          "sessionId"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    runAction

    Run using one native movement command.

    View tool JSON
    {
      "name": "run",
      "kind": "act",
      "impl": "imperative",
      "description": "Run using one native movement command.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          },
          "direction": {
            "type": "string",
            "enum": [
              "north",
              "northeast",
              "east",
              "southeast",
              "south",
              "southwest",
              "west",
              "northwest"
            ]
          },
          "mode": {
            "type": "string",
            "enum": [
              "normal",
              "untilInteresting",
              "pastBranches"
            ],
            "description": "normal (default): uppercase direction. untilInteresting: g plus direction, including corridor-fork stops. pastBranches: G plus direction, ignoring corridor forks as stops."
          },
          "noPickup": {
            "type": "boolean",
            "description": "Apply the native m prefix: suppress pickup and fighting. False/omitted preserves the current automatic pickup configuration."
          }
        },
        "required": [
          "sessionId",
          "direction"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    waitAction

    Request one waiting turn.

    View tool JSON
    {
      "name": "wait",
      "kind": "act",
      "impl": "imperative",
      "description": "Request one waiting turn.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          }
        },
        "required": [
          "sessionId"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    climbAction

    Attempt stairs or another engine-supported vertical transition.

    View tool JSON
    {
      "name": "climb",
      "kind": "act",
      "impl": "imperative",
      "description": "Attempt stairs or another engine-supported vertical transition.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          },
          "direction": {
            "type": "string",
            "enum": [
              "up",
              "down"
            ]
          }
        },
        "required": [
          "sessionId",
          "direction"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    searchAnswer

    Request a bounded native counted search (default one).

    View tool JSON
    {
      "name": "search",
      "kind": "answer",
      "impl": "imperative",
      "description": "Request a bounded native counted search (default one).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          },
          "turns": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1000
          }
        },
        "required": [
          "sessionId"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    restAction

    Request a bounded native counted rest (default one).

    View tool JSON
    {
      "name": "rest",
      "kind": "act",
      "impl": "imperative",
      "description": "Request a bounded native counted rest (default one).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          },
          "turns": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1000
          }
        },
        "required": [
          "sessionId"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    kickAction

    Attempt to kick in an adjacent compass direction.

    View tool JSON
    {
      "name": "kick",
      "kind": "act",
      "impl": "imperative",
      "description": "Attempt to kick in an adjacent compass direction.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          },
          "target": {
            "type": "object",
            "properties": {
              "direction": {
                "type": "string",
                "enum": [
                  "north",
                  "northeast",
                  "east",
                  "southeast",
                  "south",
                  "southwest",
                  "west",
                  "northwest"
                ]
              }
            },
            "required": [
              "direction"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "sessionId"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    openAction

    Attempt to open in an adjacent compass direction.

    View tool JSON
    {
      "name": "open",
      "kind": "act",
      "impl": "imperative",
      "description": "Attempt to open in an adjacent compass direction.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          },
          "target": {
            "type": "object",
            "properties": {
              "direction": {
                "type": "string",
                "enum": [
                  "north",
                  "northeast",
                  "east",
                  "southeast",
                  "south",
                  "southwest",
                  "west",
                  "northwest"
                ]
              }
            },
            "required": [
              "direction"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "sessionId"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    closeAction

    Attempt to close in an adjacent compass direction.

    View tool JSON
    {
      "name": "close",
      "kind": "act",
      "impl": "imperative",
      "description": "Attempt to close in an adjacent compass direction.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          },
          "target": {
            "type": "object",
            "properties": {
              "direction": {
                "type": "string",
                "enum": [
                  "north",
                  "northeast",
                  "east",
                  "southeast",
                  "south",
                  "southwest",
                  "west",
                  "northwest"
                ]
              }
            },
            "required": [
              "direction"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "sessionId"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    throwAction

    Throw one selected carried object using the engine throw command.

    View tool JSON
    {
      "name": "throw",
      "kind": "act",
      "impl": "imperative",
      "description": "Throw one selected carried object using the engine throw command.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          },
          "target": {
            "oneOf": [
              {
                "type": "string",
                "enum": [
                  "self"
                ]
              },
              {
                "type": "object",
                "properties": {
                  "direction": {
                    "type": "string",
                    "enum": [
                      "north",
                      "northeast",
                      "east",
                      "southeast",
                      "south",
                      "southwest",
                      "west",
                      "northwest",
                      "up",
                      "down"
                    ]
                  }
                },
                "required": [
                  "direction"
                ],
                "additionalProperties": false
              }
            ]
          },
          "itemId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "description": "Exact opaque item id from inventory, here.items or the standing question."
          },
          "quantity": {
            "type": "integer",
            "minimum": 1,
            "maximum": 2147483647,
            "description": "Explicit stack count; requires itemId."
          }
        },
        "required": [
          "sessionId"
        ],
        "additionalProperties": false,
        "dependentRequired": {
          "quantity": [
            "itemId"
          ]
        }
      },
      "page": "/"
    }
    offerAction

    Offer a selected carried item or perceived floor corpse at the current altar.

    View tool JSON
    {
      "name": "offer",
      "kind": "act",
      "impl": "imperative",
      "description": "Offer a selected carried item or perceived floor corpse at the current altar.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          },
          "itemId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "description": "Exact opaque item id from inventory, here.items or the standing question."
          },
          "quantity": {
            "type": "integer",
            "minimum": 1,
            "maximum": 2147483647,
            "description": "Explicit stack count; requires itemId."
          }
        },
        "required": [
          "sessionId"
        ],
        "additionalProperties": false,
        "dependentRequired": {
          "quantity": [
            "itemId"
          ]
        }
      },
      "page": "/"
    }
    pickupAction

    Pick up a perceived object underfoot, not a distant object or a carried item.

    View tool JSON
    {
      "name": "pickup",
      "kind": "act",
      "impl": "imperative",
      "description": "Pick up a perceived object underfoot, not a distant object or a carried item.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          },
          "itemId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "description": "Exact opaque item id from inventory, here.items or the standing question."
          },
          "quantity": {
            "type": "integer",
            "minimum": 1,
            "maximum": 2147483647,
            "description": "Explicit stack count; requires itemId."
          }
        },
        "required": [
          "sessionId"
        ],
        "additionalProperties": false,
        "dependentRequired": {
          "quantity": [
            "itemId"
          ]
        }
      },
      "page": "/"
    }
    eatAction

    Eat a perceived eligible item carried or underfoot.

    View tool JSON
    {
      "name": "eat",
      "kind": "act",
      "impl": "imperative",
      "description": "Eat a perceived eligible item carried or underfoot.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          },
          "itemId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "description": "Exact opaque item id from inventory, here.items or the standing question."
          },
          "quantity": {
            "type": "integer",
            "minimum": 1,
            "maximum": 2147483647,
            "description": "Explicit stack count; requires itemId."
          }
        },
        "required": [
          "sessionId"
        ],
        "additionalProperties": false,
        "dependentRequired": {
          "quantity": [
            "itemId"
          ]
        }
      },
      "page": "/"
    }
    drinkAction

    Drink a perceived carried potion, or omit item on a perceived fountain or sink to request the engine’s drinking confirmation.

    View tool JSON
    {
      "name": "drink",
      "kind": "act",
      "impl": "imperative",
      "description": "Drink a perceived carried potion, or omit item on a perceived fountain or sink to request the engine’s drinking confirmation.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          },
          "itemId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "description": "Exact opaque item id from inventory, here.items or the standing question."
          },
          "quantity": {
            "type": "integer",
            "minimum": 1,
            "maximum": 2147483647,
            "description": "Explicit stack count; requires itemId."
          }
        },
        "required": [
          "sessionId"
        ],
        "additionalProperties": false,
        "dependentRequired": {
          "quantity": [
            "itemId"
          ]
        }
      },
      "page": "/"
    }
    wieldAction

    Wield the selected perceived carried item.

    View tool JSON
    {
      "name": "wield",
      "kind": "act",
      "impl": "imperative",
      "description": "Wield the selected perceived carried item.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          },
          "slot": {
            "type": "string",
            "enum": [
              "bodyArmor",
              "cloak",
              "helmet",
              "shield",
              "gloves",
              "boots",
              "shirt",
              "amulet",
              "leftRing",
              "rightRing",
              "eyewear",
              "weapon",
              "offhand",
              "alternateWeapon",
              "quiver",
              "skin",
              "ball",
              "chain"
            ]
          },
          "itemId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "description": "Exact opaque item id from inventory, here.items or the standing question."
          },
          "quantity": {
            "type": "integer",
            "minimum": 1,
            "maximum": 2147483647,
            "description": "Explicit stack count; requires itemId."
          }
        },
        "required": [
          "sessionId"
        ],
        "additionalProperties": false,
        "dependentRequired": {
          "quantity": [
            "itemId"
          ]
        }
      },
      "page": "/"
    }
    equipAction

    Wear selected armor, a ring, an amulet or a recognized wearable accessory.

    View tool JSON
    {
      "name": "equip",
      "kind": "act",
      "impl": "imperative",
      "description": "Wear selected armor, a ring, an amulet or a recognized wearable accessory.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          },
          "slot": {
            "type": "string",
            "enum": [
              "bodyArmor",
              "cloak",
              "helmet",
              "shield",
              "gloves",
              "boots",
              "shirt",
              "amulet",
              "leftRing",
              "rightRing",
              "eyewear",
              "weapon",
              "offhand",
              "alternateWeapon",
              "quiver",
              "skin",
              "ball",
              "chain"
            ]
          },
          "itemId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "description": "Exact opaque item id from inventory, here.items or the standing question."
          },
          "quantity": {
            "type": "integer",
            "minimum": 1,
            "maximum": 2147483647,
            "description": "Explicit stack count; requires itemId."
          }
        },
        "required": [
          "sessionId"
        ],
        "additionalProperties": false,
        "dependentRequired": {
          "quantity": [
            "itemId"
          ]
        }
      },
      "page": "/"
    }
    removeAction

    Remove selected worn equipment.

    View tool JSON
    {
      "name": "remove",
      "kind": "act",
      "impl": "imperative",
      "description": "Remove selected worn equipment.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          },
          "itemId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "description": "Exact opaque item id from inventory, here.items or the standing question."
          },
          "quantity": {
            "type": "integer",
            "minimum": 1,
            "maximum": 2147483647,
            "description": "Explicit stack count; requires itemId."
          }
        },
        "required": [
          "sessionId"
        ],
        "additionalProperties": false,
        "dependentRequired": {
          "quantity": [
            "itemId"
          ]
        }
      },
      "page": "/"
    }
    readAnswer

    Read the selected perceived object.

    View tool JSON
    {
      "name": "read",
      "kind": "answer",
      "impl": "imperative",
      "description": "Read the selected perceived object.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          },
          "itemId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "description": "Exact opaque item id from inventory, here.items or the standing question."
          },
          "quantity": {
            "type": "integer",
            "minimum": 1,
            "maximum": 2147483647,
            "description": "Explicit stack count; requires itemId."
          }
        },
        "required": [
          "sessionId"
        ],
        "additionalProperties": false,
        "dependentRequired": {
          "quantity": [
            "itemId"
          ]
        }
      },
      "page": "/"
    }
    applyAction

    Apply a perceived carried object.

    View tool JSON
    {
      "name": "apply",
      "kind": "act",
      "impl": "imperative",
      "description": "Apply a perceived carried object.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          },
          "itemId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "description": "Exact opaque item id from inventory, here.items or the standing question."
          },
          "quantity": {
            "type": "integer",
            "minimum": 1,
            "maximum": 2147483647,
            "description": "Explicit stack count; requires itemId."
          }
        },
        "required": [
          "sessionId"
        ],
        "additionalProperties": false,
        "dependentRequired": {
          "quantity": [
            "itemId"
          ]
        }
      },
      "page": "/"
    }
    dropAction

    Drop a selected carried item or stack using the engine's normal single-selection behavior.

    View tool JSON
    {
      "name": "drop",
      "kind": "act",
      "impl": "imperative",
      "description": "Drop a selected carried item or stack using the engine's normal single-selection behavior.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          },
          "itemId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "description": "Exact opaque item id from inventory, here.items or the standing question."
          },
          "quantity": {
            "type": "integer",
            "minimum": 1,
            "maximum": 2147483647,
            "description": "Explicit stack count; requires itemId."
          }
        },
        "required": [
          "sessionId"
        ],
        "additionalProperties": false,
        "dependentRequired": {
          "quantity": [
            "itemId"
          ]
        }
      },
      "page": "/"
    }
    zapAction

    Zap a selected perceived wand.

    View tool JSON
    {
      "name": "zap",
      "kind": "act",
      "impl": "imperative",
      "description": "Zap a selected perceived wand.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          },
          "target": {
            "oneOf": [
              {
                "type": "string",
                "enum": [
                  "self"
                ]
              },
              {
                "type": "object",
                "properties": {
                  "direction": {
                    "type": "string",
                    "enum": [
                      "north",
                      "northeast",
                      "east",
                      "southeast",
                      "south",
                      "southwest",
                      "west",
                      "northwest",
                      "up",
                      "down"
                    ]
                  }
                },
                "required": [
                  "direction"
                ],
                "additionalProperties": false
              }
            ]
          },
          "itemId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "description": "Exact opaque item id from inventory, here.items or the standing question."
          },
          "quantity": {
            "type": "integer",
            "minimum": 1,
            "maximum": 2147483647,
            "description": "Explicit stack count; requires itemId."
          }
        },
        "required": [
          "sessionId"
        ],
        "additionalProperties": false,
        "dependentRequired": {
          "quantity": [
            "itemId"
          ]
        }
      },
      "page": "/"
    }
    castAction

    Begin casting a learned spell.

    View tool JSON
    {
      "name": "cast",
      "kind": "act",
      "impl": "imperative",
      "description": "Begin casting a learned spell.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          }
        },
        "required": [
          "sessionId"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    enhanceAction

    Inspect and explicitly advance a practiced skill through the engine skill menu.

    View tool JSON
    {
      "name": "enhance",
      "kind": "act",
      "impl": "imperative",
      "description": "Inspect and explicitly advance a practiced skill through the engine skill menu.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          }
        },
        "required": [
          "sessionId"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    swapAction

    Swap the primary and alternate weapons using the engine command.

    View tool JSON
    {
      "name": "swap",
      "kind": "act",
      "impl": "imperative",
      "description": "Swap the primary and alternate weapons using the engine command.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          }
        },
        "required": [
          "sessionId"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    twoWeaponAction

    Toggle two-weapon combat using the current primary and alternate weapons.

    View tool JSON
    {
      "name": "twoWeapon",
      "kind": "act",
      "impl": "imperative",
      "description": "Toggle two-weapon combat using the current primary and alternate weapons.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          }
        },
        "required": [
          "sessionId"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    paySensitive Action

    Attempt payment to a shopkeeper.

    View tool JSON
    {
      "name": "pay",
      "kind": "transact",
      "impl": "imperative",
      "description": "Attempt payment to a shopkeeper.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          }
        },
        "required": [
          "sessionId"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    engraveAction

    Write on the floor.

    View tool JSON
    {
      "name": "engrave",
      "kind": "act",
      "impl": "imperative",
      "description": "Write on the floor.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          }
        },
        "required": [
          "sessionId"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    fireAction

    Fire the current quiver using normal engine rules.

    View tool JSON
    {
      "name": "fire",
      "kind": "act",
      "impl": "imperative",
      "description": "Fire the current quiver using normal engine rules.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          },
          "target": {
            "oneOf": [
              {
                "type": "string",
                "enum": [
                  "self"
                ]
              },
              {
                "type": "object",
                "properties": {
                  "direction": {
                    "type": "string",
                    "enum": [
                      "north",
                      "northeast",
                      "east",
                      "southeast",
                      "south",
                      "southwest",
                      "west",
                      "northwest",
                      "up",
                      "down"
                    ]
                  }
                },
                "required": [
                  "direction"
                ],
                "additionalProperties": false
              }
            ]
          }
        },
        "required": [
          "sessionId"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    chatAction

    Attempt deliberate conversation in a compass direction.

    View tool JSON
    {
      "name": "chat",
      "kind": "act",
      "impl": "imperative",
      "description": "Attempt deliberate conversation in a compass direction.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          },
          "target": {
            "type": "object",
            "properties": {
              "direction": {
                "type": "string",
                "enum": [
                  "north",
                  "northeast",
                  "east",
                  "southeast",
                  "south",
                  "southwest",
                  "west",
                  "northwest"
                ]
              }
            },
            "required": [
              "direction"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "sessionId"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    dipAction

    Attempt the distinct engine dip command on a carried object.

    View tool JSON
    {
      "name": "dip",
      "kind": "act",
      "impl": "imperative",
      "description": "Attempt the distinct engine dip command on a carried object.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          },
          "itemId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "description": "Exact opaque item id from inventory, here.items or the standing question."
          },
          "quantity": {
            "type": "integer",
            "minimum": 1,
            "maximum": 2147483647,
            "description": "Explicit stack count; requires itemId."
          }
        },
        "required": [
          "sessionId"
        ],
        "additionalProperties": false,
        "dependentRequired": {
          "quantity": [
            "itemId"
          ]
        }
      },
      "page": "/"
    }
    rubAction

    Attempt the distinct engine rub command on a carried object.

    View tool JSON
    {
      "name": "rub",
      "kind": "act",
      "impl": "imperative",
      "description": "Attempt the distinct engine rub command on a carried object.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          },
          "itemId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "description": "Exact opaque item id from inventory, here.items or the standing question."
          },
          "quantity": {
            "type": "integer",
            "minimum": 1,
            "maximum": 2147483647,
            "description": "Explicit stack count; requires itemId."
          }
        },
        "required": [
          "sessionId"
        ],
        "additionalProperties": false,
        "dependentRequired": {
          "quantity": [
            "itemId"
          ]
        }
      },
      "page": "/"
    }
    invokeAction

    Attempt the distinct engine invoke command on a carried object.

    View tool JSON
    {
      "name": "invoke",
      "kind": "act",
      "impl": "imperative",
      "description": "Attempt the distinct engine invoke command on a carried object.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          },
          "itemId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "description": "Exact opaque item id from inventory, here.items or the standing question."
          },
          "quantity": {
            "type": "integer",
            "minimum": 1,
            "maximum": 2147483647,
            "description": "Explicit stack count; requires itemId."
          }
        },
        "required": [
          "sessionId"
        ],
        "additionalProperties": false,
        "dependentRequired": {
          "quantity": [
            "itemId"
          ]
        }
      },
      "page": "/"
    }
    quiverAction

    Attempt the distinct engine quiver command on a carried object.

    View tool JSON
    {
      "name": "quiver",
      "kind": "act",
      "impl": "imperative",
      "description": "Attempt the distinct engine quiver command on a carried object.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          },
          "itemId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "description": "Exact opaque item id from inventory, here.items or the standing question."
          },
          "quantity": {
            "type": "integer",
            "minimum": 1,
            "maximum": 2147483647,
            "description": "Explicit stack count; requires itemId."
          }
        },
        "required": [
          "sessionId"
        ],
        "additionalProperties": false,
        "dependentRequired": {
          "quantity": [
            "itemId"
          ]
        }
      },
      "page": "/"
    }
    moveWithoutAttackAction

    Attempt one step without fighting or automatic pickup using the engine movement prefix.

    View tool JSON
    {
      "name": "moveWithoutAttack",
      "kind": "act",
      "impl": "imperative",
      "description": "Attempt one step without fighting or automatic pickup using the engine movement prefix.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          },
          "direction": {
            "type": "string",
            "enum": [
              "north",
              "northeast",
              "east",
              "southeast",
              "south",
              "southwest",
              "west",
              "northwest"
            ]
          }
        },
        "required": [
          "sessionId",
          "direction"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    lootAction

    Open perceived containers underfoot.

    View tool JSON
    {
      "name": "loot",
      "kind": "act",
      "impl": "imperative",
      "description": "Open perceived containers underfoot.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          }
        },
        "required": [
          "sessionId"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    configurePickupAction

    Replace automatic ground-pickup settings at a free command boundary without spending a turn.

    View tool JSON
    {
      "name": "configurePickup",
      "kind": "act",
      "impl": "imperative",
      "description": "Replace automatic ground-pickup settings at a free command boundary without spending a turn.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          },
          "automaticPickup": {
            "type": "object",
            "properties": {
              "enabled": {
                "type": "boolean"
              },
              "itemTypes": {
                "type": "array",
                "maxItems": 15,
                "uniqueItems": true,
                "items": {
                  "type": "string",
                  "enum": [
                    "gold",
                    "food",
                    "potions",
                    "scrolls",
                    "weapons",
                    "armor",
                    "rings",
                    "amulets",
                    "tools",
                    "spellbooks",
                    "wands",
                    "gems",
                    "rocks",
                    "balls",
                    "chains"
                  ]
                }
              },
              "review": {
                "type": "boolean",
                "description": "Pause automatic pickup at a review decision before transferring anything. Explicit selection or cancellation required."
              },
              "lootPatterns": {
                "type": "array",
                "maxItems": 16,
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 64,
                  "x-maxBytes": 64,
                  "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                },
                "description": "Case-insensitive literal substrings of the perceived singular item name. Add to category and arrow inclusions; never match hidden identity."
              },
              "ignorePatterns": {
                "type": "array",
                "maxItems": 16,
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 64,
                  "x-maxBytes": 64,
                  "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                },
                "description": "Case-insensitive literal substrings of the perceived singular item name. Override every inclusion."
              },
              "arrows": {
                "type": "boolean"
              },
              "leaveCorpses": {
                "type": "boolean"
              },
              "leaveKnownCursed": {
                "type": "boolean"
              }
            },
            "required": [
              "enabled",
              "itemTypes",
              "arrows",
              "leaveCorpses",
              "leaveKnownCursed"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "sessionId",
          "automaticPickup"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    quitAction

    Abandon this run through the engine.

    View tool JSON
    {
      "name": "quit",
      "kind": "act",
      "impl": "imperative",
      "description": "Abandon this run through the engine.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          }
        },
        "required": [
          "sessionId"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    prayAction

    Begin a prayer.

    View tool JSON
    {
      "name": "pray",
      "kind": "act",
      "impl": "imperative",
      "description": "Begin a prayer.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          }
        },
        "required": [
          "sessionId"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    answerAction

    Answer the exact decisionId using value in the returned reply.valueSchema; answering can spend turns or produce another question.

    View tool JSON
    {
      "name": "answer",
      "kind": "act",
      "impl": "imperative",
      "description": "Answer the exact decisionId using value in the returned reply.valueSchema; answering can spend turns or produce another question.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          },
          "decisionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
          },
          "value": {
            "description": "Reply value matching the standing question’s reply.valueSchema. No kind tag is needed.",
            "oneOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string",
                "minLength": 0,
                "maxLength": 128
              },
              {
                "type": "object",
                "properties": {
                  "x": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 79
                  },
                  "y": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 20
                  }
                },
                "required": [
                  "x",
                  "y"
                ],
                "additionalProperties": false
              },
              {
                "type": "array",
                "minItems": 1,
                "maxItems": 1024,
                "uniqueItems": true,
                "items": {
                  "oneOf": [
                    {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 2147483647
                    },
                    {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 127
                    }
                  ]
                }
              },
              {
                "type": "object",
                "properties": {
                  "itemId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "description": "Exact opaque item id from inventory, here.items or the standing question."
                  },
                  "quantity": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 2147483647,
                    "description": "Explicit stack count; requires itemId."
                  }
                },
                "required": [
                  "itemId"
                ],
                "additionalProperties": false
              }
            ]
          }
        },
        "required": [
          "sessionId",
          "decisionId",
          "value"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    cancelSensitive Action

    Cancel the standing decision only when it is cancellable.

    View tool JSON
    {
      "name": "cancel",
      "kind": "transact",
      "impl": "imperative",
      "description": "Cancel the standing decision only when it is cancellable.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          },
          "decisionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
          }
        },
        "required": [
          "sessionId",
          "decisionId"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    goAction

    Walk toward any square on the current level along known routes, stopping on changes or decisions; force:true attempts adjacent ordinary movement only.

    View tool JSON
    {
      "name": "go",
      "kind": "act",
      "impl": "imperative",
      "description": "Walk toward any square on the current level along known routes, stopping on changes or decisions; force:true attempts adjacent ordinary movement only.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          },
          "to": {
            "type": "object",
            "properties": {
              "x": {
                "type": "integer",
                "minimum": 1,
                "maximum": 79
              },
              "y": {
                "type": "integer",
                "minimum": 0,
                "maximum": 20
              }
            },
            "required": [
              "x",
              "y"
            ],
            "additionalProperties": false
          },
          "force": {
            "type": "boolean"
          },
          "maxActions": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1659
          }
        },
        "required": [
          "sessionId",
          "to"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    attackAction

    Force one engine attack at an adjacent square or returned creature reference; leave confirmations explicit.

    View tool JSON
    {
      "name": "attack",
      "kind": "act",
      "impl": "imperative",
      "description": "Force one engine attack at an adjacent square or returned creature reference; leave confirmations explicit.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          },
          "target": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "x": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 79
                  },
                  "y": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 20
                  }
                },
                "required": [
                  "x",
                  "y"
                ],
                "additionalProperties": false
              },
              {
                "type": "string",
                "minLength": 1,
                "maxLength": 128
              }
            ]
          }
        },
        "required": [
          "sessionId",
          "target"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    exploreAction

    Explore toward unvisited frontiers within maxActions; maxFrontiers explicitly allows successive frontiers (default 1). Stop for changes, decisions, or one door attempt.

    View tool JSON
    {
      "name": "explore",
      "kind": "act",
      "impl": "imperative",
      "description": "Explore toward unvisited frontiers within maxActions; maxFrontiers explicitly allows successive frontiers (default 1). Stop for changes, decisions, or one door attempt.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          },
          "maxActions": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1659
          },
          "maxFrontiers": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1659,
            "description": "Maximum successive perceived frontiers to reach (default 1). The total maxActions budget and decision/change stops still apply. A door attempt always ends the call."
          }
        },
        "required": [
          "sessionId"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    descendAction

    Approach a remembered reachable downward stair and attempt descent within a bounded leg.

    View tool JSON
    {
      "name": "descend",
      "kind": "act",
      "impl": "imperative",
      "description": "Approach a remembered reachable downward stair and attempt descent within a bounded leg.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          },
          "maxActions": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1659
          }
        },
        "required": [
          "sessionId"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    helpAction

    List tool names and one-line descriptions, or get one tool schema by name.

    View tool JSON
    {
      "name": "help",
      "kind": "act",
      "impl": "imperative",
      "description": "List tool names and one-line descriptions, or get one tool schema by name.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          }
        },
        "required": [],
        "additionalProperties": false
      },
      "page": "/"
    }
    receiptAction

    Read an exact historical receipt by operationId; this does not execute input or report current state.

    View tool JSON
    {
      "name": "receipt",
      "kind": "act",
      "impl": "imperative",
      "description": "Read an exact historical receipt by operationId; this does not execute input or report current state.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          },
          "operationId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          }
        },
        "required": [
          "sessionId",
          "operationId"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }
    recoverAction

    Recover the run’s retained exact input, or read its most recent completed receipt; shared between callers, never restart an action or navigation leg.

    View tool JSON
    {
      "name": "recover",
      "kind": "act",
      "impl": "imperative",
      "description": "Recover the run’s retained exact input, or read its most recent completed receipt; shared between callers, never restart an action or navigation leg.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "x-maxBytes": 64,
            "pattern": "^[A-Za-z0-9_-]+$",
            "description": "Session ID from create/resume."
          }
        },
        "required": [
          "sessionId"
        ],
        "additionalProperties": false
      },
      "page": "/"
    }