Skip to main content
Glama
YElwiddi

Warcraft 3 MCP Server

by YElwiddi

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
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 select — move them, re-own them, rescale, re-face, swap type, or set HP/mana. Saves to outPath, or ".edited." beside the source (pass the source path to overwrite in place).

wc3_delete_unitA

Remove the unit(s) matched by select from war3mapUnits.doo. Saves to outPath, or ".edited." beside the source (pass the source path to overwrite in place).

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. code is one or more complete function definitions; set entryFunction to the name of a zero-arg function in code to have it called during initialization. This is the reliable way to make the map DO something new in-game. Note: if the map has a GUI trigger tree and is re-saved in the World Editor, regenerated script may overwrite this; for pure custom-script maps it is fully durable. Saves the map.

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

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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