POE2MarketMCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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 ( |
| get_priceA | Latest recorded price for one item, with spread and confidence. Reads the local database only. Returns |
| get_price_historyA | OHLC price history for one item, for charting or trend analysis. Reads rollup candles, so long windows stay fast. |
| get_moversB | Items with the largest percentage price moves over a window. Needs at least |
| find_listingsA | Search live trade listings right now, returning prices and whisper text. Spends the shared GGG rate budget (600 searches / 6h), so prefer
The returned |
| 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.
|
| 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 Set |
| 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 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: |
| 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. 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 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
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Agent guide | How 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 model | Storage tiers, price semantics, bid/ask direction, side-aware conversion, and what OHLC candle fields mean. |
| Rate limits and etiquette | Measured GGG limits, why the budget is shared with the collector, and the compliance position on the undocumented trade API. |
| Live server state | What 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 reference | Every 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 operations | Install, configure, run the collector, define watchlists, enable stash access, and troubleshoot. Read when a tool reports missing data or a credential problem. |