Skip to main content
Glama
Path of Building MCP Server

Path of Building MCP Server

by urbanvcode

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
POB_CMDNoCompatible LuaJIT executable; resolved through PATH unless an absolute path is supplied. Not detected from the app.luajit
POB_ARGSNoSpace-separated arguments passed to the Lua process. Overrides the default adapter arguments.
POB_PATHNoPath to the src/ directory of a stock PathOfBuilding checkout. Defaults to the installed PoB app, else ~/Projects/PathOfBuilding/src. POB_FORK_PATH is a legacy alias.
POB_DEBUGNoSet to "true" for verbose Lua bridge logging.false
POB_DIRECTORYNoPath to your PoB builds directory. Defaults to the detected Builds directory.
POB_FORK_PATHNoLegacy alias for POB_PATH, pointing to the src/ directory of a PathOfBuilding checkout.
POE_CACHE_TTLNoTrade API response cache TTL in seconds.300
POB_TIMEOUT_MSNoLua request timeout in milliseconds.30000
POE_SESSION_IDNoYour POESESSID cookie value; required for the find_weighted_trade_items tool.
POB_LUA_ENABLEDNoSet to "true" to enable the Lua bridge.false
POE_TRADE_ENABLEDNoEnable Trade API tools.false
POE_RATE_LIMIT_PER_SECONDNoTrade API requests per second.4

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

You are helping a Path of Exile 1 player through Path of Building (PoB) tools.

START

  • Call profile_get first (once per conversation) and follow its "How to answer" rules: play mode, league, currency, goals, explanation mode. The profile is shared by every AI client and editable in PoB Agent Edition > Options > Agent profile.

  • Then call live_status. In live mode every lua_* tool reads and edits the PoB Agent Edition window the user is looking at, and they see changes immediately. In headless mode, load a build first (list_builds, lua_load_build).

  • Use PoB's numbers (lua_get_stats, get_build_issues, analyze_defenses); don't guess game maths. Mention config assumptions (boss, charges, flasks) when they matter.

DIAGNOSE IN THIS ORDER

  1. Elemental resistances capped (75%+), then chaos resistance.

  2. Survivability: max hit taken per damage type (weakest type), EHP, life/ES pool, suppression/evade/block, ailment immunities (freeze, stun).

  3. Recovery and mana: leech/regen, mana reservation not over-reserved, attribute requirements met.

  4. Damage: main skill DPS, support gems, crit/speed, damage-by-type for scaling choices. Explain each finding with the number and what it means for the player.

PLAYER PROFILE

  • Play mode: trade = buying upgrades is fine (instant buyout only). ssf = Solo Self-Found, no trading: never suggest buying or run trade searches for purchases; suggest crafting, farming and drop targets instead. mixed = give both, labelled [Trade] and [SSF].

  • Hardcore: a death moves the character to softcore for good, so defences come before damage, risky choices are flagged with a safe option, and trade uses the Hardcore league.

  • Explanation mode: teach = explain a PoE1 mechanic the first time it matters (1-3 sentences, compared with PoE2), then profile_mark_learned so it isn't repeated; concise = actions and numbers, one line of why; deep = full mechanics and maths (increased vs more, DPS formula, EHP layers) with PoB's numbers.

  • Use the profile league and currency as defaults for trade tools and budgets. Change the profile (profile_set) only when the player asks or states a fact ("I have 300c", "I'm SSF now").

CHEAP UPGRADES (trade or mixed mode)

  • Use plan_upgrades (league + budget in chaos + focus). It searches instant-buyout listings, simulates each item in the build and ranks by gain per chaos. In live mode results also appear in the Overview > Advisor card.

  • League defaults to the profile league; ask if it is unset (get_leagues). Default budget 50c per item, capped by the currency on hand; respect the user's budget.

  • Present: slot, item, price, DPS %, EHP %, life, resist fixes, warnings, and the trade link.

ATLAS TREE

  • atlas_get (points, mechanics, combined bonuses, share link), atlas_search (node ids + cost), atlas_edit (add/remove/replace/import link). 150 points; explain what each league mechanic does for a PoE1 newcomer. Save the build to keep it.

TRADE RULES (account safety)

  • Instant buyout only. Never whisper, never automate buying, never touch the game client. The user buys by opening the link.

  • Trade requests are rate limited and capped per question; if a tool says the site asked for a pause, tell the user and wait for them to ask again. Don't loop searches.

  • Never ask for or repeat the POESESSID; it is set in PoB Agent Edition > Options.

CHANGING BUILDS

  • Never overwrite the user's build file. Make changes in the window, then live_save_build with a new name such as " - AI ". Save over the original only when asked.

  • Before live_open_build or lua_load_build in live mode, check live_status for unsaved changes and warn the user.

  • After a change, show before/after numbers and switch the window to the relevant tab (live_set_view, e.g. OVERVIEW).

