Hated WoW MCP — Claude Code MCP server for WoW addon code
Hands your coding agent the real WoW Lua API, Blizzard's shipped UI code and the game's texture data, so addon work stops relying on invented function names.
claude mcp add --env WOW_DEFAULT_FLAVOR=<WOW_DEFAULT_FLAVOR> --env WOW_INSTALL_PATH=<WOW_INSTALL_PATH> --env WOW_ADDON_PATH=<WOW_ADDON_PATH> --env WOW_MCP_DATA_DIR=<WOW_MCP_DATA_DIR> --transport stdio hated-wow-mcp -- npx -y hated-wow-mcpWhat Hated WoW MCP does
Three gaps get filled here. The assistant gets the in-game Lua functions and events for the client you target, the interface source Blizzard actually ships, and a lookup for art files and texture paths. Twenty tools in total. All but one only read local data; wow_addon_scaffold can create addon files, but only when you pass write, and it will not touch an existing addon without overwrite.
You need Node 20+. The Lua API indexes travel inside the package, so API search, TOC/XML checks, linting and scaffolding work right after you connect it. The rest waits for a one-time sync via npx -y hated-wow-mcp sync all, which pulls the UI source and the file list. Open wago.tools in a browser once and let it finish loading before that run. Bot protection there can otherwise reject the atlas download with HTTP 403. The UI source is about 44 MB and the listfile about 149 MB on the first pass; later runs only revalidate.
Transport is plain stdio, so any MCP client fits. Config formats differ: mcpServers in Cursor and Cline, servers in VS Code, TOML at ~/.codex/config.toml for Codex. Bump startup_timeout_sec in Codex because the first npx run downloads the package. On Windows some clients spawn without a shell and plain npx dies with ENOENT; wrap it as cmd /c. No Battle.net web API here, so armory and auction lookups are out.
What it helps with
- look up the exact Lua function names for a given client
- read how Blizzard builds a UI element in its own source
- find a real texture path instead of a guessed one
- validate addon TOC and XML files
- scaffold a fresh addon from scratch
Example prompts for the agent
- Find the Lua API function that registers a handler for the player entering world event
- Show me how Blizzard draws the cast bar in the UI source
- Run the linter over my
MyAddon.tocand XML files
How to install Hated WoW MCP
Platform CLI
claude mcp add --env WOW_DEFAULT_FLAVOR=<WOW_DEFAULT_FLAVOR> --env WOW_INSTALL_PATH=<WOW_INSTALL_PATH> --env WOW_ADDON_PATH=<WOW_ADDON_PATH> --env WOW_MCP_DATA_DIR=<WOW_MCP_DATA_DIR> --transport stdio hated-wow-mcp -- npx -y hated-wow-mcpReplace <…> with your own values
Platform CLI
codex mcp add hated-wow-mcp --env WOW_DEFAULT_FLAVOR=<WOW_DEFAULT_FLAVOR> --env WOW_INSTALL_PATH=<WOW_INSTALL_PATH> --env WOW_ADDON_PATH=<WOW_ADDON_PATH> --env WOW_MCP_DATA_DIR=<WOW_MCP_DATA_DIR> -- npx -y hated-wow-mcpReplace <…> with your own values
Config file
{
"mcpServers": {
"hated-wow-mcp": {
"command": "npx",
"args": [
"-y",
"hated-wow-mcp"
],
"env": {
"WOW_DEFAULT_FLAVOR": "<WOW_DEFAULT_FLAVOR>",
"WOW_INSTALL_PATH": "<WOW_INSTALL_PATH>",
"WOW_ADDON_PATH": "<WOW_ADDON_PATH>",
"WOW_MCP_DATA_DIR": "<WOW_MCP_DATA_DIR>"
}
}
}
}Replace <…> with your own values
Config file
{
"servers": {
"hated-wow-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"hated-wow-mcp"
],
"env": {
"WOW_DEFAULT_FLAVOR": "<WOW_DEFAULT_FLAVOR>",
"WOW_INSTALL_PATH": "<WOW_INSTALL_PATH>",
"WOW_ADDON_PATH": "<WOW_ADDON_PATH>",
"WOW_MCP_DATA_DIR": "<WOW_MCP_DATA_DIR>"
}
}
}
}Replace <…> with your own values
Platform CLI
gemini mcp add -e WOW_DEFAULT_FLAVOR=<WOW_DEFAULT_FLAVOR> -e WOW_INSTALL_PATH=<WOW_INSTALL_PATH> -e WOW_ADDON_PATH=<WOW_ADDON_PATH> -e WOW_MCP_DATA_DIR=<WOW_MCP_DATA_DIR> hated-wow-mcp npx -y hated-wow-mcpReplace <…> with your own values
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about Hated WoW MCP
How do I install Hated WoW MCP in Claude Code?
Run claude mcp add hated-wow-mcp -- npx -y hated-wow-mcp. To pass environment variables, add --env flags and --transport stdio as in the longer form of the command. Then check it with claude mcp list.
What does Hated WoW MCP do?
It supplies the agent with the WoW Lua API, Blizzard's interface source, art and file data, plus tools for linting and scaffolding an addon.
What does the server need to work?
Node 20+ to run. Syncing the UI source and atlas data also needs git on your PATH, and you should load wago.tools in a browser once beforehand. Without the sync some tools stay unavailable.