Skip to main content
Glama

Path of Building MCP Server — PoE2

An MCP (Model Context Protocol) server that enables Claude to analyze, modify, and optimize Path of Exile 2 builds using Path of Building's actual calculation engine, via the PathOfBuilding-PoE2 fork.

It is a port of pob-mcp (PoE1) to PoE2. The high-fidelity calculation half is driven by a headless luajit process running an api-stdio JSON bridge, vendored in this repo at pob-api/ and run against an unmodified PathOfBuilding-PoE2 checkout.

PoE2 specifics

  • Engine-backed tools to prefer: analyze_skills, suggest_supports (incl. measure_dps), list_gems, get_classes — all sourced from the PoB2 engine. list_gems queries Path of Building's own PoE2 gem database (skill + support gems, tags, gem family, requirements, max level). The defensive analyzer and validate_build are tuned for PoE2 mechanics (evade/block/deflect, Spirit, charms; no spell suppression).

  • On by default: poe.ninja currency tools on the PoE2 economy endpoint (POE_NINJA_DISABLED=true to hide).

  • Opt-in: legacy PoE1-shaped skill-gem tools (analyze_skill_links, suggest_support_gems, find_optimal_links, validate_gem_quality, compare_gem_setups, gem_upgrade_path) via POB_LEGACY_GEM_TOOLS=true; Trade API (PoE2 trade2 endpoints) via POE_TRADE_ENABLED=true.


Features

Build Analysis (Always Available)

  • List & Analyze Builds: Browse builds and extract stats, skills, items, passive trees, and notes from XML

  • Compare Builds: Side-by-side build comparison

  • File Watching: Real-time detection of builds saved from PoB with automatic cache invalidation

  • Tree Analysis: Compare passive trees, find paths to nodes, discover nearby notables, what-if allocation testing

High-Fidelity Calculations (Lua Bridge)

  • Live Stats: Accurate stat calculation using PoB's own engine — identical to what PoB GUI shows

  • Build Loading & Creation: Load existing builds or create new ones from scratch by class/ascendancy

  • Passive Tree Editing: Set full tree allocation and see immediate stat recalculation

  • Node Search: Search the passive tree for nodes by name or stat text

  • Character Level: Set level and watch all stats update accordingly

Item & Skill Management (Lua Bridge)

  • Items: Add items from PoE clipboard text, view all equipped gear

  • Flasks: Toggle flasks active/inactive with immediate stat feedback

  • Skills: Full gem management — create socket groups, add/remove/level/quality gems

  • Batch Operations: setup_skill_with_gems and add_multiple_items for efficient workflows

Build Optimization (Lua Bridge)

  • Defensive Analysis: 3-layer framework (avoidance / mitigation / recovery) — evaluates EHP, spell suppression, armour/PDR, evasion, block, life regen, and leech

  • Node Suggestions: Archetype-aware suggestions by goal (damage, life, ES, defense, resist)

  • Tree Optimization: Recommend nodes within reach of the current allocation

  • Item Upgrade Analysis: Slot-by-slot upgrade recommendations based on live stats

  • Skill Link Optimization: Detect missing "more" multipliers, penetration gaps, anti-synergies

  • Budget Build Creation: Generate starter build plans with skill links, gearing strategy, and passive priorities

Build Validation

  • Comprehensive Checks: Resistances, life pool, defensive layers, mana, flask immunities, accuracy, damage scaling

  • Severity Classification: Critical / Warning / Info with actionable suggestions

  • Dual Source: Uses Lua bridge stats when available, falls back to XML parsing

  • Overall Score: 0–10 build health score

Configuration & Scenario Testing (Lua Bridge)

  • Config State: View bandit, pantheon, enemy settings

  • Toggle Conditions: Charges, buffs (Onslaught, Fortify, Leeching), boss mode

  • Enemy Tuning: Set enemy level, resistances, armour, evasion for boss DPS testing

Skill Gem Analysis

  • Archetype Detection: Classify builds (Elemental Bow Attack, Summoner, Critical Spell, etc.)

  • Support Gem Recommendations: Ranked suggestions with DPS estimates and cost context

  • Quality Validation: Identify missing quality, awakened upgrade paths, corruption targets

  • Optimal Links: Auto-generate best support gem combinations for 4/5/6-link setups

  • Budget Tiers: League-start, mid-league, and endgame recommendations

Build Export & Persistence

  • Export: Copy builds to XML files with optional notes

  • Save Tree: Write optimized passive tree back to an existing build file

  • Snapshots: Versioned build history with tags, stat metadata, and one-click rollback

Currency & Market Data (poe.ninja)

  • Exchange Rates: Real-time currency prices in Chaos Orb equivalent

  • Arbitrage Detection: Find profitable currency trading loops

  • Trade Profit Calculator: Evaluate custom trading chains

Trade API (Optional, POE_TRADE_ENABLED=true)

  • Item Search: Search trade with stat filters, price range, link count

  • Price Checking: Min/max/median/average from recent listings

  • Upgrade Finder: Identify best item upgrade candidates for your build

  • Resistance Gear: Find affordable gear to cap resistances

  • Cluster Jewels: Search and analyze cluster jewel setups

  • Shopping List: Generate a prioritized shopping list from build analysis


Related MCP server: codex-cli-mcp-tool

Installation

cd pob-mcp
npm install
npm run build

Configuration

Claude Desktop Configuration

Mac: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

XML-Only (No Lua Bridge)

{
  "mcpServers": {
    "pob": {
      "command": "node",
      "args": ["/absolute/path/to/pob-mcp-server/build/index.js"],
      "env": {
        "POB_DIRECTORY": "/path/to/your/Path of Building/Builds"
      }
    }
  }
}

Full Configuration (With Lua Bridge)

{
  "mcpServers": {
    "pob": {
      "command": "node",
      "args": ["/absolute/path/to/pob-mcp-server/build/index.js"],
      "env": {
        "POB_DIRECTORY": "/path/to/your/Path of Building/Builds",
        "POB_LUA_ENABLED": "true",
        "POB_FORK_PATH": "/path/to/PathOfBuilding/src",
        "POB_CMD": "/usr/local/bin/luajit",
        "POB_TIMEOUT_MS": "10000"
      }
    }
  }
}

Environment Variables

Variable

Default

Description

POB_DIRECTORY

OS-default Builds dir

Path to your PoB builds directory

POB_LUA_ENABLED

false

Set "true" to enable Lua bridge

POB_FORK_PATH

~/Projects/PathOfBuilding-PoE2/src

Path to PathOfBuilding-PoE2/src

POB_CMD

luajit

LuaJIT binary path

POB_TIMEOUT_MS

10000

Lua request timeout (ms)

POE_TRADE_ENABLED

false

Enable Trade API tools (PoE2 trade2 endpoints — Cloudflare/session-gated, see below)

POE_SESSION_ID

Your POESESSID cookie — required for most Trade API calls (Cloudflare/auth)

POE_TRADE_BASE

…/api/trade2

Override the trade API base path if GGG changes it

POE_TRADE_USER_AGENT

pob2-mcp-server/0.1 …

Descriptive contactable User-Agent for trade requests

