Skip to content

Releases: zgrummons/pob2-mcp

v0.2.2

Choose a tag to compare

@zgrummons zgrummons released this 06 Jul 03:13
4225cea

Fix: passive-tree pathing tools were using PoE1 data

find_path_to_node, get_nearby_nodes, optimize_tree, and compare_trees fetched the PoE1 passive tree (PathOfBuilding repo, version 3_26) and fell back to it for PoE2 builds — so they couldn't locate PoE2 keystones (e.g. Mind Over Matter 45918, Eldritch Battery 57513) and mis-planned paths. (update_tree_delta and the lua_* read tools were unaffected — they use the live engine bridge.)

Now reads tree data from the local PathOfBuilding-PoE2 checkout (POB_FORK_PATH/TreeData/<version>/tree.json), matching the engine's tree exactly and tracking checkout updates. Connections are symmetrized so BFS reaches keystones. Verified against the real 0_5 tree (4,914 nodes; path to 45918 found); 273 tests pass.

Full changelog: v0.2.1...v0.2.2

v0.2.1

Choose a tag to compare

@zgrummons zgrummons released this 06 Jul 01:52
45ee067

Fix: bridge failed to launch under an arbitrary working directory

resolvePobApiDir() effectively anchored on process.cwd(), so MCP clients that spawn the server with cwd=C:\WINDOWS\system32 (e.g. Claude Desktop) resolved the bootstrap script to a non-existent path and luajit exited 1 (cannot open …\pob-api\bootstrap.lua) on every lua_start / load / save.

Now anchored on the entry script (process.argv[1]), which is cwd-independent. Verified by launching the bridge from C:\WINDOWS\system32; 270/270 tests pass.

Full changelog: v0.2.0...v0.2.1

v0.2.0

Choose a tag to compare

@zgrummons zgrummons released this 06 Jul 00:21
11e7b9f

Vendored api-stdio bridge — runs against a vanilla PoB checkout

The headless PoB bridge is now vendored in this repo at pob-api/ (bootstrap.lua, API/{Server,Handlers,BuildOps}.lua, utf8.lua) and driven via an external bootstrap.lua. No more patching PathOfBuilding-PoE2 — point POB_FORK_PATH at any compatible upstream checkout.

Added engine actions

save_build, socket-group and gem enable/disable toggles, mastery options, and passive-tree spec + item-set management (create/list/select/delete/rename specs; list/select item sets).

Bridge changes

  • Launches luajit <pob-api>/bootstrap.lua with cwd = POB_FORK_PATH; resolves pob-api/ in both ESM and ts-jest/CommonJS contexts.
  • Drops POB_API_STDIO so a legacy patched fork can't hijack with a divergent server — the vendored files stay canonical.

Verification

tsc clean; 270/270 unit tests pass; end-to-end verified through the compiled Node bridge and against a vanilla HeadlessWrapper.lua.

Full changelog: v0.1.0...v0.2.0

v0.1.0

Choose a tag to compare

@zgrummons zgrummons released this 06 Jul 00:03

First release of the Path of Building PoE2 MCP server — a port of pob-mcp (PoE1). This snapshots main prior to the pob-api vendoring work (PR #1).

Highlights

  • High-fidelity calculations via a headless luajit PoB engine over an api-stdio JSON bridge: live stats (incl. Spirit), tree get/set, item/skill/config ops, what-if calc.
  • XML build analysis (list/analyze/compare builds, tree paths & nearby notables, file watching).
  • PoE2-native additions: list_gems (PoB2 gem database), get_classes, retuned defensive analyzer and validate_build for PoE2 mechanics (evade/block/deflect, Spirit, charms).
  • poe.ninja currency tools on the PoE2 economy endpoint; optional Trade API (POE_TRADE_ENABLED=true).

Status

MVP / port. The Lua bridge foundation is verified working against the PoE2 engine; the TypeScript server is the PoE1 server with PoE2-aware wiring. Some PoE1-shaped legacy tools remain opt-in.

Setup

Requires LuaJIT and a PathOfBuilding-PoE2 checkout — see the README. Note: this release still uses the patched-fork bridge setup; the vendored pob-api/ approach (run against a vanilla checkout) lands in PR #1.

Verification at this commit

270/270 unit tests passing.