内容
# 魔兽争霸 3 MCP 服务器
**通过与 Claude 交谈来编辑你的魔兽争霸 III 地图。**
这是一个 MCP 服务器,可以将 Claude 连接到你的魔兽争霸 III `.w3x` / `.w3m` 地图文件中。设置完成后,你可以说:
> *"在地图中间为玩家 1 添加一个步兵。"*
> *"将每个grunt的生命值翻倍。"*
> *"添加一个触发器,每 30 秒生成 5 只狼,然后在编辑器中打开地图。"*
……Claude 直接在你的地图文件中进行更改。
> **工作原理:一句话概括:** 魔兽争霸的世界编辑器没有插件/自动化系统,因此这个工具直接编辑地图**文件**。你的更改真实地反映在地图中 - 在世界编辑器中打开或播放它时,更改仍然存在。
---
## 安装(5 分钟)
### 步骤 1 — 安装 Node.js
从 [nodejs.org](https://nodejs.org) 下载并安装 **Node.js 18 或更新版本**。(要检查你是否已经安装,打开终端并运行 `node --version`。)
### 步骤 2 — 下载并构建该项目
打开终端(命令提示符、PowerShell 或终端)并运行:
```bash
git clone https://github.com/YElwiddi/warcraft-3-mcp-server.git
cd warcraft-3-mcp-server
npm install
npm run build
```
就这样 - 服务器现在已构建到 `dist` 文件夹中。
### 步骤 3 — 将其连接到 Claude
选择你使用的工具:
**Claude Code(CLI)** - 运行此命令(使用你刚刚构建的目录的完整路径):
```bash
claude mcp add wc3 --scope user -- node "/完整路径/to/warcraft-3-mcp-server/dist/index.js"
```
**Claude Desktop(应用程序)** - 打开 **设置 → 开发者 → 编辑配置**,并在 `mcpServers` 下添加一个 `wc3` 条目(保留您已经有的服务器):
```jsonc
{
"mcpServers": {
"wc3": {
"command": "node",
"args": ["C:/完整路径/to/warcraft-3-mcp-server/dist/index.js"]
}
}
}
```
### 步骤 4 — 重启 Claude
关闭并重新打开 Claude Code / Claude Desktop,以便它加载新工具。您已完成!
> 💡 **提示:** 在 Windows 上使用正斜杠 `/` 作为路径分隔符,例如 `C:/Users/You/warcraft-3-mcp-server/dist/index.js`。
---
## 试用
只需用纯英语询问 Claude,并提供你的地图的**完整路径**。例如:
> *"使用 wc3 为我提供 `C:\Users\Me\Desktop\MyMap.w3x` 的概述。*"*
默认情况下,编辑会保存到地图旁边的一个副本(`MyMap.edited.w3x`),因此你的原始地图是安全的。如果你想让 Claude 直接编辑原始文件,请告诉它 *"覆盖原始文件"*。
---
## Claude 可以执行的操作(工具)
### 查看地图
| 工具 | 功能 |
|---|---|
| `wc3_overview` | 地图的快速总结(很好的起点) |
| `wc3_map_info` | 地图名称、作者、玩家、大小 |
| `wc3_list_files` / `wc3_read_file` | 列出或读取地图内的任何文件 |
| `wc3_read_objects` | 读取单位/物品/技能/等及其属性 |
| `wc3_read_placements` / `wc3_list_units` / `wc3_list_doodads` | 地图上放置了什么 |
| `wc3_read_script` | 地图的脚本(JASS / Lua) |
| `wc3_read_strings` | 文本字符串(名称、提示、任务文本) |
| `wc3_read_regions` / `wc3_read_cameras` / `wc3_read_sounds` | 区域、相机、声音 |
| `wc3_read_terrain` | 地形总结(大小、图块、高度) |
| `wc3_read_triggers` / `wc3_read_imports` | 触发器列表和导入的文件 |
### 修改地图
| 工具 | 功能 |
|---|---|
| `wc3_place_unit` / `wc3_modify_unit` / `wc3_delete_unit` | 添加、移动或删除单位 |
| `wc3_place_doodad` / `wc3_modify_doodad` / `wc3_delete_doodad` | 添加、移动或删除装饰物/树/等 |
| `wc3_add_region` / `wc3_modify_region` / `wc3_delete_region` | 管理区域 |
| `wc3_add_camera` / `wc3_delete_camera` | 管理相机 |
| `wc3_write_objects` | 更改单位/物品/技能属性 |
| `wc3_set_string` | 更改文本字符串 |
| `wc3_write_script` / `wc3_replace_file` | 替换脚本或任何内部文件 |
### 创建新内容
| 工具 | 功能 |
|---|---|
| `wc3_create_object` | 基于现有单位/物品/技能创建自定义单位/物品/技能 |
| `wc3_set_durable_script` | 添加立即运行的游戏逻辑,**保留编辑器重新保存**,并在触发器编辑器中显示为可编辑 |
### 查看更改
| 工具 | 功能 |
|---|---|
| `wc3_open_in_editor` | 在魔兽争霸 III 世界编辑器中打开地图 |
| `wc3_test_map` | 在魔兽争霸 III 中启动地图进行游戏 |
---
## 需要了解的事项
- **你的原始地图是安全的** - 除非你要求覆盖,否则编辑会保存到 `.edited` 副本中。
- **触发器/新逻辑:** `wc3_set_durable_script` 将你的 JASS/Lua 存储在 `war3map.wct`(编辑器的触发器存储)中 *和* 镜像到地图脚本中 - 因此它立即运行 **并且** 在编辑器重新保存后仍然存在,在触发器编辑器中显示为可编辑。如果你想自动运行触发器,请在编辑器中首先创建一个自定义文本触发器(例如命名为 `MCPDurable`)并保存一次;标头槽(`slot:"header"`)无需设置。
- **非常大或受保护的地图** 可能有几个部分无法读取;Claude 会告诉你是哪一部分并继续处理其他部分。
- 本工具 **与暴雪娱乐公司无关**。魔兽争霸 III 是暴雪娱乐公司的商标。本工具仅读取/写入您自己的地图文件。
---
## 许可证
[MIT](LICENSE) - 免费且开源。您可以随意使用它。