POE_NINJA_DISABLED

false

Set "true" to hide poe.ninja tools (ported to the PoE2 economy endpoint; on by default)

POB_LEGACY_GEM_TOOLS

false

Expose the legacy PoE1 skill-gem tools (⚠️ PoE1 gem model; prefer the engine-backed gem tools)

Setting Up the Lua Bridge

The Lua bridge uses PoB's actual calculation engine for accurate stats.

1. Install LuaJIT

# macOS
brew install luajit

# Ubuntu/Debian
sudo apt-get install luajit

# Windows: download from https://luajit.org/ and add to PATH

2. Get a PathOfBuilding-PoE2 checkout (no patching required)

The api-stdio bridge is now vendored inside this repo at pob-api/ (pob-api/bootstrap.lua, pob-api/API/{Server,Handlers,BuildOps}.lua, pob-api/utf8.lua). The server launches luajit pob-api/bootstrap.lua with the working directory set to PoB's src/, so it drives an unmodified PathOfBuilding-PoE2 checkout — you no longer patch HeadlessWrapper.lua or copy files into the PoB tree.

Point POB_FORK_PATH at the src/ directory of any compatible PathOfBuilding-PoE2 checkout (the sibling PathOfBuilding-PoE2/ works, as does a clean upstream clone). "Compatible" means a version whose internals pob-api/API/BuildOps.lua expects; a wildly newer/older PoB may drift.

3. Verify

luajit -v
ls "$POB_FORK_PATH/Launch.lua"        # PoB src (must exist)
ls pob-api/bootstrap.lua              # vendored bridge entry (must exist)

4. Update Claude Desktop config and restart Claude Desktop


Available Tools

The server registers 91 tools across 10 categories.

XML-Based Tools (Always Available)

Tool

Description

list_builds

List all .xml build files

analyze_build

Full build summary: class, stats, skills, items, tree

compare_builds

Side-by-side build comparison

get_build_stats

Extract raw stats from build XML

get_build_notes

Get build notes from XML

set_build_notes

Set build notes in XML

start_watching

Monitor builds directory for changes

stop_watching

Stop file monitoring

watch_status

Show watching status and cache info

get_recent_changes

List recently modified builds

refresh_tree_data

Clear passive tree data cache

Tree Analysis Tools (Always Available)

Tool

Description

compare_trees

Show node differences between two builds

get_nearby_nodes

Find notables/keystones reachable from current allocation

find_path_to_node

Shortest path to a target node ID

get_passive_upgrades

Suggest passive tree upgrades

suggest_masteries

Suggest mastery choices for allocated clusters

Lua Bridge — Core (Require POB_LUA_ENABLED=true)

Tool

Description

lua_start

Start the PoB calculation engine (stdio or TCP)

lua_stop

Stop the engine and free resources

lua_new_build

Create a blank build for a given class/ascendancy

lua_load_build

Load a build file into the engine

lua_save_build

Save the current in-memory build to a .xml file

lua_reload_build

Reload the current build from disk

lua_get_build_info

Get current build metadata (class, level, etc.)

set_character_level

Set level and recalculate all stats

lua_get_stats

Get calculated stats (category: offense/defense/all)

lua_get_tree

View passive tree: class, ascendancy, all allocated node IDs

lua_set_tree

Replace passive tree allocation (preserves class if omitted)

update_tree_delta

Add/remove individual nodes without replacing entire tree

search_tree_nodes

Search passive tree by name or stat text

list_specs

List all tree specs in the current build

select_spec

Switch active tree spec

create_spec

Create a new tree spec

delete_spec

Delete a tree spec

rename_spec

Rename a tree spec

list_item_sets

List all item sets in the current build

select_item_set

Switch active item set

plan_leveling

Generate a leveling plan for a build

lua_set_tree class IDs (PoE2): 1=Witch, 2=Ranger, 6=Warrior, 7=Sorceress, 8=Huntress, 9=Mercenary, 10=Monk, 11=Druid. Call get_classes for the live list (classes/ascendancies can change between PoE2 patches).

Ascendancy IDs (PoE2) — per class, e.g. Witch: 1=Infernalist, 2=Blood Mage, 3=Lich, 4=Abyssal Lich; Monk: 1=Martial Artist, 2=Invoker, 3=Acolyte of Chayula. Use get_classes for the full, current mapping.

lua_save_build is required before using file-based tools (validate_build, analyze_build, etc.) on an in-memory build.

Lua Bridge — Item & Skill Management

Tool

Description

add_item

Add item from PoE clipboard text to a slot

add_multiple_items

Add multiple items in one operation

get_equipped_items

List all equipped gear with name, base, and rarity

toggle_flask

Activate/deactivate flask 1–5; returns updated stats

get_skill_setup

Show all socket groups with gems, levels, and quality

set_main_skill

Set which group/gem is used for DPS calculations

create_socket_group

Create a new socket group (label, slot, enabled)

add_gem

Add a gem to a socket group (name, level, quality)

set_gem_level

Set gem level by group + gem index

set_gem_quality

Set gem quality (Default/Anomalous/Divergent/Phantasmal)

remove_gem

Remove a gem by group + gem index

remove_skill

Remove an entire socket group

setup_skill_with_gems

Create a socket group with active gem + supports in one call

Slot names: Weapon 1, Weapon 2, Helmet, Body Armour, Gloves, Boots, Amulet, Ring 1, Ring 2, Belt, Flask 1Flask 5

Lua Bridge — Build Optimization

Tool

Description

analyze_defenses

3-layer defensive audit: avoidance / mitigation / recovery

suggest_optimal_nodes

Archetype-aware node suggestions by goal

optimize_tree

Recommend nearby nodes to allocate for a goal

analyze_items

Slot-by-slot item analysis with upgrade priorities

optimize_skill_links

Audit supports: "more" multipliers, penetration, anti-synergies

create_budget_build

Generate a starter build plan for a class/skill/budget

get_build_issues

Get prioritized list of build problems and suggestions

check_boss_readiness

Evaluate readiness for specific boss encounters

suggest_watchers_eye

Suggest Watcher's Eye mods for the build's auras

suggest_optimal_nodes goals: damage, defense, life, es, resist, speed

Defensive layers:

  • Avoidance — evasion, spell suppression, dodge, block

  • Mitigation — armour/PDR, endurance charges

  • Recovery — life regen (≥1%/s), leech, ES recharge

A build with all 3 layers is considered exceptional.

Configuration & Enemy Settings

Tool

Description

get_config

View bandit, pantheon, and enemy settings

set_config

Toggle charges, buffs, conditions (e.g. usePowerCharges, enemyIsBoss)

set_enemy_stats

Set enemy level, resistances, armour, evasion for DPS scenarios

save_config_preset

Save current config as a named preset

load_config_preset

Load a saved config preset

list_config_presets

List all saved config presets

Build Validation

Tool

Description

validate_build

Check resistances, life, defensive layers, mana, immunities, accuracy, damage scaling

Returns critical issues, warnings, and info with actionable suggestions and an overall 0–10 health score. Uses Lua bridge stats when available; falls back to XML parsing. build_name is optional — omitting it validates the currently loaded Lua bridge build.

