Skip to main content
Glama
GlacianNex

POE2MarketMCP

by GlacianNex

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

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

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_leaguesA

List PoE2 leagues available on the trade API, and which are collected.

Use this first when the user names a league loosely ("the new league"), so later calls pass an exact league id.

market_statusA

Report collector health, database coverage and remaining rate budget.

Check this before concluding that missing data means a missing market — an empty history usually means the collector has not been running.

search_itemsA

Find tracked items by name, returning the item keys other tools take.

Every priceable thing has a stable key (cur:divine, or a watchlist target's key). Resolve a user's wording to a key here first.

get_priceA

Latest recorded price for one item, with spread and confidence.

Reads the local database only. Returns found: false when the collector has not yet priced this item, which is not the same as the item being unsellable — check market_status.

get_price_historyA

OHLC price history for one item, for charting or trend analysis.

Reads rollup candles, so long windows stay fast. auto uses hourly candles up to 14 days and daily beyond that.

get_moversB

Items with the largest percentage price moves over a window.

Needs at least days + 1 days of collected history to be meaningful.

find_listingsA

Search live trade listings right now, returning prices and whisper text.

Spends the shared GGG rate budget (600 searches / 6h), so prefer get_price when recorded data is good enough.

The returned whisper is the message to send in game. This server cannot send it: GGG exposes no trade-execution API, and automating in-game input violates the terms of service. A human completes the trade.

prepare_tradeC

Pick the best current listing for an item and return a ready whisper.

Cross-checks the live ask against recorded history so an outlier price is flagged before you commit. Returns the whisper for a human to send; it does not contact anyone.

list_watchlistsA

Show configured watchlists: what is scanned, how often, and priority.

find_arbitrageA

Find currencies where the median bid exceeds the median ask.

Deliberately compares medians, not extremes. The cheapest ask on this endpoint is very often a fat-finger or a sold-but-still-listed order: the median listing is ~85 minutes old when GGG serves it. Divine was observed with asks of 100/188/260/300 against bids of 230/200/180/162/160 — the extremes cross by 130 exalted and imply free money, while the medians show an ordinary 26% spread. Screening on extremes would report a large opportunity in a market that has none.

A crossing that survives at the median is a genuine dislocation. Even then treat it as a lead, not a filled trade: both counterparties must be online, stock is finite, and these complete by whisper and a manual trade window, so the price can move before anyone replies.

stale_extremes reports books that cross only at the extremes, which is a staleness signal rather than an opportunity.

get_stash_valueA

Value your own stash against collected prices.

Reads the account's public listings (no login) — the working path on PoE2, since the authenticated stash API is OAuth-only and closed. Only publicly-listed items are visible; set the account with stash_account in config or POE2MARKET_ACCOUNT.

Set refresh to pull fresh listings; otherwise the latest snapshot is returned.

get_stash_historyA

Track how your stash's total value has changed over time.

Each snapshot is valued at the prices that applied when it was taken, so the series separates 'I acquired more' from 'what I hold got dearer'.

list_stash_itemsA

List what is actually in your stash: every item, with quantities.

Reads the most recent snapshot. Set group_stacks (the default) to aggregate the same item across tabs — 3 stacks of Exalted Orbs in three tabs become one row with the combined quantity, which is almost always the question being asked. Turn it off to see each physical stack and its tab.

Unpriced items (gear, maps, anything without a collected price) are included with a null value rather than dropped, so the list is a real inventory rather than only the part we happen to have priced.

Filters: search matches name or base type, tab matches a tab name, rarity is Normal/Magic/Rare/Unique/Currency/Gem.

find_multi_step_arbitrageA

Find profitable trade loops, e.g. chaos -> exalted -> divine -> chaos.

Pure analysis over already-collected direct pair rates: no API calls, so it is free to run as often as you like.

Only direct pair quotes can produce a cycle. Cross-rates synthesised through the base currency pay the spread on every leg, so a loop built from them always loses — profit appears only where the market's own chaos->divine rate has drifted from chaos->exalted->divine.

Each leg's rate has already paid its own spread and has had junk listings filtered out, so a gain above 1.0 is real profit rather than mid-price arithmetic. min_depth bounds how much can actually be pushed through the tightest leg.

As with all trades here: these complete by whisper and a manual trade window. Every counterparty must be online and willing. Treat results as leads, and note that a four-hop loop needs four separate humans to answer.

refresh_pricesA

Fetch currency prices from poe.ninja right now, bypassing the schedule.

This is a hard refetch: it bypasses poe.ninja's CDN cache to reach the origin, rather than re-reading the cached response the hourly sweep uses. Worth calling when stale: true appears on a result, or after the machine has been asleep or offline. Note poe.ninja recomputes its own numbers about hourly, so a forced refetch guarantees the freshest published data — not necessarily different data.

Hits poe.ninja only; it does not touch GGG's trade API, so it cannot affect the player's in-game trade rate budget.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
Agent guideHow to use this server correctly: tool selection, item keys, reading prices without mixing currencies, confidence handling, and the mistakes that produce wrong answers. Read this first.
Data modelStorage tiers, price semantics, bid/ask direction, side-aware conversion, and what OHLC candle fields mean.
Rate limits and etiquetteMeasured GGG limits, why the budget is shared with the collector, and the compliance position on the undocumented trade API.
Live server stateWhat is collected right now: active league, coverage window, tracked item counts, watchlists, and remaining rate budget. Check this before concluding that missing data means a missing market.
Tool referenceEvery tool: real signatures, defaults, return shapes with worked examples, which are free versus which spend the rate budget, and the mistakes that produce wrong answers.
Setup and operationsInstall, configure, run the collector, define watchlists, enable stash access, and troubleshoot. Read when a tool reports missing data or a credential problem.