内容
poe2-build
[](https://github.com/ilk/poe2-build-mcp/releases/latest)
[](LICENSE)

> 一个 **流亡之路 2** 构建助手,适用于大型语言模型(LLM)。它将一个可查询的游戏语料库与一个 **Path-of-Building–faithful 计算引擎** 配对,使 AI 能够导入您的构建,回答问题,并根据 **真实的计算数字** 进行理论 而不是编造的数字。
在 Claude Desktop 上安装为一键式 `.mcpb` 文件,并提出类似的问题:
- *"导入此 PoB 代码 — 我的 DPS 瓶颈在哪里,最便宜的解决方法是什么?"*
- *"为我创建一个 级的女巫猎人 Detonate Living 构建,确保达到上限。"*
- 应该使用哪些辅助技能,它们实际上能增加多少伤害- *"这个构建是否足够坚韧,适合用于最终游戏 BOSS?我的最弱防御层是什么?"*
它报告的每个 DPS / EHP /力数据都是由一个真正的无头 Path of Building 计算得出的,而不是猜测的。当 PoB 无法模拟某些内容时,它会说明,而不是编造数字。
## 安装(Claude Desktop)
1. 从 [最新版本](https://github.com/MaxWilk/poe2-build-mcp/releases/latest) 下载适用于您操作系统的 `.mcpb` 文件。
2. 使用 Claude Desktop 打开它,并在提示时安装(扩展在 **设置 → 扩展** 下管理)。
3. 开始提出构建问题。第一次调用会启动引擎(加载游戏数据需要几秒钟);之后的调用速度很快。
该软件包包含 PoB 引擎、LuaJIT、游戏数据语料库和 Python 依赖项。您的系统Python 3.11+**。语料库和引擎 **自动更新** 到可写的用户数据文件夹中的验证 GitHub 版本,因此数据保持最新而无需重新服务器代码更新在您安装新的 `.mcpb`)。参见 [PACKAGINGPACKAGING.md)。
### 开始会话
启用扩展后,只需提出一个流亡之路 的问题 — Claude 就会使用这些工具。要显式启动,请从 Claude Desktop 的提示菜单中选择 **`start_build_session`** 提示(或特定任务提示:`analyze_build`_from_goal`、`audit_defenses`)。在 Claude Code配置服务器(参见 [从源代码构建](#build-from)并根据需要到您的 `CLA`,例如 *"有关流亡之路 2 构建问题,请使用 poe2-build MCP 工具。"*,以便它自动优先使用它们。
## 功能
**导入和分析** 来自 PoB 分享代码、pobb.in/pastebin 链接或原始 PoB XML 的构建 — 然后读取计算出的 DPS、EHP、抵抗力、生命/能量护盾等。
**从头创建、打造和最大化** 构建:/升华、等级、技能、装备、配置和被动树,在引擎上验证每个更改。优化器打造混合最佳装备和珠宝,自动基石和计划整个装备集,使抵抗力达到上限(有 EHP 下限),选择最强的辅助技能集(引擎测量),显示构建定义的独特物品,并排名下一个升级 — 加上贪婪的被动优化器和 A/B `compare_to`。
> 从头开始构建可产生一个 *抵抗力达到上限、引擎验证* 的构建,可以清除大多数最终游戏内容。绝对的 600k–1M-DPS 极限来自专家原型完美的装备/独特物品和一些 PoB 尚未模拟的机制(例如能量元触发)— 对于这种情况,_build` 一个已建立的构建并使用相同的工具和改进**。
**离线查找** 物品/辅助宝石、词缀、独特物品、被动升华 — 捆绑的 SQLite/FTS 语料库,无需网络。
**合理推理**,是计算:`ice` 和 `explain_mechanic` 提供持久的 PoE2 优化原则和机制参考(参见 [server/BUILD_ADVICE.md](server/BUILD_ADVICE.md)),因此助手知道 *要更改什么*;引擎确认效果。
**保持最新**:实时货币/独特物品价格、库新鲜度检查和一键自我更新。
### 工具集(64 个工具)
*构建/计算 — 真实的 Path of Building *
- `import_build(source)` — PoB、pobb.in/pastebin 链接或原始 XML
- `get_build_stats(keys?)` — 计算出的统计数据(DPS、E抵抗力、生命/能量护盾/法力等)
- `get_build()` / `export_build()` — 完整读取/导出为 PoB 导入代码
- `get_defenses()` — 抵抗力(+超出上限)、EHP 和主动抵抗惩罚假设
- `set_class(class, ascendancy?)` · `set_level(level)` · `set_skill(skill)` · `set_config(…)`
- `add_skill_group(skill)` — 添加一个光环/ Herald/buff(例如 Archmage),它增强构建而不替换主技能
- `equip)` · `unequip)` · `list_config_options(query?)`
- `list_jewel_sockets()` /ewel(raw,` — 列出树宝插槽 / 插槽珠宝
- `apply_combat_profile(tier, …)` — 在一次调用中切换到一个现实的 BOSS 战配置文件(电击/诅咒/充能)
- `evaluate_build(goals)` — 通过数值目标传递/失败 · `compare_to(source)` — A/B 差异
- `pinnacle_readiness(min_dps?, min_ehp?)` —游戏检查清单为门抵抗力 +沌 + EHP- `lists(query?)` /_build()` — 浏览准针对引擎验证的参考构建(仅校- `solve_for(metric, target, lever)`找到达到统计目标所需的大小
- `vers(metric?, unitvers?)` — 按边际增益排名统计;下一个“投资工具
- `list_levers()` — 命名 `solve_for`/`rank_levers` 接受 `search_passives(query?, node_type?)` / `get_passive(node)`
- `alloc_passive(node)` / `dealloc_passive(node)` — 通过 ID 或名称分配/路由,带有增量
- `optimize_passives(metric, points, goals?, require?)` — 贪婪分配:一个统计数据、 `"balanced"` 或加权 `goals`(例如 Life);可以 `require` 节点
- `(slot, metric?,` — 为一个指标或加权的 `goals` 混合物打造最佳插槽稀有物品(伤害+防御);报告每个词缀的可达性(物品等级/等级)+ 工艺努力
- `craft_item(slot, goals?)` — 使用完整的工艺系统打造最佳物品:符文/核心 + 完美(超出池修改)+ 腐蚀,每个引擎都有价值
- `optimize_jewel(metric?, base?,` — 打造最佳稀有珠宝(然后使用 `equip_jewel` 插槽)
- `ports(metric?, goals?)` — 在引擎上测量,选择最佳辅助宝石集
- `rank_upgrades(metric?, goals?)` — 按重新打造增益排名装备(“下一个升级什么”)
- `plan(dps_weight?)` — 计划一个完整的装备最大化伤害,抵抗力达到上限(跨槽)
- `optimize_build(metric?, min_ehp?, levers?, try_uniques?, archetypes?)` — 整体构建优化器:原型种子提交和最大化树 + 装备 + 珠宝 + 辅助技能(执行综合工具无法实现的合成);留下最佳构建加载
- `scaffold_gear(pool?, target_resist?)` — 填充空防御插槽以关闭抵抗力/池差距(基线,不是最佳)
- `new_build()` — 重置为一个空白构建(干净的从头开始)
- `engine_health()` — 引擎 + 安装诊断(活跃度、LuaJIT/树/数据/服务器版本)
*语料库/知识 — 捆绑的 SQLite + FTS,无需引擎:*
- `search_items(query, item_class?)` / `get_item(name_or_id)`
- `find_skills(query?, gem_type?, tag?, color?)` / `get_gem(name_or_id)` / `find_supports_for(skill)`
- `build_advice(topic?)` — 常青构建优化原则
- `explain_mechanic(topic)` — 我们的原则 + 匹配的自动刷新维基页面(归属)
- `search_mechanics(query)` — 全文搜索捆绑的维基机制层级
- `relevant_mechanics()` — 值得阅读的机制,用于 *活跃* 构建 + 引擎损伤诊断
- `search_mods(query, item_tag?, mod_type?)` / `reverse_lookup(stat)`
- `search_uniques(query, item_type?)` / `get_unique(name)`
- `relevant_uniques()` — 与 *活跃构建协同的独特物品 + 珠宝(构建定义装备,稀有物品构建缺少;语料库建议,在引擎上验证)
- `parse_item(text)` — 解析物品的文本 →缀层级(T1=最佳)+ 开前缀/后缀插槽
- `list_ascendancies(character?)` / `corpus_info()`
*实时自我更新 — 网络:*
- `get_prices(query, kind, league?)` — poe2scout 货币/独特物品价格 · `list_price_leagues()`
- `get_meta_builds(league?)` — 实时升华人气(poe.ninja;上下文,不是推荐)
- `lookup_mechanic(topic)` — 从 PoE2 实时获取机制/技能/物品(长尾备用)
- `check_for_updates()` / `apply_updates()` — 拉取验证的引擎 + 语料库版本 `check_data_version()` / `update_corpus(rebuild_from_source?)`
连接附带了一个面向 LLM 的操作指南(通过 MCP `instructions` 通道交付,来自 [server/ASSISTANT_GUIDE.md](server/ASSISTANT_GUIDE.md))和工作流提示(`analyze_build`、`build_from_goal`、`audit_defenses`),以便助手统一使用这些工具。
## 工作原理
两个层级背后有一个 Python 服务器:
- **计算** — 在 LuaJIT 下作为持久的 JSON-RPC 子进程运行的 [PathOfBuilding-PoE2](https://github.com/PathOfBuildingCommunity/PathOfBuilding-PoE2) 分叉(加载游戏数据一次,廉价地回答多个调用)。PoB 固定在发布标签上,并故意在黄金构建测试后更新。
- **知识** — 一个捆绑的、只读的 SQLite/FTS 语料库,从 RePoE/poe2db 构建,以及一个从维基来源的 **机制** 层级(PoE2 维基)。两者都 **无需重新安装** 即可刷新:服务器在启动时拉取验证的语料库 + 引擎,并且调度 CI 作业在语料库实际更改时从上游重建 — 因此游戏数据和机制自动保持最新。
知识代码从不导入计算代码;跨层编排位于 `server/main.py`。参见 [PLAN.md](PLAN.md) 以获取完整设计,[CLAUDE.md](CLAUDE.md) 以获取工程约定。
## 从源代码构建)
先决条件:**Python 3.11+**,**uv** (`python -m pip install uv`),和 **LuaJIT 2.1**(Windows 通过 MSYS2:`pacman mingw-w64-ucrt-x86_64-luajit`;在 `C:\msys64\ucrt64\bin\luajit.exe` 处自动检测,覆盖 `POB_LUAJIT` 环境变量)。然后克隆 git 忽略的 PoB 工作副本(在 [pob/PINNED.md](pob/PINNED.md) 中固定):
```sh
git clone --depth --branch dev \
https://github.com/BuildingCommunity/PathOfBuilding-PoE2.git \
pob/PathOfBuilding-PoE2
```
设置和验证:
```sh
uv sync # 创建虚拟环境,安装依赖项
uv run python -m pipeline.build_corpus # 从 RePoE 构建 data/corpus.sqlite(网络)
uv run pytest # 黄金构建套件(引擎 + 语料库)
uv run python scripts/smoke_mcp_client.py # 完整的 MCP 协议,通过 stdio(所有工具组)
```
`scripts/smoke_*.py` 文件涵盖了每个工具组;`pytest` 是固定的黄金价值回归套件(参见 `tests/`)。在 Windows 上,使用 `PYTHONUTF8=1` 运行 smoke 脚本,以避免某些物品/技能名称的代码页问题(服务器本身不受影响 `uv run r . && uv run mypy server` 进行 lint/type 检查。
要在 Claude Desktop 上从源代码运行,请在 `claude_desktop_config.json` 中添加:
```json
{
"mcpServers": {
"poe2-build": {
"command": "C:\\Users\\<you>\\AppData\\Roaming\\Python\\Python312\\Scripts\\uv.exe",
"args": ["run", "--directory", "W:\\GitHub\\poe2-build-mcp", "python", "-m", "server.main"]
}
}
}
```
## 数据和致谢
游戏数据是 GGG 的知识产权,以 *派生* 数据的形式重新分发,符合既定的社区工具规范 — 感谢 [RePoE 分叉](https://repoe-fork.github.io/poe2/) 和 poe2db。构建数字来自 [PathOfBuilding-PoE2](https://github.com/PathOfBuildingCommunity/PathOfBuilding-PoE2) 社区分叉。机制页面来源于 [PoE2 维基](https://www.poe2wiki.net/),许可 **CC BY-NC-SA 3.0**;它们保存在一个单独的、归属的语料库层级中(每个条目都带有其来源链接 + 许可)。这是一个免费的、非商业的工具,不与 Grinding Gear Games 关联或获得其认可。