Skill Gem Analysis (PoE2, engine-backed — preferred)

Tool

Description

analyze_skills

Engine-truth breakdown of each socket group: active skill + supports, flags tag-mismatched supports, empty/disabled/unknown gems

suggest_supports

Compatible supports for a group's active skill from PoB2's gem DB; ranked by tag relevance, or by real measured DPS with measure_dps=true

list_gems

Query PoB2's authoritative gem database (active/support, tags, family, requirements, max level)

get_classes

PoE2 classes + ascendancy IDs from the engine

Legacy PoE1 gem tools (not registered by default)

analyze_skill_links, suggest_support_gems, validate_gem_quality, compare_gem_setups, find_optimal_links, gem_upgrade_path use a hand-coded PoE1 gem DB / archetype templates and a 6-link + Awakened-gem model that does not match PoE2. They are disabled by default; set POB_LEGACY_GEM_TOOLS=true to expose them. Prefer the engine-backed tools above.

Build Export & Persistence

Tool

Description

export_build

Copy a build to a new XML file with optional notes

save_tree

Write passive tree back to an existing build file

snapshot_build

Create a versioned snapshot with description and tag

list_snapshots

List all snapshots for a build

restore_snapshot

Restore from a snapshot (auto-backs up current state)

export_build_summary

Export a human-readable build summary

Snapshots are stored in POB_DIRECTORY/.pob-mcp/snapshots/.

Note: export_build copies from the XML file, not from the Lua bridge. Use lua_save_build first if you want to export in-memory changes.

Currency & Market Data (poe.ninja)

Tool

Description

get_currency_rates

Live PoE2 currency exchange rates (Exalted Orb equivalent)

find_arbitrage

Detect profitable currency trading loops (see note)

calculate_trading_profit

Evaluate a specific trading chain

