A complete local MCP (Model Context Protocol) server for managing a standalone WoW private server. Built and tested for World of Warcraft repacks (specifically Cata/MoP) with MySQL, but works with any repack when correctly configured.
In short: if you can do it in-game as a GM or via the database, the agent can do it for you.
- What Can the Agent Do?
- Why MCP Instead of Raw Credentials?
- Demo Videos
- Quick Start
- Dynamic Schema (Any Expansion)
- Available Tools (76 total)
- Database Backups
- Updating from an Older Release
- Prerequisites
- Project Structure
Once connected, an AI agent (Claude, Gemini, Antigravity, or any MCP-compatible client) gets full control over your WoW server through natural language. No need to touch the database, config files, or console manually — just ask.
| Category | Capabilities |
|---|---|
| 🚀 Server Control | Start / stop / restart MySQL, authserver, and worldserver |
| 🗄️ Database | Run any SELECT, INSERT, UPDATE, or DELETE query |
| 👤 Accounts | Create accounts, set GM levels, grant Donation Points |
| 🐉 NPCs | Clone templates, set flags, manage vendors, gossip menus, waypoint paths |
| 📜 Quests | Create quests, assign giver/ender NPCs, manage rewards & relations |
| 💎 Loot | Add/remove creature drops, search which mobs drop an item |
| 🔮 Spells & Events | Look up spells from spell_dbc, view world events |
| 📍 Teleports | Find coordinates and map positions for NPC placement |
| ⚙️ Config | Change rates, caps, realm settings in worldserver.conf |
| 📡 Remote Access | Send any RA command — anything you'd type in the worldserver console |
| 📊 Monitoring | Uptime, online players, DB statistics |
| 💾 Backups | Full or table-specific mysqldump with WHERE clause support |
You could just tell your AI agent "here's my workspace, my DB password is ascent, and RA is on port 3443" — and it would technically figure things out. But here's why a dedicated MCP server is significantly better:
| Raw Credentials | MCP Server | |
|---|---|---|
| Reliability | Agent guesses SQL column names, often gets them wrong | Pre-built queries matched to your exact schema |
| Speed | Agent writes + debugs SQL from scratch every time | Instant tool calls — no trial and error |
| Safety | Agent has unrestricted DB access, can DROP TABLE |
Scoped tools with built-in validation and WHERE guards |
| Token cost | Burns tokens writing boilerplate SQL and reading schema | Minimal tokens — just the tool name and parameters |
| Consistency | Different results depending on the model's mood | Same reliable output every time |
| Process control | Agent needs shell access + process knowledge | One-click start/stop/restart with status checks |
| Portability | Prompts break when you switch AI clients | Works with Claude, Gemini, Antigravity, Copilot, etc. |
TL;DR: The MCP server turns your AI agent from a "smart intern who needs to Google everything" into a "senior dev with a custom toolkit".
| What | Link |
|---|---|
| 🛠️ How to set it up | Watch on YouTube |
| 🛒 Add a vendor to the world | Watch on YouTube |
| ⚔️ Update NPC stats | Watch on YouTube |
| ⚙️ Change server rates | Watch on YouTube |
Important
Compatibility Note: The default configuration, as well as the 1-click installer, are primarily designed for the standard folder layout of Cataclysm and Mists of Pandaria repacks.
However, you can install and use this MCP server anywhere, with any repack, simply by modifying the absolute paths inside your config.json file to point to your repack's executables and config files.
Default Recommended Layout (if using default config paths):
📁 YourRepackFolder\
├── 📁 Database\
├── 📁 wow-server-mcp\ ← clone here
└── 📁 Repack\
cd "C:\path\to\YourRepackFolder"
git clone https://github.com/timoinglin/wow-server-mcp.gitDouble-click install.bat inside the wow-server-mcp folder.
It will automatically:
- Check for Node.js and install it via
wingetif missing - Copy
example.config.json→config.json - Run
npm install - Build the TypeScript project (
npm run build)
Manual alternative:
cd wow-server-mcp npm install npm run build
Open config.json and update:
- Database credentials — default:
root/ascentonlocalhost:3306 - RA credentials — create a GM account first (level 3+), then set username/password
- Server paths — should be correct for the default repack layout
In Repack/worldserver.conf:
Ra.Enable = 1
Ra.IP = 127.0.0.1
Ra.Port = 3443
Then restart the worldserver and set the matching credentials in config.json under remote_access.
Replace <REPACK_PATH> with the absolute path to your repack folder.
Use forward slashes / even on Windows (e.g. C:/Games/mop_repack/MOPFREE).
🟣 Antigravity (VSCode extension)
File: C:\Users\<you>\.gemini\antigravity\mcp_config.json
{
"mcpServers": {
"wow-server": {
"command": "node",
"args": ["<REPACK_PATH>/wow-server-mcp/dist/index.js"],
"cwd": "<REPACK_PATH>/wow-server-mcp"
}
}
}🟠 Claude Desktop
File: C:\Users\<you>\AppData\Roaming\Claude\claude_desktop_config.json
{
"mcpServers": {
"wow-server": {
"command": "node",
"args": ["<REPACK_PATH>/wow-server-mcp/dist/index.js"],
"cwd": "<REPACK_PATH>/wow-server-mcp"
}
}
}🔵 VS Code (GitHub Copilot / Cline / OpenClaw / other MCP extensions)
File: .vscode/mcp.json inside your project, or via the extension's settings UI — check your extension's docs for the exact location. The JSON block is the same as above.
After saving, restart your AI client and the wow-server will appear in the available tools list.
The server utilizes a Dynamic Schema Mapping system, meaning it can automatically adapt to Mists of Pandaria, Cataclysm, Wrath of the Lich King, or Legion repacks, even when database column names are different.
To configure the MCP for your specific repack:
- Complete the
Quick Startconnection steps above so the AI can connect to your database. - Ask your AI Assistant to "Run the
discover_schematool". - The AI will scan your database (
INFORMATION_SCHEMA) and generate aschema_override.jsonfile perfectly tailored to your repack's database structure. - Tell the AI to update your
config.jsonto include"schemaOverride": "schema_override.json". - Restart the AI client, and you are fully compatible!
| Tool | Description |
|---|---|
get_config |
Read current config.json |
update_config |
Update config fields (deep merge) |
reset_config |
Reset to example defaults |
discover_schema |
Auto-detect database structure for custom repacks |
| Tool | Description |
|---|---|
db_query |
SELECT queries (parameterized) |
db_insert |
Insert rows |
db_update |
Update rows with WHERE |
db_delete |
Delete rows with WHERE |
db_execute |
Raw SQL execution |
db_test_connection |
Test DB connectivity |
create_db_backup |
Full or table-specific database dumps |
| Tool | Description |
|---|---|
ra_command |
Send single RA command |
ra_command_batch |
Send multiple commands in sequence |
| Tool | Description |
|---|---|
start_mysql / stop_mysql / restart_mysql |
MySQL control |
start_authserver / stop_authserver / restart_authserver |
Auth control |
start_worldserver / stop_worldserver / restart_worldserver |
World control |
get_server_status |
Check all processes |
| Tool | Description |
|---|---|
create_account |
Create game account via RA |
set_gm_level |
Set GM level (0–9) |
set_account_password |
Change password |
modify_dp |
Set DP (Battle Pay) |
add_dp |
Add/subtract DP |
list_accounts |
List all accounts |
get_account_characters |
List characters for account |
| Tool | Description |
|---|---|
read_server_config |
Read allowed config files |
write_server_config |
Write config files |
get_conf_value |
Get specific .conf setting |
update_conf_value |
Update specific .conf setting |
list_allowed_files |
List allowed files |
| Tool | Description |
|---|---|
search_creature_template / get_creature_template / update_creature_template |
NPC lookup & editing |
search_quest_template / get_quest_template / update_quest_template |
Quest lookup & editing |
search_item_template / get_item_template / update_item_template |
Item lookup & editing |
search_gameobject_template |
Gameobject search |
get_server_info |
Server uptime/players via RA |
get_online_players |
Online players from DB |
get_db_stats |
Database statistics |
| Tool | Description |
|---|---|
spawn_creature |
Spawn NPC at GM's in-game position via RA |
delete_creature_spawn |
Delete a creature spawn by GUID |
get_creature_spawns |
List all spawns of a creature entry (map, coords, GUID) |
clone_creature_template |
Duplicate existing NPC with new entry & name |
set_npc_flags |
Set npcflag bitfield (Vendor, QuestGiver, Trainer, etc.) |
set_npc_gossip_menu |
Set gossip menu ID on a creature template |
search_gossip_menu |
View gossip menu options and text IDs |
get_npc_vendor_items |
List items sold by a vendor NPC |
add_npc_vendor_item |
Add item to vendor inventory (auto-reloads) |
remove_npc_vendor_item |
Remove item from vendor (auto-reloads) |
get_waypoints |
List waypoints for a creature path |
add_waypoint |
Add waypoint to creature path |
delete_waypoints |
Delete all waypoints for a path |
| Tool | Description |
|---|---|
create_quest |
Create new quest with title, levels, rewards |
delete_quest |
Delete quest and all NPC relations |
set_quest_giver |
Assign NPC as quest starter (auto-sets QuestGiver flag) |
set_quest_ender |
Assign NPC as quest turn-in (auto-sets QuestGiver flag) |
remove_quest_relation |
Remove giver/ender relations |
get_quest_relations |
Show all NPCs/GOs that give/finish a quest |
get_quest_rewards |
Show reward items, choices, XP, money |
| Tool | Description |
|---|---|
get_creature_loot |
List loot table for a creature (with item names) |
add_creature_loot_item |
Add item to creature loot (chance, qty, quest-only) |
remove_creature_loot_item |
Remove item from creature loot |
search_loot_by_item |
Find which creatures drop a given item |
get_item_loot |
Get loot contents of a container item |
search_spell |
Search spells by name or ID from spell_dbc |
get_world_events |
List world events with active/upcoming status |
search_teleport_location |
Find teleport locations by name (with coordinates) |
The server includes a powerful built-in create_db_backup tool that securely interfaces with your mysqldump.exe. All backups generated by the AI agent are cleanly placed into a local backups/ directory located right beside the wow-server-mcp folder. The tool supports three levels of flexibility:
- Full Backups — specify
auth,characters, andworldfor a complete backup file. - Single Database Backups — dump an entire single database to a
.sqlfile. - Custom / Fine-Grained Backups — target specific tables (e.g.
['account']) with a SQLWHEREclause (e.g.username = 'kneuma') to isolate exactly the data you need.
If you already have a previous version installed, updating is simple:
cd wow-server-mcp
git pull
npm install
npm run buildThen restart your AI client (Antigravity, Claude Desktop, etc.) to reload the MCP server with the new code.
Note
Your config.json is gitignored and will not be overwritten. If new config options are added in a release, check example.config.json for reference.
- Node.js 18+ (tested with v24.13.0)
- MySQL running (via the repack's
MySQL.bat) - Worldserver running (for RA commands)
- A GM account with level 3+ (for RA access)
wow-server-mcp/
├── src/
├── dist/ — Compiled JavaScript
├── install.bat — One-click installer (double-click me!)
├── install.ps1 — Installer script (called by install.bat)
├── config.json — Your local config (never commit this)
├── example.config.json — Template config
└── package.json
- 🚀 Project Rebrand: Renamed from
emucoach-mcptowow-server-mcp. - ♻️ Refactored All Files: Updated internal identifiers, identifiers, documentation, and installer scripts for the new name.
- 📦 GitHub Release: Automated release under the new repository name.
- 🚀 Dynamic Schema Mapping: Implemented the
discover_schematool to automatically detect and map database structures (WotLK, Cata, Legion, etc.)! - ♻️ Refactored All Tools: Account, NPC, Quest, Loot, and Lookup tools now fully utilize the dynamic schema resolver.
- 📝 Added full cross-expansion setup documentation to README.
- 🐛 Fixed
quest_templatecolumn name mismatches inget_quest_rewardsandcreate_quest - 🐛 Fixed
npcflaginconsistency for quest giver/ender relations - 📝 Updated README version shield
- 🐛 Fixed SQL compatibility with older MySQL versions (
LIMIT ?in prepared statements) - 🐛 Fixed reserved keyword escaping for
rank,type,Typecolumns - 🐛 Fixed
spell_dbcschema mismatch (Commentcolumn instead ofSpellName1) - 🐛 Fixed
game_eventschema mismatch (eventEntryinstead ofentry) - 📝 Improved README with MCP badges, "Why MCP?" section, and capability table
- ✅ All 72 tools verified operational
- 🐉 Added NPC development tools (13 tools)
- 📜 Added Quest development tools (7 tools)
- 💎 Added Loot & world data tools (8 tools)
- 🎉 Initial release with core tools across 7 categories