Warcraft 3 MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| wc3_list_filesA | List the internal files inside a Warcraft III .w3x/.w3m map archive. |
| wc3_map_infoA | Parse war3map.w3i: map name, author, description, players, playable area, script language, flags, etc. |
| wc3_read_objectsA | Read an object-data table as JSON. "kind" is one of units/items/abilities/buffs/destructables/doodads/upgrades. Returns a { original, custom } modification table. |
| wc3_write_objectsA | Write an object-data table back into the map and save. Pass the same { original, custom } shape returned by wc3_read_objects. Saves to outPath, or ".edited.w3x" beside the source if omitted (pass the source path to overwrite in place). |
| wc3_read_scriptB | Read the map script (war3map.j JASS or war3map.lua). |
| wc3_write_scriptA | Replace the map script (war3map.j / war3map.lua) and save. Saves to outPath, or ".edited.w3x" beside the source if omitted. |
| wc3_read_fileC | Extract one internal file as text (utf8) or base64. |
| wc3_replace_fileB | Replace (or add) an internal file from a file on disk, then save. Useful for swapping models/textures/imports. |
| wc3_read_placementsA | Read what is placed on the map in the World Editor: preplaced units/items (war3mapUnits.doo) and doodads/destructables (war3map.doo). Returns { units: [...], doodads: [...] } with type code, position, angle, owner, etc. |
| wc3_list_unitsA | List the preplaced units and items in war3mapUnits.doo with their index, creationNumber, type code, owner, position and facing. Use the index/creationNumber with wc3_modify_unit or wc3_delete_unit. |
| wc3_place_unitA | Add a preplaced unit or item to the map at world coordinates (x, y). The type is a 4-char raw code, e.g. "ugho" (Ghoul), "hfoo" (Footman), or an item code. Saves to outPath, or ".edited." beside the source (pass the source path to overwrite in place). |
| wc3_modify_unitA | Change fields on the unit(s) matched by |
| wc3_delete_unitA | Remove the unit(s) matched by |
| wc3_overviewA | One-call snapshot of the map: info (name/author/players), file count, script language, terrain summary, placed unit/doodad counts, custom-object counts, and the names of regions/cameras/sounds plus a trigger summary. Use this first to orient on an unfamiliar map. |
| wc3_read_stringsA | Read war3map.wts as a { id: text } map. Many map fields are stored as TRIGSTR_### references into this table (map/unit names, quest text, tooltips, …). |
| wc3_set_stringA | Set the text of a TRIGSTR entry by numeric id (the ### in TRIGSTR_###), or omit id to append a new entry and get back its TRIGSTR_### token. Saves the map. |
| wc3_read_regionsB | List the rectangular regions (war3map.w3r) — name, id, rect bounds, weather, ambient sound, color. |
| wc3_add_regionB | Add a rectangular region defined by world-coordinate bounds (left/right/bottom/top). Returns the region with its assigned id (usable from JASS as gg_rct_). Saves the map. |
| wc3_modify_regionA | Change bounds/name/weather/sound/color on the region(s) matched by id, name, or index. Saves the map. |
| wc3_delete_regionA | Remove the region(s) matched by id, name, or index. Saves the map. |
| wc3_read_camerasA | List predefined cameras (war3map.w3c) — name, target, rotation, angle of attack, distance, fov, etc. |
| wc3_add_cameraA | Add a predefined camera at target (x,y). Unspecified fields use World Editor defaults (distance 1650, aoa 304, fov 70, rotation 90). Usable from JASS as gg_cam_. Saves the map. |
| wc3_delete_cameraB | Remove the camera(s) matched by name or index. Saves the map. |
| wc3_read_soundsA | List sound definitions (war3map.w3s) — variable name, file path, and playback settings. |
| wc3_read_terrainA | Summarize war3map.w3e: tileset, ground/cliff tileset list, tilepoint dimensions, world size, and height/water ranges. |
| wc3_read_triggersA | Inspect the GUI trigger tree (war3map.wtg): categories, variables, and per-trigger metadata (name, enabled, comment, action count). GUI triggers compile to the map script — to change behavior reliably, edit the script (wc3_add_trigger). |
| wc3_read_importsA | List custom imported files declared in war3map.imp (models, textures, sounds, …). Their bytes are reachable via wc3_read_file / wc3_replace_file. |
| wc3_list_doodadsA | List preplaced doodads/destructables in war3map.doo with index, editorId, type code, position, angle, scale, variation, life. Optionally filter by type. Use index/editorId with wc3_modify_doodad / wc3_delete_doodad. |
| wc3_place_doodadB | Add a doodad/destructable at (x,y). Type is a 4-char code, e.g. "LTlt" (a tree) or "ATtr" (a rock). Saves the map. |
| wc3_modify_doodadA | Change fields on the doodad(s) matched by editorId, index, or type. Saves the map. |
| wc3_delete_doodadB | Remove the doodad(s) matched by editorId, index, or type. Saves the map. |
| wc3_create_objectA | Create a custom object (unit/item/ability/buff/destructable/doodad/upgrade) derived from a base type, setting any fields. newId is a fresh 4-char code (e.g. "x000"); baseId is the 4-char code to copy (e.g. "hfoo"). fields are { id (4-char field code), type, value, level?, column? }. Saves the map. |
| wc3_add_triggerA | Splice custom JASS/Lua into the map script and optionally wire it to run at map init. |
| wc3_open_in_editorA | Launch the Warcraft III World Editor on the given map so the user can see/verify the edits. (The World Editor has no automation API; this just opens the edited file.) Pass exePath to override auto-detection. |
| wc3_test_mapA | Launch Warcraft III running the given map (windowed by default) so the change can be played immediately. Pass exePath to override auto-detection, or windowed=false for fullscreen. |
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/YElwiddi/warcraft-3-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server