Sourced from the PoE2 poe.ninja economy endpoint (/poe2/api/economy/exchange/current/overview?league=<League>&type=Currency), cached 5 min. Live-verified. Pass the exact, case-sensitive PoE2 league name (e.g., Runes of Aldur, Standard). Values are in Exalted Orb equivalent (PoE2's base currency), not Chaos.

Note: the PoE2 currency-exchange feed exposes a single value per currency (no separate buy/sell spread), so find_arbitrage generally returns nothing — round-trips evaluate to ~0% profit. get_currency_rates and calculate_trading_profit are the useful tools here.

Trade API Tools (Require POE_TRADE_ENABLED=true)

Ported to the PoE2 trade2 endpoints (https://www.pathofexile.com/api/trade2). Stat IDs and leagues are fetched from this base, so the stat mapper picks up PoE2 trade stats automatically.

Heads up: the official trade API is behind Cloudflare and most endpoints require a logged-in session — set POE_SESSION_ID to your POESESSID cookie. It is also strictly rate-limited. Verified working server-side (search→fetch through Cloudflare with only POE_SESSION_ID set). Note POESESSID expires periodically; refresh it if you start getting 401/403s.

Tool

Description

search_trade_items

Search trade with stat filters, price range, link count

get_item_price

Price statistics (min/max/median/average) for an item

get_leagues

List available leagues

search_stats

Look up Trade API stat IDs

find_item_upgrades

Identify best upgrade candidates for your build

find_resistance_gear

Find affordable gear to cap specific resistances

compare_trade_items

Compare multiple trade listings side by side

search_cluster_jewels

Search for cluster jewels by notable

analyze_build_cluster_jewels

Evaluate cluster jewel setups for a build

generate_shopping_list

Generate a prioritized shopping list from build analysis


Typical Workflows

Analyze an existing build

1. lua_start
2. lua_load_build (build_name: "MyBuild.xml")
3. lua_get_stats (category: "defense")
4. validate_build
5. analyze_defenses (build_name: "MyBuild.xml")

Build from scratch

1. lua_start
2. lua_new_build (class_name: "Witch", ascendancy: "Necromancer")
3. setup_skill_with_gems (active_gem: "Summon Skeletons", support_gems: [...])
4. lua_set_tree (nodes: [...])
5. lua_get_stats
6. lua_save_build (build_name: "MySummoner.xml")

Optimize passive tree

1. lua_load_build (build_name: "MyBuild.xml")
2. suggest_optimal_nodes (goal: "life", points_available: 5)
3. search_tree_nodes (query: "maximum life")
4. lua_get_tree   ← copy current node list
5. lua_set_tree   ← add new nodes to the list
6. lua_get_stats  ← verify improvement
7. lua_save_build ← persist

Test DPS against Shaper

1. lua_load_build
2. set_enemy_stats (level: 84, fire_resist: 40, cold_resist: 40, lightning_resist: 40)
3. set_config (config_name: "enemyIsBoss", value: true)
4. lua_get_stats (category: "offense")

Troubleshooting

XML Features

No builds found

  • Verify POB_DIRECTORY is correct and contains .xml files

  • Check file permissions

Parse errors

  • Open the build in PoB GUI to verify it isn't corrupted

  • Ensure PoB is up to date

Lua Bridge

luajit command not found

brew install luajit          # macOS
sudo apt-get install luajit  # Ubuntu/Debian

Or set POB_CMD to the full path (e.g., /opt/homebrew/bin/luajit).

Failed to find valid ready banner POB_FORK_PATH must point to a PathOfBuilding-PoE2 src/ directory:

ls "$POB_FORK_PATH/Launch.lua"   # must exist (PoB src)
ls "$POB_FORK_PATH/Modules/"     # must exist
ls pob-api/bootstrap.lua         # vendored bridge entry (must exist)

Timed out waiting for response

  • Increase POB_TIMEOUT_MS (try 20000)

  • Test manually: cd "$POB_FORK_PATH" && luajit /abs/path/to/pob-api/bootstrap.lua

Stats don't match PoB GUI

  • Check bandit/pantheon/enemy settings with get_config

  • Ensure the correct tree spec is active in the XML

  • Make sure your PathOfBuilding fork is on the api-stdio branch and up to date

Bridge becomes unresponsive

lua_stop → wait a moment → lua_start

If still unresponsive, restart Claude Desktop.

Nodes dropped after lua_set_tree Nodes must form a valid connected path from the class starting node. Disconnected nodes are silently dropped by PoB. Ensure all intermediate nodes are included.

lua_save_build doesn't persist gem changes Gem modifications made via add_gem, set_gem_level, set_gem_quality are currently held in Lua memory and are not serialized back to the XML on save. This is a known limitation.


Development

npm run build   # compile TypeScript
npm run dev     # watch mode

Path of Building XML Structure

PoB builds are XML files with:

  • <Build>: Character info and stats

  • <Tree>: Passive skill tree node allocations

  • <Skills>: Socket groups and gem links

  • <Items>: Equipped items

  • <Notes>: Build notes

Contributing

Issues and pull requests are welcome!

Contributors

License

GPL-3.0

Available Tools

30 tools
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

ParametersJSON Schema
NameRequiredDescriptionDefault
build_nameYesName of the build file (e.g., 'MyBuild.xml')

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It lists the types of information extracted but does not state whether the operation has side effects, requires specific permissions, or how it handles missing or invalid files. The read-only nature is implied but not explicitly stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the action and lists the key outputs. It is somewhat long but information-dense, with no wasted words. The structure is appropriate for the tool's broad scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is complex with many output categories, and there is no output schema or annotations to supplement the description. The description lists the types of information extracted, but does not explain the return format, potential errors, or how to interpret the results. While adequate for a basic understanding, it leaves gaps for a user needing to know what to expect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the parameter is well-documented in the schema. The description adds no additional meaning about the build_name parameter beyond what the schema provides, meeting the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Analyze a Path of Building build file and extract detailed information.' It specifies the resource (build file) and the scope (stats, skills, gear, passive tree, keystones, etc.), which distinguishes it from sibling tools by covering a comprehensive analysis rather than a single metric.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like get_build_stats or analyze_defenses. It does not mention any exclusions, prerequisites, or contexts where a different tool would be more appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
build_nameYesBuild to analyze

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral transparency burden. It clearly implies a read-only analysis operation through terms like 'deep-dive' and 'breakdown', and adds important context about how this tool relates to validate_build. It does not disclose potential cost or side effects, but for a read-only analysis tool this is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences long, front-loaded with the tool's purpose and key defensive categories, then includes usage guidance and an alternative. Every sentence provides distinct value with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has one parameter, no output schema, and no annotations, so the description must carry the load. It adequately explains the tool's scope and relationship to validate_build. However, it could optionally describe the expected return format (e.g., a breakdown report) to be fully complete, but the listed defensive layers imply what will be returned. Overall, it is sufficiently complete for an analysis tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: the single parameter build_name is documented as 'Build to analyze'. The description does not add any additional detail about the parameter, so it does not exceed the schema baseline. A score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool performs a deep-dive into defensive layers, explicitly listing defensive metrics (EHP, spell suppression, evasion, block, armour/PDR, life regen, leech). It distinguishes itself from the sibling tool validate_build by noting that validate_build already covers this and analyze_defenses is for more detailed breakdowns.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance: 'Use this when you specifically want detailed defense breakdown.' It also names the alternative (validate_build) and explains when NOT to use this tool separately, which is exactly what the dimension requires.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

analyze_itemsB

Analyze equipped items and suggest upgrades or improvements

ParametersJSON Schema
NameRequiredDescriptionDefault
build_nameYesBuild to analyze

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden of disclosing behavior. It implies a read-only analysis ('suggest upgrades') but does not explicitly state that no changes are made, what output format is returned, or whether it requires a valid saved build. This leaves significant ambiguity for an agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence with no redundant words. It is front-loaded and immediately conveys the core purpose and scope. Concise yet sufficiently informative for what it covers.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one required parameter, no output schema), the description covers the basic function but omits key context. It does not describe the return value, the type of upgrade suggestions, or any side effects or permissions. This is a minimally viable description but leaves gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents the single parameter 'build_name' with a minimal description ('Build to analyze'). Since schema coverage is 100%, the tool description adds no additional parameter semantics. It doesn't clarify format, constraints, or how the build is selected.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action ('Analyze') on a specific resource ('equipped items') with an intended outcome ('suggest upgrades or improvements'). It distinguishes itself from sibling tools like analyze_build and analyze_defenses by focusing on equipped gear, though it doesn't explicitly contrast with them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives. The description only states what it does, and does not mention prerequisites, exclusions, or cases where another analysis tool would be more appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
leagueYesEXACT league name as specified by user (e.g., 'Standard', 'Settlers', 'Keepers', 'Hardcore'). Do not substitute or change this value.
start_amountNoAmount of first currency to start with (default: 1)
currency_chainYesArray of currency names in trading order (e.g., ['Divine Orb', 'Chaos Orb', 'Exalted Orb', 'Divine Orb'])

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It adds value by stating it 'Shows step-by-step conversion rates' and emphasizes the need for the exact league name, a key constraint. However, it does not explicitly state that the operation is read-only, what the return format looks like beyond conversion rates, or any potential failure modes, making it minimally adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is succinct and front-loaded with the core purpose ('Calculate the profit/loss'), followed by two brief context sentences and a critical warning. Every sentence carries weight, and the important note about the exact league name is clearly flagged. No fluff or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a calculation tool with no output schema, the description reasonably covers the return behavior by stating it shows step-by-step conversion rates and calculates profit/loss. It also gives sufficient context for applicability. It stops short of detailing edge cases (e.g., invalid league, real-time vs historical rates), but the core information is complete enough for an agent to select and invoke the tool properly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already provides thorough descriptions for all parameters, including the league warning and a currency_chain example. The description's reference to 'specific trading chain' aligns with currency_chain but adds no extra parameter-level details. Thus, the schema does the heavy lifting, meriting the baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action ('Calculate the profit/loss') and a specific resource ('a specific trading chain'). It distinguishes itself from siblings like find_arbitrage (which likely discovers opportunities) and get_currency_rates (which provides rates) by focusing on evaluating a given chain. The verb+resource structure is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear use cases: 'testing your own trading strategies or validating arbitrage opportunities before executing them.' This implies it is for validation rather than discovery, offering context for when to use it. However, it does not explicitly name alternatives (e.g., find_arbitrage) or state when not to use it, leaving a small gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compare_buildsA

Compare two Path of Building builds side by side

ParametersJSON Schema
NameRequiredDescriptionDefault
build1YesFirst build file name
build2YesSecond build file name

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It only says 'compare side by side' but doesn't disclose what the output looks like, whether it's a diff, whether it has side effects, or any behavioral expectations. This is a minimal tautological explanation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that is easy to parse. However, it is extremely brief and omits significant behavioral details that could be included without much added length, so it's concise but not comprehensively structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description is expected to explain what the tool returns or any important context. It doesn't. For a comparison tool, the agent is left without any idea of what 'compare side by side' actually produces, making the tool risky to invoke.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both parameters already described as 'First build file name' and 'Second build file name'. The description adds no additional semantic detail beyond naming the two builds, so it doesn't compensate beyond the schema baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Compare' with a clear resource 'two Path of Building builds' and the manner 'side by side'. This clearly distinguishes it from siblings like analyze_build (single build) and compare_trees (comparing tree structures).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The context is clear: this tool is for comparing two full builds side by side. However, it doesn't explicitly mention when not to use it or name alternatives, though the intent is fairly obvious given the verb and resource.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compare_treesA

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

ParametersJSON Schema
NameRequiredDescriptionDefault
build1YesFirst build file name
build2YesSecond build file name

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It mentions 'showing differences' but does not disclose whether the operation is read-only, error handling, or any side effects. This is minimal transparency for a tool with no annotation support.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with no superfluous words, front-loaded with the action and resource. Perfectly concise and efficiently structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is adequately complete for a simple tool: parameters are fully covered by schema, and the output is stated as 'showing differences in allocated nodes'. However, it lacks behavioral details like error conditions or result format, and the lack of an output schema puts some burden on the description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema fully covers both parameters with descriptions, so the baseline is 3. The description does not add extra meaning beyond naming the two builds, and the schema already explains 'build1' and 'build2' as file names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: comparing passive skill trees between two builds and showing differences in allocated nodes. The verb 'compare' is specific and the resource is well-defined, distinguishing it from the broader sibling 'compare_builds'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or alternatives are mentioned, but the description implies usage for comparing passive skill trees specifically. Without exclusions or alternative references, the agent may not know when to choose this over 'compare_builds'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_budget_buildC

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

ParametersJSON Schema
NameRequiredDescriptionDefault
build_nameYesBuild to create budget version of
budget_tierNoBudget tier: 'league-start', 'low', 'medium' (default: league-start)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, placing the full burden on the description. It only states 'Create,' implying a mutating operation, but does not disclose whether it saves to a database, overwrites existing builds, or produces a temporary result. No side effects, prerequisites, or output behavior are mentioned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no wasted words. It is appropriately front-loaded with the action and object. However, it is under-specified for a create operation, which prevents a perfect score, but that is more a completeness issue than a structure issue.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, this description is too minimal for a create tool. It does not explain what happens when the budget version is created, whether it persists, or how it relates to other build tools. The agent has no way to predict the tool's full behavior or return value.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers both parameters with descriptions, including budget_tier's allowed values ('league-start', 'low', 'medium'), achieving 100% schema coverage. The tool description adds no additional parameter semantics beyond restating the 'budget-friendly' theme, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Create' and clearly names the resource: 'a league-start/budget-friendly version of a build.' This distinguishes it from sibling tools like analyze_build or list_builds, which have different purposes. However, it does not elaborate on what 'budget-friendly version' entails, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this tool versus alternatives. Sibling tools such as optimize_tree or analyze_build could be related, but the description gives no context for when creating a budget build is appropriate or how it differs from other build-related operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNoAdditional notes to append to build notes
overwriteNoAllow overwriting existing file (default: false)
build_nameYesSource build filename (e.g., 'MyBuild.xml')
output_nameYesOutput filename (without .xml extension)
output_directoryNoTarget directory (optional, defaults to POB_DIRECTORY/.pob-mcp/exports)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It states it creates a copy/variant and notes the Lua bridge limitation, which is useful. However, it doesn't disclose write permissions, overwrite behavior, or potential side effects like file creation on disk in detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core purpose, followed by a critical caveat. No wasted words, every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter tool with no output schema, the description covers the main purpose and the key exception. It lacks return value information but is otherwise adequate for an agent to understand the tool's function.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds no additional parameter meaning beyond what the schema already provides, such as defaults for output_directory or overwrite behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool exports a copy of a build to an XML file and creates a variant/copy. It uses specific verb ('Export') and resource ('build'), and the note about Lua bridge distinguishes it from save_tree, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-not guidance: 'This does NOT export from Lua bridge - use save_tree to apply Lua bridge modifications back to files.' This offers a clear alternative for a specific scenario. However, it doesn't give broader context on when to use this over other export/snapshot tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_build_summaryA

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It does not disclose prerequisites (e.g., a build must be loaded), potential side effects, or whether it returns the markdown directly. The description reads more as a purpose statement than a behavioral contract.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the purpose and intended use, with no unnecessary words or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-parameter tool, the description covers the core purpose and output format (markdown). However, it leaves ambiguity about the 'loaded build' prerequisite and what happens if none is loaded, and it does not specify the return behavior (text vs. file). These gaps reduce completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there are no parameter details to explain. The baseline of 4 applies per the scoring rules for parameterless tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Generate') with a clear resource ('markdown summary of the loaded build'). It distinguishes itself from the sibling 'export_build' by specifying the markdown format and audience (Reddit, Discord, documentation).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides clear usage context ('suitable for sharing on Reddit, Discord, or as build documentation'), but does not explicitly mention alternatives or when not to use it, stopping short of a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
leagueYesEXACT league name as specified by user (e.g., 'Standard', 'Settlers', 'Keepers', 'Hardcore'). Do not substitute or change this value.
min_profit_percentNoMinimum profit percentage to show (default: 1.0). Lower values find more opportunities but with smaller profits.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It does reveal that the tool uses 'real-time poe.ninja rates to identify market inefficiencies' and includes a strong instruction about not guessing league names. However, it omits other behavioral traits such as whether the operation is read-only, possibility of rate limits, or what happens when no opportunities exist. This is adequate but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the main purpose. It consists of three sentences, each earning its place: what it does, data source/use case, and a critical usage warning. There is no redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter tool with no output schema, the description is quite complete: it explains the core function, data source, and usage context. It lacks a description of the return format (e.g., a list of loops), but given the tool's simplicity and the strong schema coverage, this is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers 100% of parameter descriptions, including specific details for league and min_profit_percent. The description adds no additional parameter semantics beyond what the schema already provides, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Find currency arbitrage opportunities' and elaborates with 'profitable trading loops where you can trade currencies in a circle and end up with more than you started.' This specific verb+resource combination distinguishes it from siblings like get_currency_rates (which simply fetches rates) and calculate_trading_profit (which likely computes profit for a single trade).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool: 'Perfect for making passive income through currency trading.' It also emphasizes a critical behavioral rule ('Use the EXACT league name the user specifies - do not substitute or guess'), but it does not explicitly name alternatives or exclusion conditions. However, the unique focus on arbitrage loops implies when it should be used over related tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
build_nameNoBuild to analyze (optional if a build is loaded via lua_load_build)
target_node_idYesID of the target passive node
show_alternativesNoReturn up to 3 alternative paths instead of just the shortest (default: false)

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the transparency burden. It discloses the default build behavior, but does not mention return format, whether it is read-only, error conditions, or how alternatives are returned. It adds some context but leaves significant behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the purpose, and no wasted words. The structure is efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 3 parameters, no annotations, and no output schema. The description covers purpose and build default, but does not explain the return value shape or behavior when no path exists. It is adequate for a simple query tool but leaves some gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds minimal extra meaning beyond the schema, mainly clarifying that the loaded build is used when build_name is omitted, which slightly enriches the build_name parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function with a specific verb and resource: 'Find the shortest path from your current tree to a specific passive node.' This is distinct from sibling tools like get_nearby_nodes or optimize_tree, which address different concerns.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: it is used when a path to a target node is needed. It also gives a usage nuance about build selection ('Uses loaded Lua bridge build when no build_name is provided'), though it does not explicitly name alternatives or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_build_notesA

Read the notes/documentation from a PoB build file

ParametersJSON Schema
NameRequiredDescriptionDefault
build_nameYesName of the build file (e.g., 'MyBuild.xml')

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It clearly implies a non-destructive read operation, but it does not disclose potential errors (e.g., file not found), permissions, or return format. This is acceptable for a simple read but lacks depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no redundant words. It communicates the core function immediately and efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (one parameter, no output schema, no annotations), the description is adequate. It tells the reader what the tool does and implies the return value (the notes). It could specify the output format, but the simplicity makes this less critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond the schema; it just references 'PoB build file' without expanding on the 'build_name' parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Read' and clearly identifies the resource as 'notes/documentation from a PoB build file.' It is distinct from siblings like 'set_build_notes' (write operation) and 'list_builds' (listing files), though it does not explicitly name alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The context for when to use this tool is implied by the word 'Read' — when you need notes from a build file. However, there is no explicit guidance on when not to use it or which sibling tool to use instead (e.g., 'set_build_notes' for writing).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_build_statsC

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

ParametersJSON Schema
NameRequiredDescriptionDefault
build_nameYesName of the build file

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must communicate behavioral traits. It only says 'Extract' without explicitly confirming read-only behavior, failure modes, or dependency on a saved build file. This leaves safety and side effects undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that front-loads the action and includes helpful examples. It is concise without being incomplete, though it could briefly state what the function returns.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description should explain return values and expected behavior. It only lists example stats and does not mention output format, error handling, or how this differs from similar tools, making it inadequate for fully informed use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already fully describes the single parameter build_name with 'Name of the build file' (100% schema coverage). The tool description adds no parameter-specific details, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Extract') and resource ('stats from a build') with concrete examples (Life, DPS, resistances). It is clear and distinct, though it does not explicitly contrast with sibling tools like analyze_build, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided regarding when to use this tool versus alternatives. The description lacks any mention of context, prerequisites, or exclusions, leaving the agent to infer usage from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
leagueYesEXACT league name as specified by user (e.g., 'Standard', 'Settlers', 'Keepers', 'Hardcore'). Do not substitute or change this value.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral disclosure burden. It states the data source (poe.ninja), update cadence (every 5 minutes), the nature of the data (live trading data), and the critical league-name constraint. It could add failure behavior for invalid leagues, but the provided details are substantive beyond what structured fields offer.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with the main action, and ends with an imperative warning highlighted in uppercase. Every sentence contributes essential information—source, output, freshness, and a critical constraint—with no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with no output schema, the description clearly explains what is returned (real-time prices in Chaos Orb equivalent), the source, the update frequency, and the exact league requirement. This is sufficient for an agent to invoke the tool correctly and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the only parameter 'league', which already includes a detailed description about exactness. The tool description reinforces this with an uppercase warning but adds no new meaning beyond the schema, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Get' and identifies the exact resource as 'current currency exchange rates from poe.ninja.' It clearly distinguishes this from sibling tools like analyze_build or find_arbitrage by stating the output type (Chaos Orb equivalent). This leaves no ambiguity about the tool's function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool—whenever current exchange rates are needed—and explicitly warns to use the exact league name, which is an important usage condition. It does not name alternative tools or state when not to use it, but the context is clear enough among the provided siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_nearby_nodesA

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

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoOptional text filter for node names/stats
build_nameNoBuild file to analyze (optional if a build is loaded via lua_load_build)
max_distanceNoMaximum path distance to search (default: 5)

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavioral disclosure. It discloses the fallback behavior (using the loaded Lua bridge build) which is helpful, but it does not describe what 'notable' means, whether results include coordinates/passives, or any side effects. It is a minimal but not misleading disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, each adding value: the first states the core purpose, the second provides a key behavioral detail. No fluff or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a likely read-only query tool with no output schema, the description covers input behavior and fallback logic, but it omits what the response contains and lacks explicit exclusions. It is adequate for a simple lookup but not fully self-contained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds a small contextual detail about 'current tree allocation' aligning with max_distance, and reinforces build_name optionality via the loaded-build fallback, but it does not enrich parameter semantics significantly beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb 'Find' clearly identifies a search/query action, and the resource is specific: 'notable and keystone passives near your current tree allocation.' This distinguishes it from sibling tools like find_path_to_node (pathfinding) and analyze_build (analysis).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when a loaded build is used (when no build_name is provided) and the scope ('near your current tree allocation'), but it does not explicitly state when to use this tool over alternatives such as suggest_optimal_nodes or get_build_stats. The usage context is implied rather than directly contrasted.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_recent_changesB

Get a list of recently changed build files.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of recent changes to return (default: 10)

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It does not disclose what 'recently changed' means (time window), how changes are tracked, or what fields are returned. Since there is no output schema, this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with no fluff. It directly conveys the core purpose, though lacks expansion.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple, but the description omits behavioral details such as the definition of 'recently' and the return structure. Given no output schema, these are important for correct invocation and result interpretation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides full coverage for the 'limit' parameter including its default. The description adds no additional semantic detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (get) and resource (list of recently changed build files). It is specific but does not differentiate from sibling tools like list_builds or get_build_stats.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as list_builds or get_build_notes. The description simply states the function without context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_buildsA

List all available Path of Building builds

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full responsibility for behavioral disclosure. It states the action but doesn't mention return format, sorting, pagination, or what 'available' means. The behavior is minimally described.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence, front-loaded with the verb and resource, containing zero wasted words. It is appropriately concise for a no-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, no-output-schema tool, the description is mostly adequate but lacks detail on what 'builds' refers to and what data will be returned. Without an output schema, the description should explain the result format to be fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has zero parameters, and the description correctly indicates no filtering is needed. With no parameters to document, the baseline of 4 is appropriate; the description adds no extra param semantics but none are needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('list') and clearly identifies the resource ('all available Path of Building builds'), distinguishing it from sibling tools like get_build_stats or analyze_build. It precisely states what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when you need a listing of all builds, but provides no explicit guidance on when to use this tool versus alternatives like get_build_stats or compare_builds. No exclusions or alternative recommendations are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_snapshotsA

List all snapshots for a build with metadata and stats

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of snapshots to return (optional)
build_nameYesBuild to list snapshots for
tag_filterNoFilter by tag (optional)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It mentions returning 'metadata and stats,' which gives some insight into the output, but it does not explicitly state that the operation is read-only, describe ordering/pagination, or disclose any potential side effects. The word 'list' implies reading, but explicit disclosure is absent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that front-loads the main action and resource. Every word is meaningful, with no fluff or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple listing tool with complete schema parameter documentation, the description is largely sufficient. It gives a general sense of the return content ('metadata and stats') but does not detail pagination, ordering, or the exact structure of the response. Since the tool is low-complexity and the schema covers parameters, a slightly abbreviated description is acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all three parameters (build_name, limit, tag_filter). The description does not add extra meaning beyond the schema, but the baseline of 3 applies because the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List') and resource ('snapshots for a build'), and mentions that it includes metadata and stats. This distinguishes it from sibling tools like snapshot_build (create) and restore_snapshot (restore), making the purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for viewing snapshots of a specific build but does not explicitly mention alternatives or when not to use this tool. It lacks the explicit 'use X instead' guidance seen in higher-scoring examples, though the context of sibling tools (e.g., list_builds, get_build_stats) makes the intended use fairly clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

optimize_treeA

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

ParametersJSON Schema
NameRequiredDescriptionDefault
goalYesPrimary optimization goal: 'damage', 'defense', 'balanced'
build_nameYesBuild to optimize
constraintsNoConstraints like minimum life, required keystones, etc.
preserve_keystonesNoWhether to preserve allocated keystones (default: true)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavioral disclosure. It does reveal a key behavior: the tool removes nodes and reallocates them. However, it omits critical details such as whether changes are persisted, whether the operation is reversible, or how constraints interplay with the reallocation. The disclosure is partial, not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, tight sentence (13 words) that uses a dash to add a concrete detail. It is front-loaded with the primary action and resource, with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite full schema coverage and clear purpose, the description lacks essential context for a tool with nested parameters and no output schema. It does not mention whether the tool modifies the build, returns an optimized tree, or how constraints are applied during optimization. This is a significant omission for a complex operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains each parameter. The description adds no additional parameter-level semantics—it only gives a general overview of the optimization process. The description's phrase 'better options' slightly hints at the goal parameter but is too vague to add meaningful meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('optimization'), clearly identifies the resource ('passive tree'), and adds scope ('Full') plus a concrete behavioral outcome ('removes inefficient nodes and reallocates to better options'). This distinguishes it from sibling tools like 'suggest_optimal_nodes' or 'compare_trees'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage (use this for full passive tree optimization) but provides no explicit guidance on when to choose this over alternatives, no exclusions, and no mention of prerequisites. The phrase 'Full' hints at scope but does not elaborate on when other optimization tools might be preferable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

refresh_tree_dataA

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

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoSpecific tree version to refresh (optional, defaults to all versions)

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full responsibility for behavioral disclosure. 'Force refresh' implies cache invalidation or replacement, but it does not state whether the operation is safe (e.g., read-only vs. destructive), whether it may require network resources, or what happens to the existing cache beyond 'refreshing.' The description fails to disclose these potential side effects, leaving the agent to infer the impact.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences. The first states what the tool does, and the second states when to use it. No redundant information or fluff, entirely front-loaded and purposeful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one optional parameter and no output schema, the description is minimally adequate. It states purpose and usage condition, and the schema covers parameters. However, the lack of behavioral transparency (side effects, safety profile) leaves a notable gap in completeness, especially given the absence of annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description provides 100% coverage for the single 'version' parameter, explaining it is optional and defaults to all versions. The description itself adds no additional parameter context, but the schema is sufficient, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Force refresh the passive skill tree data cache' with a specific verb ('refresh') and resource ('passive skill tree data cache'). It distinguishes from all sibling tools, none of which perform cache refresh operations. The purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear trigger condition: 'Use this if tree data seems outdated.' This is explicit guidance on when to use the tool. It does not name alternatives, but since no sibling tool offers the same function, explicit exclusions are unnecessary. The guidance is sufficient for selecting this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

restore_snapshotA

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

ParametersJSON Schema
NameRequiredDescriptionDefault
build_nameYesBuild to restore
snapshot_idYesSnapshot ID (timestamp) or tag to restore from
backup_currentNoCreate snapshot of current state before restore (default: true)

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only mentions the optional backup feature but does not disclose potentially destructive behavior (overwriting current state), permission requirements, error handling, or what happens on success/failure. For a restore operation, these are significant gaps, making transparency poor.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one sentence, front-loaded with the primary action, and contains no fluff. It efficiently conveys the core function and the optional backup behavior without unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description should provide more behavioral context. It lacks details about return values, side effects, error conditions, and prerequisites. The tool is potentially destructive, yet the description is minimal. This is comparable to the update_drive example, which scored 2 for similar gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds context for the 'backup_current' parameter by explaining its purpose, which goes slightly beyond the schema. However, it doesn't add meaning for build_name or snapshot_id, which are already adequately described in the schema. The added value is modest.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function with a specific verb ('Restore') and resource ('a build from a snapshot'). It also mentions the optional backup behavior, which distinguishes it from related snapshot tools like snapshot_build and list_snapshots. The purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool—restoring a build from a snapshot. While it doesn't explicitly mention alternatives or when not to use it, the context is evident from the tool name and description. Sibling tools like snapshot_build (create) and list_snapshots (list) imply this is the restore counterpart, so the usage guidance is adequate but lacks explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nodesYesArray of node IDs to allocate
backupNoCreate backup before modifying (default: true)
build_nameYesTarget build filename to update
mastery_effectsNoMastery selections as object mapping node ID to effect ID (optional)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the behavioral disclosure burden. It discloses that the tool modifies an existing file and only affects the passive tree, which is helpful. However, it does not clarify whether the 'nodes' array replaces the entire tree or merges with existing nodes, nor does it mention backup behavior (though schema notes default true), permissions, or failure handling. This ambiguity prevents a higher score.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the primary action, and contains no fluff. Every word contributes to understanding the tool's purpose and intended use.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a moderate-complexity tool with four parameters and no output schema, the description covers the core purpose and usage context sufficiently. It lacks details about return values or post-conditions, but these are not essential for a simple update tool, and the backup behavior is covered in the schema. Adequate overall.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides descriptions for all four parameters (100% coverage), so the description needs to add little extra. The description does not enhance understanding of any specific parameter beyond the schema, though it contextualizes the overall purpose. Baseline 3 is appropriate for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Update only the passive tree in an existing build file.' This uses a specific verb ('update'), resource ('passive tree'), and scope ('in an existing build file'), distinguishing it from siblings like optimize_tree (which computes optimizations) and snapshot_build (which creates backups).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly instructs when to use the tool: 'Use this to apply tree optimizations or Lua bridge modifications back to the original build.' This provides clear context for the intended use case. However, it does not mention when not to use it or explicitly name alternatives, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_build_notesA

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

ParametersJSON Schema
NameRequiredDescriptionDefault
notesYesNotes content to write (plain text or markdown)
build_nameYesName of the build file

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly states 'overwrites existing notes', which is a critical destructive trait. The verb 'write' also signals mutation. This goes beyond a neutral 'sets notes' and gives the agent essential risk information. It does not discuss reversibility or failure modes, but for a simple setter, the overwrite disclosure is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficiently structured sentence that front-loads the primary action ('Write notes/documentation') and immediately adds the crucial overwrite caveat in parentheses. Every word contributes meaning; no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity (2 simple string parameters) and no output schema, the description covers the essential purpose, target resource, and behavioral side effect. It does not mention prerequisites like whether the build file must pre-exist, but this is not critical for basic usage. The core of writing and overwriting is fully communicated, making it contextually complete for its simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides 100% parameter coverage, describing both build_name and notes with clear meanings. The description adds minimal extra semantics by rephrasing 'write notes/documentation', but does not explain relationships or format details beyond the schema. Per the baseline for high schema coverage, a 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action with a specific verb and resource: 'Write notes/documentation into a PoB build file'. It also includes the key behavior of overwriting existing notes, distinguishing it from read-only siblings like get_build_notes. This fully captures the tool's purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context on when to use the tool: to write or update notes in a build file. It does not explicitly name alternatives or exclusions, but the 'overwrites existing notes' note implies a caution that this is for replacement rather than appending. Sibling names further clarify the write/read distinction, so it earns a 4 for clear context without explicit alternative framing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

snapshot_buildA

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

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNoUser-friendly tag (e.g., 'before-respec', 'league-start') (optional)
build_nameYesBuild to snapshot
descriptionNoDescription of this snapshot (optional)

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden. It discloses useful behavioral details: snapshots are stored separately and include metadata tracking stats and changes. However, it omits potential side effects (e.g., whether an existing tag is overwritten), permission requirements, or what the response contains, limiting transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the action, and every clause carries meaning. It is efficiently written without fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and 3 fully documented parameters, the description is minimally complete. It explains the tool's purpose and storage behavior but does not mention what happens on success (e.g., returns a snapshot ID) or how it relates to restore_snapshot, which could round out the context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all parameters (build_name, tag, description). The description adds no parameter-level meaning beyond the schema, which is acceptable given the baseline of 3 for complete schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Create') and resource ('versioned snapshot of a build'), clearly stating the tool's primary function. It is easily distinguished from sibling tools like list_snapshots and restore_snapshot, which manage snapshots rather than create them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'for easy rollback' implies the intended usage context (before making risky changes), and 'versioned' suggests creating a stable restore point. However, it does not explicitly mention when not to use it or name alternatives like export_build for sharing, so it stops short of full guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

