get_owned_positions
List the positions an address owns in a market, with listability (voted/attached positions can't transfer).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| owner | Yes | ||
| marketId | Yes |
List the positions an address owns in a market, with listability (voted/attached positions can't transfer).
| Name | Required | Description | Default |
|---|---|---|---|
| owner | Yes | ||
| marketId | Yes |
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It adds a meaningful caveat about voted/attached positions not being transferable, which is useful, but it does not disclose potential return-shape behavior, pagination, or whether all owned positions are always returned.
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?
A single sentence that front-loads the core action and resource, then attaches the important listability qualifier. There is no filler or redundant wording.
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?
For a simple two-parameter read-style tool, the description covers purpose and a key behavioral caveat. But with no annotations and no output schema, it leaves return shape and edge-case behavior unmentioned, so an agent may need to infer those details.
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?
Schema description coverage is 0%, so the description must explain the parameters. 'An address owns in a market' clearly maps to the owner and marketId parameters, but it does not explicitly attach those names or add detail about marketId format beyond the schema pattern.
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 uses a specific verb ('List') and names the exact resource: positions owned by an address within a market. It also adds a distinguishing detail about listability that separates it from generic listing tools like get_listings or get_recent_trades.
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 intent is clear: use this when you need the positions an address owns in a specific market. However, it does not explicitly mention when not to use it or point to alternatives among the sibling tools, so guidance is implied rather than stated.
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 map cleanly to distinct resources and actions, with the prepare_* group differentiated by their operation suffix. The main ambiguity is get_listing_details, whose description says 'one order' while the name implies a listing, so it could be confused with get_orders or get_listings.
All tool names are lowercase snake_case and follow a verb-first shape using get/list/search/prepare/subscribe/unsubscribe, which is predictable. Minor inconsistencies exist: get_ and list_ are both used for read operations, and prepare_finalize/prepare_cancel pair the prepare_ prefix with a verb rather than a noun.
15 tools is at the high end but each one earns its place: market discovery, order listing, transaction preparation, purchase/offer/cancel flows, Basename finalization, and notification management. There is no obvious padding or missing category that would make the count feel bloated.
The core marketplace lifecycle is well covered: create listings/offers, buy/accept, cancel, finalize, and query listings/orders/positions/trades/names/notifications. The most notable gap is a lack of a synchronous, first-class query for offers received on an owned listing or position; discovery of incoming offers relies on notifications or knowing the bidder's address.