crabsmadethis/d2r-horadric-tools
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| D2R_GAME_DIR | No |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| d2r_lookup_uniqueA | Look up a D2R unique item by name or numeric UID. Searches unique_items.py data. Returns item info + stats. Supports substring matching (e.g. "harlequin" finds Harlequin Crest). Args: query: Item name (or substring) or numeric UID |
| d2r_lookup_set_itemA | Look up a D2R set item by name or numeric ID. Searches set_items.py data. Returns item info + set membership. Supports substring matching. Args: query: Item name (or substring) or numeric set item ID |
| d2r_lookup_item_baseA | Look up a D2R base item by 3-char code or name. Searches item_bases.py data. Returns dimensions, requirements, sockets. Supports substring matching on names. Args: query: 3-character item code (e.g. "hax") or item name |
| d2r_lookup_runewordA | Look up a D2R runeword by name or numeric ID. Searches runewords.py data. Returns runes, valid bases, stats. Supports substring matching. Args: query: Runeword name (or substring) or numeric runeword ID |
| d2r_lookup_statA | Look up a D2R stat by ID, canonical name, or YAML alias. Searches item_stat_cost.py data. Returns encoding info (save bits, save add, param bits, value shift) needed for binary stat encoding. Args: query: Stat ID, canonical name (e.g. "fireresist"), or alias (e.g. "fcr") |
| d2r_lookup_skillA | Look up a D2R skill by name or numeric ID. Searches skills.py data. Returns skill ID and class. Supports substring matching. Args: query: Skill name (or substring) or numeric skill ID |
| d2r_searchA | Search across ALL D2R item types: uniques, sets, runewords, bases. Use this when you don't know what type of item you're looking for. Returns up to 20 results tagged by type. Args: query: Search term (substring match across all item names) |
| d2r_save_scanA | Run d2rdoctor scanner on a .d2s save file. Returns a structured result with checksum/size status, item counts, and any scanner errors or warnings. status == "error" iff errors is non-empty. Deployment-blocker rule: never deploy a save that this tool flags as error (see CLAUDE.md Rule #17). Args: path: Absolute path to .d2s file, or bare character name (resolved against Steam saves dir). |
| d2r_save_inspectA | Summarize a .d2s save: class, level, stats, progression, merc. No scanner pass — use d2r_save_scan for validation. Args: path: Absolute path to .d2s file, or bare character name. |
| d2r_save_list_itemsA | List items on disk in a .d2s save, optionally filtered by location. Args: path: Absolute path to .d2s file, or bare character name. location: Filter: equipped, inventory, cube, stash, merc_equipped, or None for all. |
| d2r_save_diffC | Compare two .d2s files and return structural differences. Args: path_a: First save (treated as "before"). path_b: Second save (treated as "after"). |
| d2r_chargen_listA | List character names defined in chars/*.yaml. |
| d2r_chargen_validateB | Validate a character YAML and optionally run a dry-run binary build. Args: name: Character name (resolves to chars/.yaml). yaml_only: Skip the dry-run binary build + scanner pass. |
| d2r_chargen_buildA | Build and deploy a character to the live saves directory. Structurally enforces CLAUDE.md rules #3, #4, #10, #17: backs up the live save, builds to a temp file, runs the scanner on the temp, and only promotes the temp to the live save if the scanner passes. Live save is untouched on scanner failure. Args: name: Character name (chars/.yaml must exist). phase: Deploy through phase (1-4). Default: full deploy (4). force: Skip the freshness gate (discards server progress). Avoid unless intentional. |
| d2r_chargen_importA | Import a server-synced .d2s save into chars/.yaml. Args: name: Character name (reads live save at /.d2s). force: Overwrite an existing chars/.yaml. |
| d2r_mod_buildC | Build mod from vanilla + overlays + scripts into build/. |
| d2r_mod_deployC | Build + deploy mod to the game mod folder (runs CASC injection by default). |
| d2r_mod_undeployA | Revert the deployed D2R mod, restoring the vanilla game state. Removes the mod directory from the D2R install (or keeps it on disk with keep_mod=True) and unregisters the launch options. Use this to roll back a deploy without rebuilding, or before switching to a different mod. Args: keep_mod: If True, leave the built mod directory in place on disk. game_dir: Override the auto-detected D2R install path. |
| d2r_mod_diffC | Compare vanilla/ vs build/ tables. Returns list of changed files. |
| d2r_mod_extractC | Extract vanilla data from CASC archive into vanilla/. |
| d2r_mod_cleanA | Wipe the local mod build artifacts to start from a clean slate. Deletes the build/ directory and resets generated chargen data files. Does NOT touch the deployed D2R install; run d2r_mod_undeploy first if you also want to revert the running game. |
| d2r_mod_updateC | Full recovery pipeline: extract → build → deploy. |
| d2r_mod_auditB | Audit vanilla skills and items; write markdown reports. Args: skills: Run skills audit. items: Run items audit. audit_all: Run both audits (overrides skills/items). output_dir: Directory to write reports into. Default: docs/audit. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/crabsmadethis/d2r-horadric-tools'
If you have feedback or need assistance with the MCP directory API, please join our Discord server