start_watchingA

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden. It discloses the key behavior (auto-reload on save), but does not mention side effects such as whether an existing watch is replaced, resource usage, or how to stop monitoring. Some gaps remain for a long-running operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with the action and consequence front-loaded. No filler or redundant information, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 0-parameter start command, the description covers the purpose and the key consequence. It does not specify the return value or resource limits, but the simplicity of the tool makes this acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there are no parameter semantics to explain. The baseline for 0 params is 4, and the description adds no unnecessary parameter detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('Start monitoring') and resource ('builds directory'), and it distinguishes itself from siblings like stop_watching by describing the start action and the auto-reload consequence.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The usage is implied: use this tool when you want to monitor the builds directory and have builds auto-reloaded. However, it does not explicitly compare to alternatives like watch_status or stop_watching, or mention when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stop_watchingA

Stop monitoring the builds directory for changes.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It only states the basic action without revealing side effects, idempotency, or what happens if monitoring is not active. For a mutation-like tool, this is minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no wasted words. It is front-loaded with the action and directly communicates the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters, no output schema, low complexity), the description is nearly complete. It clearly states what the tool does. Minor gaps exist around return values or state implications, but overall it suffices for the tool's scope.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the input schema is empty. The description does not need to explain parameters. Baseline for zero parameters is 4, and there is no additional parameter information needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (stop) and the target resource (monitoring the builds directory for changes). It is a specific verb+resource pair that distinguishes it from sibling tools like 'start_watching' and 'watch_status'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage (when you want to stop monitoring), but does not explicitly state when to use it versus alternatives or provide any exclusions. It lacks explicit guidance such as 'Use when you no longer wish to receive build change notifications.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

