Skip to main content

explore-markets

Use when you need to find or search a Polymarket market to trade, compare outcomes, or read a market's price, liquidity, tick size, or minimum order size through the pmp-mcp server. Covers search_markets, get_market_quote, and handing a tokenId to the trade prompt.

Source facts

Repository
starkware-libs/offmarket-plugins
Last source activity
September 16, 2026 at 11:06
Detected SKILL.md language
English
Stars
0
Forks
0

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
explore-markets
description
Use when you need to find or search a Polymarket market to trade, compare outcomes, or read a market's price, liquidity, tick size, or minimum order size through the pmp-mcp server. Covers search_markets, get_market_quote, and handing a tokenId to the trade prompt.
# Explore markets Discovery on `pmp-mcp` is two read-only tools. They move no funds and no guardrail applies, so exploring freely is safe — the cost of a mistake here is a bad order later. ## Which skill This one **finds a market and reads its constraints**. It moves nothing and stakes nothing. | The user wants | Skill | | --- | --- | | To set the server up, or add money to the pool | `pmp-mcp-quickstart` | | How much to stake, split across orders, and the exit | `plan-betting-strategy` | | A script or bot against the SDK instead of these tools | `write-trading-bot` | If `get_status` shows an empty pool, stop and route to `pmp-mcp-quickstart` — a market is no use until there is something to bet with. ## Never hand-roll the HTTP call `search_markets` and `get_market_quote` are the supported path. Do not `curl` or `fetch` `gamma-api.polymarket.com` or `clob.polymarket.com` yourself, and do not write a script to do it: the tools already parse the index-aligned outcome/price/token arrays Gamma returns as JSON strings, and drop markets with no orderable token. A hand-rolled call gets that pairing wrong quietly, and a mis-paired tokenId buys the other side. If `search_markets` is not among your tools, the pmp-mcp server is not connected. Stop and say so — point the user at the `pmp-mcp-quickstart` skill (`pmp-mcp check`). Do not substitute a web search or any other source: a tokenId found that way cannot be handed to the trade step. ## The sequence 1. **`search_markets`** with the user's words: `{"query": "fed rate cut", "limit": 5}`. Keep `limit` small — default 10, maximum 25. Each row carries the question, slug, conditionId, endDate, the `negRisk` flag, and one entry per orderable outcome with its `tokenId` and last price. 2. **Pick the outcome, not the market.** An order is placed on a `tokenId` and every market has at least two. Say in words which outcome you chose and at what price before going further. 3. **`get_market_quote`** on that `tokenId` — the live book; the search price is a snapshot. - `tickSize` — the price grid. An off-grid limit price is rejected. - `minOrderSize` — the share floor for a LIMIT order. - `bestBidPrice` / `bestAskPrice` — top of book. **`null` means that side is empty; absent means the book was not parsed, which is not the same as no liquidity.** Neither is a price you may treat as zero. - `negRisk` — carry the quote's value, not the search row's, into the order. 4. **Hand off — do not order from here.** Carry the `tokenId` and `negRisk` forward. If your client lists MCP prompts, the server's `trade` prompt is the canonical playbook for the funding and the order (in Claude Code: `/pmp-mcp:trade`). If it does not, hand them to the `plan-betting-strategy` skill instead and let it size the legs. Either way, do not call `place_order` or `buy_privately` straight out of this skill. ## Reporting a market to a person Prices are probabilities: `0.62` is "the market says 62%", not "$0.62 of value". Name the outcome label with the price — "Yes at 62¢" is useless when there are five candidates. Give the `endDate`; an hour out is a different proposition from a year out. If `active` is false, say so and stop rather than sizing an order on it. ## Empty and failed searches are different answers An empty list means nothing matched — try other words or a broader query. A refusal with an unknown-state code means the search itself failed; the tool never reports a failed read as "no markets". The refusal's `code` and `kind` say which; the server's own doctrine (sent at initialize) and each tool's description hold the error-kind rules — read them there before retrying anything, and never retry on the strength of this skill alone. ## Then Sizing: the `plan-betting-strategy` skill. Buying: the `trade` prompt if your client lists MCP prompts, otherwise `plan-betting-strategy` then the order tools directly. If the user wants to browse rather than search, say so — this server has no market-list tool.
View on GitHub