Skip to main content
Glama
mcp-server-polymarket

mcp-server-polymarket

List positions

list_positions
Read-onlyIdempotent

List a wallet's Polymarket positions across OPEN, REDEEMABLE, REDEEMABLE_LOST, MERGEABLE, or CLOSED states, with size, average price, value, PnL, filters, and cursor paging.

Instructions

A wallet's positions through their lifecycle: OPEN, REDEEMABLE (won, claimable), REDEEMABLE_LOST, MERGEABLE (both sides held) or CLOSED, with size, average price, value and PnL. Sizes are shares, _usdc fields USD. Keep the same filters when paging.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "list_positions"
  }
}

Input Schema

NameRequiredDescriptionDefault
userNoWallet whose positions to list.
limitNoRows per page.
titleNoSubstring of the market title.
cursorNonext_cursor from the previous page. Empty starts at the top.
statusNoOPEN
sort_byNoCURRENT_VALUE
ascendingNo
event_idsNoUp to 20 event ids.
condition_idsNoNarrow to markets; alone, lists those markets' holders.
min_value_usdNoSkip positions worth less than this.
include_archivedNo

Output Schema

NameRequiredDescriptionDefault
noteNo
countNo
itemsNo
has_moreNo
next_cursorNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and open-world, so the safety profile is covered. The description adds real behavioral context beyond that: the meaning of each lifecycle status, the fact that sizes are shares while `_usdc` fields are USD, and the paging constraint to reuse filters. It does not cover defaults (e.g. status defaulting to OPEN only) or archive handling, keeping it below 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences, front-loaded with the resource and its state space before the field/unit notes and the paging rule. Every sentence carries information an agent would otherwise have to guess; no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the description is appropriately sized for an 11-parameter read tool. The main omission is that the default status is OPEN, meaning the tool returns only open positions unless changed — a behaviorally significant default the description never mentions, alongside no mention of include_archived.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 64% schema coverage, the description usefully compensates by decoding enum values the schema leaves bare — REDEEMABLE means 'won, claimable' and MERGEABLE means 'both sides held' — and by clarifying units (shares vs USD `_usdc` fields). It reinforces the paging contract for cursor use, though it says nothing about limit, sort_by, min_value_usd or include_archived.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (list) and resource (a wallet's positions) and enumerates the lifecycle states returned (OPEN, REDEEMABLE, REDEEMABLE_LOST, MERGEABLE, CLOSED) plus the fields surfaced (size, average price, value, PnL). It does not distinguish itself from siblings such as list_combo_positions or list_market_holders, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: the phrase 'Keep the same filters when paging' tells the agent how to advance through pages but never states when this tool is the right choice over list_combo_positions or list_market_holders. No exclusions or prerequisites are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.