suggest_optimal_nodesC

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

ParametersJSON Schema
NameRequiredDescriptionDefault
goalYesOptimization goal: 'damage', 'defense', 'life', 'es', or stat name
build_nameYesBuild to optimize
points_availableNoNumber of passive points to spend (default: 10)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full disclosure burden. It mentions 'AI-powered' hinting at probabilistic behavior but does not disclose whether it is read-only, requires an existing build, or what the response format is. This is insufficient for safe invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, no redundant information, and gets to the point immediately. The description is appropriately sized and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema and no annotations, the description is too brief. It fails to mention return value, prerequisites, or how it differs from optimize_tree, making it incomplete for an AI agent to decide when to use it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema documents all parameters. The description adds little beyond mentioning 'build goals' which aligns with the goal parameter, but it does not explain the meaning of points_available or build_name beyond the schema, so it meets the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool suggests optimal passive nodes based on build goals, using a specific verb and resource. However, it does not distinguish from sibling tools like optimize_tree or analyze_build, so it lacks explicit sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as optimize_tree or analyze_build. The description only states the purpose without context, prerequisites, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
build_nameNoBuild to validate. If omitted and Lua bridge is active, validates currently loaded build.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries the full burden. It discloses the tool's output behavior ('Provides prioritized critical/warning/info recommendations') and the aspects it validates. However, it does not explicitly state read-only semantics or potential errors, though 'validation' strongly implies a non-mutating operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded: it states the purpose in the first sentence, expands on scope, and immediately provides usage guidance. Every sentence earns its place without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description adequately covers what the tool does, what it returns (prioritized recommendations), and when to use it. For a single-parameter tool, this is complete and exceeds the minimum viable description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage for the single parameter, providing a description in the schema. The tool description adds no extra meaning about build_name beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool performs 'comprehensive build validation' and enumerates specific covered areas (resistances, life pool, defensive layers, etc.). It distinguishes itself from sibling tools by explicitly positioning it as a replacement for get_build_issues and analyze_defenses.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance: 'PREFER this over get_build_issues + analyze_defenses' and 'Do not call all three.' This clearly identifies when to use this tool versus alternatives and what to avoid.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