STYLE

  • Default player (unless the profile says otherwise): knows Path of Exile 2, new to Path of Exile 1. Explain PoE1 terms and systems (atlas, maps, gem links, flasks, pantheon, cluster jewels, crafting bench...) at the depth the explanation mode asks for, relate them to PoE2 and point out where PoE1 differs.

  • Plain language, numbers first, short lists. Say what is unknown or not verified.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{}
resources
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
profile_getA

Read the player profile FIRST in every conversation: play mode (trade / SSF / mixed), hardcore or softcore, league, currency on hand, goals, PoE experience, explanation mode (Teach / Concise / Deep dive) and topics already explained. Returns rules for how to answer. Shared by every AI client and PoB Agent Edition (Options > Agent profile).

profile_setA

Change the player profile when the player asks or states a fact ("I'm playing SSF now", "I have 300 chaos", "explain less"). Only the given fields change. The league is checked against pathofexile.com. PoB's Overview header updates within seconds.

profile_mark_learnedA

Teach mode memory: after explaining a PoE1 mechanic to the player, record the topic (short name, e.g. 'pantheon', 'more vs increased', 'cluster jewels') so it isn't explained again in later conversations.

analyze_buildB

Analyze a Path of Building build file and extract detailed information including stats, skills, gear, passive skill tree analysis with keystones, notables, jewel sockets, build archetype detection, and optimization suggestions

compare_buildsA

Compare two Path of Building builds side by side

list_buildsA

List all available Path of Building builds

get_build_statsC

Extract specific stats from a build (Life, DPS, resistances, etc.)

start_watchingA

Start monitoring the builds directory for changes. Builds will be auto-reloaded when saved in PoB.

stop_watchingA

Stop monitoring the builds directory for changes.

get_recent_changesB

Get a list of recently changed build files.

watch_statusA

Check if file watching is currently enabled.

refresh_tree_dataA

Force refresh the passive skill tree data cache. Use this if tree data seems outdated.

compare_treesA

Compare passive skill trees between two builds, showing differences in allocated nodes

get_nearby_nodesA

Find notable and keystone passives near your current tree allocation. Uses loaded Lua bridge build when no build_name is provided.

find_path_to_nodeA

Find the shortest path from your current tree to a specific passive node. Uses loaded Lua bridge build when no build_name is provided.

get_build_notesA

Read the notes/documentation from a PoB build file

set_build_notesA

Write notes/documentation into a PoB build file (overwrites existing notes)

classify_item_affixesA

Resolve an item's explicit mod lines back to the affixes that produced them, using Path of Building's ModExplicit (legacy ModItem) and ModMaster tables. Reports matched prefix and suffix counts, remaining slots when the classification is complete and unambiguous, affix ranges and minimum item levels, and which lines belong to one hybrid affix. USE THIS BEFORE recommending any craft or reroll: one affix can print several lines, and counting those lines separately inverts the answer (a hybrid energy shield prefix also prints stun recovery, which reads like a suffix). LIMITS: explicit mods only. Unmatched lines may be unrecognized explicit affixes that still occupy slots. Remaining slots are reported as unknown when any lines are unmatched or ambiguous. An item whose lines admit more than one reading is flagged as ambiguous rather than guessed. Slot counts assume a rare, which holds three prefixes and three suffixes; a magic item holds one of each.

list_craftable_modsA

List the crafting bench mods an item class can take at a given item level, from Path of Building's ModMaster table. Use it to answer 'what can I put in the open suffix', and to say what a higher item level would unlock. A craft occupies a slot of its own type, so check the type of the affix being replaced, not only the one being added. LIMITS: bench crafts only, no essences, fossils or veiled mods, and no metacrafting. It does not know what the item already has, so pair it with classify_item_affixes.

find_affix_tiersA

Look up every tier of a rollable affix in Path of Building's ModExplicit table (ModItem on older installs): prefix or suffix, minimum item level, the value range per entry, and the base tags it can roll on. Displays affix names and item levels without inventing T1/T2 labels from filtered result order. Use it to price an affix before pricing an item, since a top-tier rare suffix often replaces a costly unique built around the same stat. LIMITS: slot filtering uses PoB's base tags, not slot names. Body armour bases carry str_armour / dex_armour / int_armour and their hybrids; influenced variants add a suffix like _elder or _shaper; a plain 'armour' tag exists too and does not cover the attribute-specific ones. Pass several tags when unsure. Mods whose spawn weights are all zero are excluded unless include_unobtainable is set.

analyze_defensesA

Deep-dive into defensive layers (avoidance/mitigation/recovery): EHP, spell suppression, evasion, block, armour/PDR, life regen, leech. Use this when you specifically want detailed defense breakdown. validate_build already covers this — only call analyze_defenses separately if you need more defensive detail than validate_build provides.

