Native Shell
Native Shell:AI 生成的 UI,在你的應用中原生呈現,涵蓋每個平台。iOS、Android、macOS、Windows 與 Linux 上的應用、GPUI 應用與網頁在執行時載入已簽名、沙箱隔離的 TSX 模組並繪製 th
AI 翻譯
This is a locally-run MCP attempt to make AI like Claude for Desktop or others better understand questions about Path of Exile 2. Good luck to me I guess? -- If you like what you see and would like to
翻譯準備中
開發工具Python · LuaGitHub @HivemindOverlord自行安裝營運者未確認
試用過了嗎? 點一下就好,不需要登入。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
安裝型專案無需部署網域也可驗證。個人儲存庫可透過 GitHub 登入驗證,組織儲存庫可使用上方的儲存庫驗證檔案。
This is a locally-run MCP attempt to make AI like Claude for Desktop or others better understand questions about Path of Exile 2. Good luck to me I guess? -- If you like what you see and would like to see continuing development, please support me with your donations here: https://buymeacoffee.com/tomawar40 -- I will never go paid, and never charge.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Community Project Disclaimer
This is an independent, fan-made community project built out of love for Path of Exile 2. It is not affiliated with, endorsed by, or officially connected to Grinding Gear Games in any way. Path of Exile is a trademark of Grinding Gear Games. All game data and assets remain the property of their respective owners.
A Model Context Protocol (MCP) server for Path of Exile 2 character analysis and optimization. Provides 38 MCP tools for AI-powered build analysis, passive tree analysis, item mod validation, support gem validation, and Path of Building integration (including a live bridge to a running PoB instance).
This is an MCP server - a backend service that gives AI assistants (like Claude, ChatGPT, Cursor, etc.) the ability to analyze your Path of Exile 2 characters and provide optimization recommendations.
What it does:
What you need:
Option A: PyPI (Recommended)
pip install poe2-mcp
Option B: From Source
git clone https://github.com/HivemindOverlord/poe2-mcp.git
cd poe2-mcp
pip install -e .
Choose your platform below:
Edit your Claude Desktop config file:
%APPDATA%\Claude\claude_desktop_config.json~/Library/Application Support/Claude/claude_desktop_config.jsonThe right config depends on how you installed. Pick one.
pip install poe2-mcp (Recommended)Use the poe2-mcp console script. It's on your PATH after pip install and works on every platform — no absolute path needed:
{
"mcpServers": {
"poe2-optimizer": {
"command": "poe2-mcp",
"env": {}
}
}
}
If Claude Desktop reports it can't find poe2-mcp, your pip install directory isn't on Claude Desktop's PATH. Either run which poe2-mcp (where poe2-mcp on Windows) and use the absolute path, or fall back to python -m:
{
"mcpServers": {
"poe2-optimizer": {
"command": "python",
"args": ["-m", "src.mcp_server"],
"env": {}
}
}
}
pip install -e . from sourcePoint at launch.py directly. It does some Windows-specific UTF-8 setup that the bare console script skips:
Windows:
{
"mcpServers": {
"poe2-optimizer": {
"command": "python",
"args": ["C:\\Users\\YourName\\poe2-mcp\\launch.py"],
"env": {}
}
}
}
macOS/Linux:
{
"mcpServers": {
"poe2-optimizer": {
"command": "python3",
"args": ["/Users/YourName/poe2-mcp/launch.py"],
"env": {}
}
}
}
Restart Claude Desktop after editing the config. The server will appear in your MCP tools.
Pre-built MCP bundles are available for one-click installation in Claude Desktop:
poe2-mcp-1.0.0.mcpb from the GitHub Releases.mcpb fileNote: The bundle is ~109MB as it includes all game data files. Python 3.9+ must be installed on your system.
Recommendation: For development or if you want automatic updates, use Option A (manual configuration) with
pip install poe2-mcp.
MCP is an open standard supported by multiple AI platforms:
ChatGPT desktop app supports MCP servers. Configuration varies by version - check OpenAI's documentation for current setup instructions.
Cursor supports MCP via SSE protocol. Add to your Cursor settings:
{
"mcp": {
"servers": {
"poe2-optimizer": {
"command": "python",
"args": ["/path/to/poe2-mcp/launch.py"]
}
}
}
}
Windsurf has a built-in MCP Plugin Store. You can either:
# In your project directory
claude mcp add poe2-optimizer python /path/to/poe2-mcp/launch.py
Check each platform's documentation for MCP server configuration.
Once connected, you can ask your AI assistant to use these tools. The
authoritative list is _register_tools() in src/mcp_server.py — verify
the live count with:
python -c "import re; print(len(re.findall(r'types\.Tool\(\s*name=', open('src/mcp_server.py').read())))"
| Tool | Description |
|---|---|
analyze_character | Full character analysis (defenses, skills, gear, passives); exposes raw passive_node_ids |
import_poe_ninja_url | Import character from a poe.ninja profile URL (league-segment aware) |
compare_to_top_players | Compare your build to ladder leaders (protobuf builds API) |
analyze_passive_tree | Analyze allocated passive nodes with pathfinding |
calculate_character_dps | Server-side spell DPS, including the optional DoT layer (ignite/poison/bleed + skill DoT) |
get_live_game_state | Read the running PoE2 client's Client.txt (character, area, deaths) — local, no network |
get_game_config | Read local game config INI (gateway, input mode, renderer) |
| Tool | Description |
|---|---|
validate_support_combination | Check if support gems work together (hard + semantic conflicts) |
validate_build_constraints | Validate build against game rules (flat/nested/legacy resistance schemas, null-tolerant) |
reconcile_defensive_stats | Diff local EHP/defense calcs against poe.ninja's computed stats |
inspect_support_gem | View complete support gem data (incl. spirit reservation) |
inspect_spell_gem | View complete spell gem data (per-level costs/reservation) |
list_all_supports | List all available support gems |
list_all_spells | List all available spell gems |
| Tool | Description |
|---|---|
list_all_keystones | List all keystones with full stats |
inspect_keystone | Get complete keystone details by name |
list_all_notables | List all notable passives with stats |
inspect_passive_node | Get details for any passive node |
check_tree_freshness | Report passive-tree data revision vs poe.ninja |
| Tool | Description |
|---|---|
list_all_base_items | List all base item types |
inspect_base_item | Get details for a specific base item |
| Tool | Description |
|---|---|
inspect_mod | Get complete details for a specific mod by ID |
list_all_mods | List mods with filtering by type (PREFIX/SUFFIX/IMPLICIT) |
search_mods_by_stat | Search for mods by keyword (e.g., "fire", "life") |
get_mod_tiers | Show all tier variations of a mod family |
validate_item_mods | Check if mods can legally exist together on an item |
get_available_mods | List all mods available for a generation type |
| Tool | Description |
|---|---|
explain_mechanic | Explain PoE2 mechanics / stat ids; tiered exact → substring → BM25 lexical; cluster: true dumps a mechanic's full stat-id + source web |
find_stat_sources | Reverse lookup: which skills / passives / ascendancy nodes / mods grant a stat |
get_formula | Get calculation formulas |
| Tool | Description |
|---|---|
import_pob | Import a PoB build — from pob_file_path, raw pob_xml, or inline pob_code |
export_pob | Export build to PoB format |
get_pob_code | Get a character's PoB export via the poe.ninja profile API |
| Tool | Description |
|---|---|
search_items | Search local item database |
search_trade_items | Search official trade site (requires auth) |
setup_trade_auth | Set up trade site authentication |
| Tool | Description |
|---|---|
health_check | Check server status |
clear_cache | Clear cached data |
Live Path of Building bridge:
src/pob/client.py+ thepob_addon/Lua addon implement a TCP bridge (127.0.0.1:49085) to a running PoB instance. The bridge client exists but itspob_*operations are not currently registered as MCP tools — they are used internally / via the integration test suite. They are not in the 38 above.Not registered: DPS/EHP standalone calculators, optimizers, and the live
pob_*bridge ops have handlers/clients but no tool registration yet.
Once configured, just talk to your AI naturally:
"Analyze my character TomawarTheFourth from account Tomawar"
"Import this poe.ninja URL: https://poe.ninja/poe2/builds/char/..."
"Can I use Faster Projectiles and Slower Projectiles together?" (uses
validate_support_combination)
"Show me all support gems that work with projectiles" (uses
list_all_supports)
"What keystones are available for life builds?" (uses
list_all_keystones)
"Tell me about Chaos Inoculation" (uses
inspect_keystone)
"Compare my build to top Witchhunter players"
"Explain how armor works in PoE2"
"What prefixes can roll on items?" (uses
get_available_mods)
"Show me all tiers of the Strength mod" (uses
get_mod_tiers)
"Can Strength1 and Strength2 exist on the same item?" (uses
validate_item_mods)
"Search for fire resistance mods" (uses
search_mods_by_stat)
The AI will use the appropriate tools automatically.
For search_trade_items to work, you need to authenticate with pathofexile.com:
pip install playwright
playwright install chromium
python scripts/setup_trade_auth.py
This opens a browser for you to log in, then saves your session cookie.
The server includes a local database with:
Data is loaded from data/ directory on startup.
You no longer need to extract .datc64 files from your own PoE2 install. The MCP automatically downloads the maintained game-data bundle from this repo's GitHub Releases on first run and after each patch (resolves #53).
How it works:
launch.py calls src/data/data_distributor.ensure_data_current() during startupdata/version.json (local) against the latest release tagged data-v*poe2-data.zip and unzips into data/Opt out (run your own local extraction instead):
export POE2_MCP_NO_DATA_FETCH=1 # macOS/Linux
$env:POE2_MCP_NO_DATA_FETCH=1 # PowerShell
Then extract via scripts/extract_poe2_data.py against your own licensed PoE2 install.
Manual refresh:
python -m src.data.data_distributor
Data policy: The bundle is extracted exclusively from the maintainer's licensed PoE2 install via the in-repo extraction scripts. No third-party wiki / scraped data is bundled. See CLAUDE.md "Data Source Policy" for details.
Data currency & drift protection: The shipped datasets are extracted
from the full Patch 0.5 table set (1,019 canonical .datc64 balance tables
via scripts/extract_balance_tables_v1.py), versioned in
data/game/version.json (data-v0.5.0-r12). data/game/schema_fingerprints.json
records every table's row-count/row-size/hash; re-extraction diffs against it
so a future patch that adds, moves, or resizes columns fails loudly instead
of serving silently-wrong data. See docs/GAME_DATA_RESEARCH.md for the
reverse-engineered file format and extraction methodology.
poe2-mcp/
├── launch.py # Entry point
├── src/
│ ├── mcp_server.py # Main MCP server (38 tools registered)
│ ├── api/ # External API clients
│ │ ├── poe_ninja_api.py
│ │ ├── character_fetcher.py
│ │ └── rate_limiter.py
│ ├── analyzer/ # Analysis components
│ │ ├── character_analyzer.py
│ │ └── weakness_detector.py
│ ├── calculator/ # Numeric calculations
│ │ ├── ehp_calculator.py
│ │ ├── spirit_calculator.py
│ │ └── stun_calculator.py
│ ├── data/ # Data providers
│ │ ├── mod_data_provider.py
│ │ └── fresh_data_provider.py
│ ├── optimizer/ # Optimization engines
│ │ ├── gear_optimizer.py
│ │ └── gem_synergy_calculator.py
│ ├── parsers/ # Data parsers
│ │ ├── passive_tree_resolver.py
│ │ └── specifications/ # Datc64 format specifications
│ ├── knowledge/ # Game mechanics knowledge base
│ │ └── poe2_mechanics.py
│ └── database/ # SQLite database
│ ├── models.py
│ └── manager.py
├── data/ # Game data files
│ ├── psg_passive_nodes.json
│ ├── poe2_support_gems_database.json
│ └── poe2_mods_extracted.json
└── tests/ # Test suite
pytest tests/ -v
# If installed via pip
poe2-mcp
# From source
python launch.py
src/mcp_server.py - MCP server with 38 registered toolssrc/data/mod_data_provider.py - Item mod data access layersrc/calculator/ehp_calculator.py - EHP calculationssrc/optimizer/gem_synergy_calculator.py - Support gem logicdata/psg_passive_nodes.json - Passive tree databasedata/poe2_mods_extracted.json - Item modifier database (14,269 mods)python launch.py manually to see errorsimport_poe_ninja_urlpython launch.py handles thisdata/ directory exists with JSON filesData sources:
MCP Protocol:
MIT License - See LICENSE for details.
This is a community project. Not affiliated with Grinding Gear Games.