watch_statusA

Check if file watching is currently enabled.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly indicates this is a status check (read-only in nature), but does not disclose return format, potential side effects, or any expectations about the 'enabled' state. The description is minimal and doesn't add context beyond the obvious.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single clear, front-loaded sentence. Every word earns its place with no redundancy or filler. It's an ideal length for such a simple status check.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is very simple (no parameters, no output schema). The description fully conveys the purpose. However, since there's no output schema, adding a note about the return value (e.g., boolean true/false) would make it more complete, but it's still adequate as is.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema is trivially fully covered. Per guidelines, a baseline of 4 is appropriate when no parameters exist. The description doesn't need to add parameter details since there are none.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('check') and a clear resource ('file watching'), making the tool's purpose unambiguous. It distinguishes itself nicely from sibling tools like start_watching and stop_watching, which are action-oriented, and get_recent_changes, which deals with different data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives. It states what it does but provides no context, prerequisites, or exclusions. The usage is only implied by the tool's name and description, but there's no explicit recommendation or contrast with sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

B3.4/5.0
Disambiguation3/5

Several tools have overlapping responsibilities, most notably analyze_defenses and validate_build where the description explicitly notes the redundancy. The tree-related tools are distinct but numerous, requiring careful reading to select the right one.

Naming Consistency4/5

The vast majority of tools follow a consistent verb_noun pattern (get_, analyze_, list_, compare_, etc.), making the API predictable. Minor deviations like 'watch_status' (rather than 'get_watch_status') break the pattern slightly.

Tool Count2/5

At 30 tools, the server is on the heavy side, exceeding the typical well-scoped range. While the tools span several sub-domains (builds, tree, currency, snapshots), the set could likely be consolidated.

Completeness4/5

The server covers a broad range of build management tasks including analysis, optimization, snapshots, file watching, and currency arbitrage. Notable gaps include no delete_build tool and no way to import a build from a file path directly (though export exists).

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    C
    maintenance
    An MCP server for Path of Exile 2 build analysis that loads builds from Path of Building export codes and allows natural language interrogation via any MCP-compatible client.
    8
    2
  • A
    license
    A
    quality
    A
    maintenance
    An MCP server for Path of Exile 2: a queryable game corpus plus Path-of-Building-faithful calculations, so an LLM can import your build, answer questions, and theorycraft against real numbers (not invented ones).
    64
    1
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/zgrummons/pob2-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server