suggest_optimal_nodesC

AI-powered suggestion of optimal passive nodes based on build goals

optimize_treeC

Full passive tree optimization - removes inefficient nodes and reallocates to better options

analyze_itemsB

Analyze equipped items and suggest upgrades or improvements

optimize_skill_linksA

Analyze skill gem setups for 'more' multipliers, penetration, and support gem synergies. Flags missing multiplicative damage supports and suggests clear-speed vs bossing balance.

create_budget_buildC

Create a league-start/budget-friendly version of a build

validate_buildA

Comprehensive build validation: resistances, life pool, defensive layers (avoidance/mitigation/recovery), mana sustain, accuracy, flask immunities, damage scaling. Provides prioritized critical/warning/info recommendations. PREFER this over get_build_issues + analyze_defenses — it covers both in one call. Do not call all three.

export_buildA

Export a copy of a build to an XML file. Creates a variant/copy from an existing build file. NOTE: This does NOT export from Lua bridge - use save_tree to apply Lua bridge modifications back to files.

save_treeA

Update only the passive tree in an existing build file. Use this to apply tree optimizations or Lua bridge modifications back to the original build.

snapshot_buildA

Create a versioned snapshot of a build for easy rollback. Snapshots are stored separately with metadata tracking stats and changes.

list_snapshotsA

List all snapshots for a build with metadata and stats

restore_snapshotA

Restore a build from a snapshot. Optionally creates a backup of current state before restoring.

export_build_summaryA

Generate a clean markdown summary of the loaded build suitable for sharing on Reddit, Discord, or as build documentation

analyze_skill_linksB

Analyze skill gem setup and evaluate support gem choices. Detects build archetype, rates each support gem, and identifies issues with current setup.

suggest_support_gemsB

Get intelligent support gem recommendations based on build archetype. Provides ranked suggestions with DPS estimates, cost, and reasoning.

compare_gem_setupsA

Compare multiple gem configurations side-by-side to evaluate different options. NOTE: Full DPS comparison requires Lua bridge integration (future enhancement).

validate_gem_qualityC

Check all gems for quality and level improvements. Identifies missing quality, Exceptional upgrade opportunities, and corruption targets.

find_optimal_linksC

Auto-generate the best support gem combination for a skill based on budget and optimization goal. Provides step-by-step upgrade path.

gem_upgrade_pathA

Generate a prioritized gem upgrade shopping list showing which gems to level, quality, and upgrade to Exceptional versions, ordered by impact and budget

get_currency_ratesA

Get current currency exchange rates from poe.ninja. Returns real-time market prices for all currencies in Chaos Orb equivalent. Updated every 5 minutes from live trading data. IMPORTANT: Use the EXACT league name the user specifies - do not substitute or guess.

find_arbitrageA

Find currency arbitrage opportunities - profitable trading loops where you can trade currencies in a circle and end up with more than you started. Uses real-time poe.ninja rates to identify market inefficiencies. Perfect for making passive income through currency trading. IMPORTANT: Use the EXACT league name the user specifies - do not substitute or guess.

calculate_trading_profitA

Calculate the profit/loss from a specific trading chain. Useful for testing your own trading strategies or validating arbitrage opportunities before executing them. Shows step-by-step conversion rates. IMPORTANT: Use the EXACT league name the user specifies - do not substitute or guess.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.4/5.0

Scored across 42 tools

Disambiguation3/5

Several clusters overlap heavily: analyze_build/get_build_stats/validate_build/analyze_defenses, and analyze_skill_links/optimize_skill_links/suggest_support_gems/find_optimal_links/compare_gem_setups/gem_upgrade_path. Descriptions do provide explicit guidance (e.g. 'PREFER validate_build over get_build_issues + analyze_defenses'), which helps, but an agent can still easily misselect within the gem and build-analysis groups.

Naming Consistency4/5

Most tools follow a clear snake_case verb_noun pattern (analyze_build, compare_builds, list_snapshots, restore_snapshot). Minor deviations exist: profile_get/profile_set/profile_mark_learned use noun_verb, and watch_status/gem_upgrade_path are noun phrases, but the overall convention is readable and predictable.

Tool Count2/5

42 tools is heavy for this server, and many are near-duplicates within the gem, tree, and build-analysis areas. While the PoB domain is broad, the surface feels over-expanded rather than each tool earning a distinct place.

Completeness4/5

Coverage is strong across build reading/analysis, passive tree, items/crafting, gems, trading, profile, snapshots, and file watching. Minor gaps remain: no delete/cleanup for builds or snapshots, no from-scratch build creation, and no direct trade-search or item-pricing tool beyond affix lookup.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues