Skip to main content
Glama
Arjein

Polymarket MCP Server

by Arjein

get_positions

Retrieve an authenticated user's Polymarket portfolio positions, including share size, average entry price, and P&L, with filters for market, event, and position size.

Instructions

Retrieve current portfolio positions and quantitative holdings for the authenticated user.

Provides detailed position data including share size, average entry price, and calculated P&L for each held outcome token. Automatically utilizes the wallet address defined in the POLYMARKET_WALLET_ADDRESS environment variable.

Args: market (Optional[str]): Filter results by a specific market condition ID. event_id (Optional[str]): Filter results by a specific overarching event ID. size_threshold (Optional[float]): The minimum numerical position size required for inclusion in the results. limit (Optional[int]): The maximum number of paginated results to return. offset (Optional[int]): The pagination offset.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNo
marketNo
offsetNo
event_idNo
size_thresholdNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden, and it does disclose the key behavioral trait: it 'Automatically utilizes the wallet address defined in the POLYMARKET_WALLET_ADDRESS environment variable', which is critical auth context. It also describes returned fields (share size, entry price, P&L). It stops short of stating rate limits, error behavior, or what empty results mean.

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

Conciseness4/5

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

Front-loaded purpose sentence, then a detail sentence, then a clean Args block per parameter. Well-structured and each section earns its place. Slightly verbose in prose but no wasted filler.

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

Completeness5/5

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

For a 5-param, no-required, read-only positions tool with an output schema present (so return values need not be explained), the description covers purpose, auth source, and all parameter semantics. Nothing an agent needs to call it correctly is missing.

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?

Schema description coverage is 0%, so the description must compensate, and it does document all five parameters with types and intent (filter by market condition ID, event ID, min size threshold, pagination limit/offset). This meaningfully exceeds the bare schema. Minor gap: no default/pagination interaction detail.

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

Purpose5/5

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

States a specific verb+resource ('Retrieve current portfolio positions and quantitative holdings') and scopes it to the authenticated user. Distinguishes itself from price/market siblings like get_price and get_clob_markets by describing position-level P&L data. An agent can tell this returns holdings, not market data.

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?

The description establishes context ('for the authenticated user') and reveals the env-var wallet source, which implies usage preconditions. However, it never states when to use this over alternatives like get_activity or get_trade_history, nor exclusions. Usage is implied rather than guided.

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