List perpetual markets
list_marketsList all perpetual markets with ticker, status and oracle price. Use this first to discover valid market tickers (e.g. BTC-USD) before placing orders.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
list_marketsList all perpetual markets with ticker, status and oracle price. Use this first to discover valid market tickers (e.g. BTC-USD) before placing orders.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, so the read-only nature is covered. The description adds detail on the returned fields (ticker, status, oracle price), which is helpful but not extensive. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two concise sentences. The first states the tool's function, and the second provides usage guidance. Every sentence is necessary and adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters, no output schema, and the readOnly annotation covers safety, the description sufficiently explains what is returned (ticker, status, oracle price) and the use case. It is complete for a simple listing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the description does not need to explain them. With schema coverage at 100% (empty schema), a baseline of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list' and the resource 'all perpetual markets', specifying the fields returned (ticker, status, oracle price). It also differentiates from sibling tools by advising to use it first to discover valid market tickers before placing orders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this first to discover valid market tickers before placing orders', providing clear context for when to use the tool. It does not mention exclusions or alternative tools, but the guidance is sufficient for the intended use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.
Most tools are clearly distinct, but there is overlap among the read-heavy account tools: get_balance/get_funding_status/fund virtually duplicate each other, and get_equity/get_portfolio/get_position_risk/get_open_orders/get_positions all converge on equity and open-position data. The detailed descriptions help an agent choose, but several tools have fuzzy boundaries.
The overwhelming majority follow the expected verb_noun convention: get_*, place_*, cancel_*, close_*. Minor deviations such as batch_cancel, get_candles_multi, top_up_gas, and whoami make the pattern not perfectly uniform, but the inconsistency is small.
At 33 tools, the surface is beyond what most agents need and includes several redundant query helpers rather than genuinely distinct operations. A broad exchange can justify a large surface, but get_balance/get_funding_status, get_equity/get_portfolio/get_position_risk, and get_candles/get_candles_multi make the set feel top-heavy.
The core lifecycle is well covered: market discovery, market data, order placement/cancellation, position management, risk, funding transfers, PnL, and account status. Obvious gaps are limited to historical order lookup by order ID, a way to cancel across all markets in one call, and a few optional account-history conveniences.