Warcraft 3 MCP Server
Edit your Warcraft III maps by just talking to Claude.
This is an MCP server that connects Claude to your Warcraft III .w3x / .w3m map files. Once it's set up, you can say things like:
"Add a footman for Player 1 in the middle of the map." "Double the hit points of every grunt." "Add a trigger that spawns 5 wolves every 30 seconds, then open the map in the editor."
…and Claude makes the change directly in your map file.
How it works in one line: Warcraft's World Editor has no plugin/automation system, so this edits the map file directly. Your change is really in the map — open it in the World Editor or play it and it's there.
---
Install (5 minutes)
Step 1 — Install Node.js
Download and install Node.js 18 or newer from nodejs.org. (To check if you already have it, open a terminal and run node --version.)
Step 2 — Download this project and build it
Open a terminal (Command Prompt, PowerShell, or Terminal) and run:
git clone https://github.com/YElwiddi/warcraft-3-mcp-server.git
cd warcraft-3-mcp-server
npm install
npm run build
That's it — the server is now built into the dist folder.
Step 3 — Connect it to Claude
Pick whichever you use:
Claude Code (the CLI) — run this one command (use the full path to the folder you just built):
claude mcp add wc3 --scope user -- node "/full/path/to/warcraft-3-mcp-server/dist/index.js"
Claude Desktop (the app) — open Settings → Developer → Edit Config, and add a wc3 entry under mcpServers (keep any servers you already have):
{
"mcpServers": {
"wc3": {
"command": "node",
"args": ["C:/full/path/to/warcraft-3-mcp-server/dist/index.js"]
}
}
}
Step 4 — Restart Claude
Close and reopen Claude Code / Claude Desktop so it loads the new tools. You're done!
💡 Tip: Use forward slashes
/in the path even on Windows, e.g.C:/Users/You/warcraft-3-mcp-server/dist/index.js.
---
Try it
Just ask Claude in plain English and give it the full path to your map. For example:
"Use wc3 to give me an overview of
C:\Users\Me\Desktop\MyMap.w3x."
By default, edits are saved to a copy next to your map (MyMap.edited.w3x) so your original is safe. Tell Claude "overwrite the original" if you want it to edit the file in place.
---
What Claude can do (the tools)
Look at a map
| Tool | What it does | |---|---| | wc3_overview | A quick summary of the whole map (great starting point) | | wc3_map_info | Map name, author, players, size | | wc3_list_files / wc3_read_file | List or read any file inside the map | | wc3_read_objects | Read units / items / abilities / etc. and their stats | | wc3_read_placements / wc3_list_units / wc3_list_doodads | What's placed on the map | | wc3_read_script | The map's script (JASS / Lua) | | wc3_read_strings | Text strings (names, tooltips, quest text) | | wc3_read_regions / wc3_read_cameras / wc3_read_sounds | Regions, cameras, sounds | | wc3_read_terrain | Terrain summary (size, tiles, height) | | wc3_read_triggers / wc3_read_imports | The trigger list and imported files |
Change a map
| Tool | What it does | |---|---| | wc3_place_unit / wc3_modify_unit / wc3_delete_unit | Add, move, or remove units | | wc3_place_doodad / wc3_modify_doodad / wc3_delete_doodad | Add, move, or remove doodads/trees/etc. | | wc3_add_region / wc3_modify_region / wc3_delete_region | Manage regions | | wc3_add_camera / wc3_delete_camera | Manage cameras | | wc3_write_objects | Change unit/item/ability stats | | wc3_set_string | Change text strings | | wc3_write_script / wc3_replace_file | Replace the script or any internal file |
Create new things
| Tool | What it does | |---|---| | wc3_create_object | Make a custom unit/item/ability based on an existing one | | wc3_set_durable_script | Add game logic that runs immediately, survives editor re-saves, and shows up editable in the Trigger Editor |
See your change
| Tool | What it does | |---|---| | wc3_open_in_editor | Open the map in the Warcraft III World Editor | | wc3_test_map | Launch the map in Warcraft III to play it |
---
Good to know
- Your originals are safe — edits save to a
.editedcopy unless you ask to overwrite. - Triggers / new logic:
wc3_set_durable_scriptstores your JASS/Lua inwar3map.wct(the
editor's own trigger storage) and mirrors it into the map script — so it runs immediately and survives editor re-saves, appearing in the Trigger Editor where you can edit it later. For an auto-running trigger, create one custom-text trigger in the editor first (e.g. name it MCPDurable) and save once; the header slot (slot:"header") needs no setup.
- Very large or protected maps may have a few parts that can't be read; Claude will tell you
which part and keep working on the rest.
- This is not affiliated with Blizzard Entertainment. Warcraft III is a trademark of
Blizzard. This tool only reads/writes your own map files.
---
License
MIT — free and open source. Do whatever you like with it.











