Skip to main content
ClaudeWave
casancam avatar
casancam

Dungeondraft-MCP

View on GitHub
MCP ServersOfficial Registry0 stars0 forks● TypeScriptMITUpdated today
ClaudeWave Trust Score
77/100
✓ Trusted
Passed
  • ✓Open-source license (MIT)
  • ✓Actively maintained (<30d)
  • ✓Documented (README)
Flags
  • !No description
Last scanned: 10/4/2026
Install in Claude Code / Claude Desktop
Method: NPX · dungeondraft-mcp
Claude Code CLI
claude mcp add dungeondraft-mcp -- npx -y dungeondraft-mcp
claude_desktop_config.json (Claude Desktop)
{
  "mcpServers": {
    "dungeondraft-mcp": {
      "command": "npx",
      "args": ["-y", "dungeondraft-mcp"]
    }
  }
}
1. Run the command above in your terminal (Claude Code), or paste the JSON config into claude_desktop_config.json (Claude Desktop).
2. Replace any <placeholder> values with your API keys or paths.
3. Restart Claude. The MCP server and its tools appear automatically.
Use cases

MCP Servers overview

# dungeondraft-mcp

An [MCP](https://modelcontextprotocol.io) server that lets Claude (or any MCP client) read, edit and export [Dungeondraft](https://dungeondraft.net/) maps. It works directly on `.dungeondraft_map` files, so Dungeondraft doesn't need to be running. It also converts Universal VTT exports (`.dd2vtt`) into Foundry VTT v13 scenes.

Ask things like *"build a small tavern in the north-east corner of my crossroads map"*, *"make a night version of this map"*, or *"turn this dd2vtt into a Foundry scene"*.

> Not affiliated with Dungeondraft or Megasploot. For live editing inside a running Dungeondraft, see [battlemap-mcp](https://github.com/thekannen/battlemap-mcp). The two work well side by side.

## Tools

| Tool | What it does |
|---|---|
| `list-maps` | Finds `.dungeondraft_map` files in the configured folders |
| `inspect-map` | Summary: size, levels, element counts, terrain, packs, most-used assets. Can list elements (node id, asset, grid position) by type and area |
| `list-assets` | Searches built-in assets and installed asset packs by words, category, tag or pack |
| `add-objects` | Places props at grid positions (rotation, scale, mirror, layer, shadow, tint) |
| `add-walls` | Adds wall polylines or closed rooms, with doors and windows; can also add doors to an existing wall |
| `add-floors` | Adds floor patterns (planks, cobble, tiles) over a rectangle or polygon |
| `build-room` | Builds a closed wall, a matching floor and doors in one step |
| `add-lights` | Adds point lights (range in squares, colour, intensity) |
| `add-paths` | Adds path assets along grid points |
| `set-terrain` | Sets terrain slot textures (1–8), fills a level, or paints rectangles, circles and lines with soft edges |
| `set-environment` | Sets ambient light (presets: day, overcast, dusk, night, dark) for day/night variants |
| `remove-elements` | Removes elements by type within an area, or by node id (supports `dry_run`) |
| `duplicate-map` | Copies a map to start a variant |
| `export-dd2vtt` | Builds a `.dd2vtt` from the map's walls, doors and lights plus an image exported from Dungeondraft |
| `dd2vtt-to-foundry-scene` | Turns a `.dd2vtt` into a Foundry v13 scene JSON (grid, walls, doors, lights) and extracts the image |

Every edit tool accepts `level` (key, index or label; the default is the first level) and `dry_run`.

### Coordinates

All tools use **grid squares** measured from the map's top-left corner, with x to the right and y down. `(3, 4)` is a grid intersection, and `(3.5, 4.5)` is the centre of the square in column 3, row 4. Fractions are allowed. Dungeondraft stores 256 px per square internally, and the server converts for you. Object positions are object **centres**. Rotation is in **degrees clockwise**. Light range, path width and terrain feather are in **squares**.

## Safety

- **Allowed folders only.** Maps are read and written only inside `DD_MCP_ROOTS`, which defaults to your `Documents` folder. `..` paths and links that point outside are rejected. The Dungeondraft install and asset folders are read-only.
- **Backup first.** Before every change the original is copied to `<map>.bak-YYYYMMDD-HHMMSS` (UTC).
- **Verified writes.** The new map is written to a temp file, re-parsed and checked: it must round-trip byte for byte, element counts must match what the edit added or removed, and every section the edit didn't declare must be **byte-identical** to before. Only then is the temp file renamed over the original. If any check fails, nothing is written.
- **Conflict check.** If the file changed on disk after it was read (for example Dungeondraft saved it), the edit is refused.
- **Close the map in Dungeondraft before editing it here**, or reopen it afterwards *without saving*. Otherwise Dungeondraft overwrites the change on its next save.
- **Asset pack licences.** No image data is ever read from any pack. Packs whose `pack.json` sets `allow_3rd_party_mapping_software_to_read: false` are listed by name only: their contents aren't indexed, and only `pack.json` is read, to fill in the map's asset manifest when you use them.

## Install

Requires [Node.js](https://nodejs.org) 20 or newer.

### Claude Code

```sh
claude mcp add dungeondraft -s user -e DD_MCP_ROOTS="/path/to/your/maps" -- npx -y dungeondraft-mcp
```

### Claude Desktop

Add this to `claude_desktop_config.json` (Settings → Developer → Edit Config), then restart Claude Desktop:

```json
{
  "mcpServers": {
    "dungeondraft": {
      "command": "npx",
      "args": ["-y", "dungeondraft-mcp"],
      "env": {
        "DD_MCP_ROOTS": "C:\\Users\\you\\Documents\\Dungeondraft"
      }
    }
  }
}
```

On Windows, if Node isn't on your PATH, use the full path, e.g. `"command": "C:\\Program Files\\nodejs\\npx.cmd"`.

### From source

```sh
git clone https://github.com/casancam/Dungeondraft-MCP.git && cd Dungeondraft-MCP
npm install && npm run build
claude mcp add dungeondraft -s user -e DD_MCP_ROOTS="/path/to/maps" -- node "$PWD/dist/index.js"
```

### Configuration

| Variable | Default | Meaning |
|---|---|---|
| `DD_MCP_ROOTS` | your `Documents` folder | Folders the server may read and write maps in, separated by `;` |
| `DUNGEONDRAFT_DIR` | auto-detected (see below) | Dungeondraft install folder (the one containing `Dungeondraft.pck`), used to list and validate built-in assets |
| `DD_ASSET_DIRS` | none | Your Dungeondraft asset folder(s) with `*.dungeondraft_pack` files, separated by `;`. Set this to use custom packs |

`DUNGEONDRAFT_DIR` is auto-detected at `C:\Program Files\Dungeondraft` (verified), and also at `/opt/Dungeondraft` and `/Applications/Dungeondraft.app/Contents/Resources` (both unverified). Without it the server still works, but built-in asset names aren't checked before they're written.

## Dungeondraft → Foundry VTT

1. In Dungeondraft: **File → Export → Universal VTT**, saved into a configured folder.
2. Run `dd2vtt-to-foundry-scene` on it. Set `image_src` to the path the image will have in Foundry, e.g. `maps/tomb.png`.
3. Upload the extracted image to Foundry (or The Forge Assets Library) at that path.
4. In Foundry, create a scene, right-click it, choose **Import Data**, and pick `<name>.foundry-scene.json`.

Light radii use `dim = range × grid distance` and `bright = dim / 2`. Dungeondraft bakes lighting into the image, so pass `include_lights: false` if the Foundry lights look doubled. Windows are exported as doors, because `.dd2vtt` doesn't tell them apart.

`export-dd2vtt` is for when you changed walls, doors or lights after exporting. Dungeondraft is needed to render the map image, so export a PNG/WEBP of the whole map from Dungeondraft and point the tool at it. [docs/foundry-import.md](docs/foundry-import.md) describes what a live in-Foundry importer would need.

## Known limits

- Water, caves, painted materials, roofs and text are preserved but can't be edited. Text and floor patterns can be listed and removed.
- Floor patterns are drawn over terrain. `set-terrain` warns when a stroke is hidden under one.
- `export-dd2vtt` doesn't write `objects_line_of_sight`.
- Tested with Dungeondraft 0.9.4 to 1.2.0.1 map files (formats 2 and 3), on Windows.

## Development

```sh
npm install
npm run fixtures       # download public sample maps used by some tests (not redistributed)
npm test               # vitest
npm run build
node scripts/smoke.mjs # end-to-end over MCP stdio on a temp copy of the test map
```

The tests use a real Dungeondraft 1.2.0.1 map (`test/fixtures/mcp_test.dungeondraft_map`), public sample maps (formats 2 and 3, up to 14 MB and 4 levels), and synthetic asset packs. They check:
- byte-identical round-trips
- door placement against every door in the samples
- that untouched sections stay identical after each edit
- map → UVTT geometry against Dungeondraft's own `.dd2vtt` exports
- pack listing, validation and the opt-out flag

Tests that need a Dungeondraft install or the downloaded samples are skipped when those are missing. File-format notes and how each claim was verified are in [docs/research.md](docs/research.md).

## Credits

- Format research built on [Ryex/Dungeondraft-GoPackager](https://github.com/Ryex/Dungeondraft-GoPackager) (pack format) and the [Arkenforge Universal VTT notes](https://arkenforge.com/universal-vtt-files/).
- Sample maps for the tests come from Akesari12, pleonr, watermelonwolverine and lordhaywire on GitHub. They are downloaded at test time, not included.

## License

MIT

What people ask about Dungeondraft-MCP

What is casancam/Dungeondraft-MCP?

+

casancam/Dungeondraft-MCP is mcp servers for the Claude AI ecosystem with 0 GitHub stars.

How do I install Dungeondraft-MCP?

+

You can install Dungeondraft-MCP by cloning the repository (https://github.com/casancam/Dungeondraft-MCP) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.

Is casancam/Dungeondraft-MCP safe to use?

+

Our security agent has analyzed casancam/Dungeondraft-MCP and assigned a Trust Score of 77/100 (tier: Trusted). See the full breakdown of passed checks and flags on this page.

Who maintains casancam/Dungeondraft-MCP?

+

casancam/Dungeondraft-MCP is maintained by casancam. The last recorded GitHub activity is dated 2026-10-03, with 0 open issues.

Are there alternatives to Dungeondraft-MCP?

+

Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.

Deploy Dungeondraft-MCP to your cloud

Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.

Maintain this repo? Add a badge to your README

Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.

Featured on ClaudeWave: casancam/Dungeondraft-MCP
[![Featured on ClaudeWave](https://claudewave.com/api/badge/casancam-dungeondraft-mcp)](https://claudewave.com/repo/casancam-dungeondraft-mcp)
<a href="https://claudewave.com/repo/casancam-dungeondraft-mcp"><img src="https://claudewave.com/api/badge/casancam-dungeondraft-mcp" alt="Featured on ClaudeWave: casancam/Dungeondraft-MCP" width="320" height="64" /></a>

More MCP Servers

Dungeondraft-MCP alternatives