Skip to main content
Glama

Server Details

Rubin: self-custody DEX for crypto perpetuals & spot - trade, read positions, orders, balances.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4/5 across 20 of 20 tools scored. Lowest: 3.2/5.

Server CoherenceA
Disambiguation5/5

Each tool targets a distinct action or resource: order management (cancel, place), market data (candles, orderbook, markets), and account info (balance, equity, positions, fills, PnL). No overlapping purposes.

Naming Consistency5/5

Almost all tools follow a consistent verb_noun pattern in snake_case (e.g., get_balance, place_limit_order, cancel_order). The sole exception 'whoami' is a standard idiom, not a violation.

Tool Count5/5

20 tools is well-scoped for a cryptocurrency exchange server, covering order management, market data, and account operations without being excessive or sparse.

Completeness5/5

The tool surface provides comprehensive CRUD-like coverage for trading: placing and canceling orders (including conditional), retrieving balances, positions, fills, PnL, and market data. No obvious dead ends.

Available Tools

20 tools
batch_cancelBatch cancel short-term ordersA
DestructiveIdempotent
Inspect

Cancel multiple SHORT_TERM orders in one tx. SHORT_TERM only (chain limitation) — for stateful/mixed use cancel_all_orders.

ParametersJSON Schema
NameRequiredDescriptionDefault
marketYes
clientIdsYes
Behavior3/5

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

Annotations already provide readOnlyHint=false, idempotentHint=true, destructiveHint=true. The description adds context about chain limitation and atomicity ('in one tx'), but does not detail behavior like what happens on failure or authorization needs.

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?

Two short sentences with critical information front-loaded. No unnecessary words.

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

Completeness2/5

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

Despite good annotations, the lack of parameter descriptions and output schema leaves gaps. For a tool with 2 required parameters, the agent needs to understand their meaning and constraints beyond the schema.

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

Parameters1/5

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

Schema coverage is 0% and description provides no explanation for the two parameters (market and clientIds), leaving the agent to rely solely on schema names which may be insufficient.

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?

The description clearly states the action (cancel), the target (multiple SHORT_TERM orders), and the context (in one tx). It also distinguishes from sibling tool cancel_all_orders by specifying that batch_cancel is only for SHORT_TERM orders.

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

Usage Guidelines5/5

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

Explicitly states when to use (SHORT_TERM orders) and when not to ('for stateful/mixed use cancel_all_orders'), providing clear alternatives.

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

cancel_all_ordersCancel all orders in a marketA
DestructiveIdempotent
Inspect

Cancel every OPEN order for the subaccount in a market (handles SHORT_TERM and LONG_TERM automatically). Returns confirmation.remainingOpen — orders still OPEN after the cancel (0 = all gone); if > 0, retry.

ParametersJSON Schema
NameRequiredDescriptionDefault
marketYes
confirmNoAfter canceling, verify no orders remain OPEN via the indexer (default true).
Behavior4/5

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

Annotations already indicate destructive behavior, but the description adds value by specifying that it automatically handles SHORT_TERM and LONG_TERM orders, returns a confirmation object with 'remainingOpen', and advises retry if >0. This provides behavioral context beyond the annotations.

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?

The description is two sentences: first sentence states the core purpose, second explains the return value and retry logic. It is front-loaded, concise, and every sentence adds value without redundancy.

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?

Given the absence of an output schema, the description adequately explains the return value ('remainingOpen') and retry behavior. It also covers both order types. Minor missing details like error handling or behavior when 'confirm' is false reduce completeness slightly, but overall it is sufficient.

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

Parameters2/5

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

Schema description coverage is 50% (only 'confirm' has a description; 'market' is just a string). The tool description does not add meaning to the 'market' parameter or elaborate on the behavior of 'confirm' beyond what the schema already states. It fails to compensate for the missing schema description of 'market'.

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?

The description clearly states the verb 'Cancel every OPEN order' and specifies the resource 'for the subaccount in a market'. It also distinguishes from siblings by noting it handles both order types automatically and implies it cancels all orders, unlike 'cancel_order' (single) or 'batch_cancel' (likely multiple but not all).

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 implies usage for canceling all open orders in a market but does not explicitly state when to use this tool versus alternatives like 'cancel_order' or 'batch_cancel'. There is no exclusionary guidance or prerequisites mentioned, leaving the agent to infer context from the purpose.

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

cancel_orderCancel an orderA
DestructiveIdempotent
Inspect

Cancel a single order by clientId. For SHORT_TERM pass goodTilBlock; for LONG_TERM/CONDITIONAL pass goodTilTimeSeconds (the original good-til value, available from get_open_orders). Returns confirmation with the verified result (canceled / still_open / filled / pending): code: 0 only means the cancel was broadcast. If still_open, the goodTil value likely did not match the original — retry.

ParametersJSON Schema
NameRequiredDescriptionDefault
marketYes
confirmNoVerify the cancel actually took via the indexer (default true).
clientIdYes
orderFlagsYes
goodTilBlockNo
goodTilTimeSecondsNo
Behavior4/5

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

Discloses return format and meaning of codes, including potential retry logic if still_open. Annotations already indicate destructive and idempotent behavior, but description adds valuable context about confirmation and error conditions.

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 sentences front-load the purpose and usage, with no extraneous information. Efficient and well-structured.

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?

Given low schema coverage and no output schema, the description provides essential context about return behavior and dependencies. It mentions the need for original goodTil values from get_open_orders, which is important for successful use.

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?

Despite low schema coverage (17%), the description explains the conditional requirement for goodTilBlock and goodTilTimeSeconds based on orderFlags, and that the value should be from get_open_orders. This compensates for missing schema descriptions.

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?

The description clearly states 'Cancel a single order by clientId', which is a specific verb-resource combination. It distinguishes from siblings like batch_cancel and cancel_all_orders by specifying single order cancellation.

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

Usage Guidelines4/5

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

Provides explicit guidance on when to use goodTilBlock vs goodTilTimeSeconds based on order flags, and mentions retrieving the original value from get_open_orders. Could be improved by explicitly stating when not to use (e.g., for batch operations) but still strong.

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

get_balanceGet balancesA
Read-only
Inspect

Get the subaccount collateral (USDC asset position) and the on-chain wallet bank balances (gas). Collateral is what backs trading.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

The annotation readOnlyHint=true already indicates a read-only operation, and the description reinforces this with 'Get'. It adds value by detailing exactly what is retrieved (collateral and wallet bank balances) and defines collateral. No contradictory information is present.

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?

The description is two sentences, front-loading the main action and adding a brief, useful definition. No unnecessary words or repetition.

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?

For a zero-parameter tool with no output schema, the description adequately explains the return values (two balance types). However, it could be slightly more complete by mentioning the format or that both balances are returned as numbers.

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?

There are no parameters, so the description does not need to add parameter information. Baseline 4 for zero parameters is appropriate.

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?

The description clearly states that the tool retrieves two specific types of balances (subaccount collateral and on-chain wallet bank balances) and explains what collateral is. It distinguishes itself from sibling tools like get_equity by specifying the exact resources.

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

Usage Guidelines2/5

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

While the description explains what the tool does, it provides no guidance on when to use it versus alternatives such as get_equity or get_positions. There is no mention of when not to use it or context for choosing this tool.

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

get_block_heightGet latest block heightA
Read-only
Inspect

Return the latest chain block height. Useful for SHORT_TERM order goodTilBlock math.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

The description adds no contradictions to the annotation's readOnlyHint=true. It discloses the tool returns a block height, which is consistent with a read-only operation. The simple nature means no further behavioral details are needed.

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?

The description is a single, front-loaded sentence that efficiently conveys the tool's purpose and usage context without any extraneous words.

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?

Given the tool's simplicity (no parameters, no output schema, single return value), the description is complete. It explains what it returns and why it's useful, leaving no ambiguity.

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?

There are zero parameters, and the schema description coverage is 100% (empty object). The description adds value by explaining the use case (order math), which compensates for the lack of parameter info, meeting the baseline for 0 params.

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?

The name and title clearly indicate the tool returns the latest block height. The description further specifies 'latest chain block height' and distinguishes it from sibling tools, none of which relate to block height.

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

Usage Guidelines4/5

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

The description states it is 'useful for SHORT_TERM order goodTilBlock math,' providing clear context for when to use this tool. While it doesn't explicitly mention alternatives, no sibling tool performs a similar function, so the guidance is sufficient.

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

get_candlesGet candles (OHLCV)B
Read-only
Inspect

Get OHLCV candles for a market at a given resolution. Useful for trend/volatility analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
toISONoISO 8601 end time
marketYesMarket ticker, e.g. BTC-USD
fromISONoISO 8601 start time
resolutionYesCandle resolution
Behavior2/5

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

The annotation already declares readOnlyHint=true, and the description adds no new behavioral context (e.g., rate limits, pagination, data ordering). It carries minimal incremental value.

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?

A single, front-loaded sentence with no extraneous words. Every part contributes to clarity, and the structure is optimal for quick scanning.

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

Completeness2/5

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

With 5 parameters, no output schema, and only a readOnly annotation, the description is too brief. It omits details like default time range, result ordering, or pagination, leaving the agent underinformed.

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

Parameters3/5

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

Schema description coverage is 80%, so the schema already explains most parameters. The description does not add additional meaning beyond what the schema provides, placing it at the baseline 3.

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?

The description clearly states the tool retrieves OHLCV candles for a market at a given resolution, using specific verbs and resource. It distinguishes from get_candles_multi only by omission, not explicitly, so a 4 rather than 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?

The description mentions usefulness for trend/volatility analysis, giving context but no explicit when/when-not or alternatives like get_candles_multi. It implies usage but lacks clear guidance.

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

get_candles_multiGet multi-timeframe candlesA
Read-only
Inspect

Get recent OHLCV candles for a market across MULTIPLE resolutions in one call — by default ALL indexer resolutions (1MIN, 5MINS, 15MINS, 30MINS, 1HOUR, 4HOURS, 1DAY) — so the agent can read the trend across timeframes at once. Returns { candles: { : [...] } }, newest first. Lower limit (e.g. 20) or pass a resolutions subset to keep the payload small.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoCandles per resolution (default 50, most recent).
marketYesMarket ticker, e.g. BTC-USD
resolutionsNoSubset of resolutions (default: all indexer resolutions).
Behavior4/5

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

Annotations already indicate readOnlyHint=true. The description adds value by detailing the return structure (`{ candles: { <resolution>: [...] } }`), the order (newest first), and default resolutions. This goes beyond annotations.

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?

The description is a single sentence with one additional clause, front-loading the purpose and then providing key details. No wasted words.

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?

With no output schema, the description adequately explains the return shape and customization options. It covers all necessary information for an agent to use the tool correctly.

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 100%, but the description adds meaning by explaining defaults (all indexer resolutions), the impact of 'limit', and how to use 'resolutions' to stay small. This enhances understanding.

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?

The description clearly states the tool gets recent OHLCV candles across multiple resolutions, using specific verb 'get' and resource 'OHLCV candles for a market'. It distinguishes from sibling 'get_candles' by emphasizing multi-resolution and default all indexer resolutions.

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

Usage Guidelines4/5

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

The description explicitly states that the tool is for reading trends across timeframes at once. It provides practical advice on keeping payload small by lowering limit or passing a resolutions subset. While it doesn't explicitly state when not to use, the sibling context of 'get_candles' implies single-resolution use cases.

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

get_equityGet account summaryA
Read-only
Inspect

Get the subaccount summary: equity, freeCollateral, marginEnabled, open perpetual positions and asset positions.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior3/5

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

Annotations already mark it as readOnlyHint=true. The description adds value by listing the returned fields, but no additional behavioral context (e.g., rate limits, data freshness, or that it only works for the current subaccount). The readonly nature is clear from the combination.

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?

A single, well-structured sentence that efficiently communicates the tool's purpose and output. No wasted words.

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?

Given no parameters and no output schema, the description sufficiently explains what the tool returns. It could mention that it's read-only (covered by annotations), but the list of returned fields is adequate for a simple summary tool.

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?

There are zero parameters, and schema coverage is 100%. The description does not need to add parameter information. The baseline for 0 parameters is 4, and the description correctly omits any param details.

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?

The description clearly states 'Get the subaccount summary' and enumerates the specific data returned (equity, freeCollateral, marginEnabled, perpetual positions, asset positions). This distinguishes it from sibling tools like get_balance (just balance) and get_positions (only positions).

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?

No explicit guidance on when to use this tool versus alternatives. The description implies it provides a comprehensive summary, but does not contrast with tools like get_pnl or get_balance. An agent would benefit from knowing this is the one-stop summary tool.

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

get_fillsGet fills (trade history)B
Read-only
Inspect

Get executed fills for the subaccount, including price, size, fee and maker/taker liquidity.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
limitNo
marketNoMarket ticker filter, e.g. BTC-USD
Behavior3/5

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

Annotations already indicate readOnlyHint=true. Description adds that it returns price, size, fee, and liquidity type, but no additional behavioral details like pagination behavior or rate limits.

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?

Single sentence, front-loaded with verb and resource, no extraneous words. Efficiently communicates core purpose.

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

Completeness2/5

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

No output schema provided, yet description does not explain return format or pagination behavior. Lacks sufficient detail for a tool with 3 optional parameters and no output schema.

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

Parameters2/5

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

Schema description coverage is 33% (only market described). Description does not explain page/limit semantics or defaults, despite low schema coverage requiring compensation.

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?

Description clearly specifies verb 'get', resource 'executed fills', and lists included fields (price, size, fee, maker/taker). Distinguishes from sibling tools like get_open_orders or get_positions.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., for trade history vs open orders). No exclusions or prerequisites mentioned.

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

get_marketGet a perpetual marketA
Read-only
Inspect

Get details for one perpetual market (clobPairId, atomicResolution, quantumConversionExponent, tick/step sizes, oracle price, status).

ParametersJSON Schema
NameRequiredDescriptionDefault
marketYesMarket ticker, e.g. BTC-USD
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description does not add significant behavioral context beyond listing return fields. No contradictions.

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?

The description is a single sentence that is front-loaded with the purpose and lists key return fields. No unnecessary words.

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?

Given the tool's simplicity (1 parameter, no output schema, no nested objects), the description fully captures what the tool does and what it returns.

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

Parameters3/5

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

Schema coverage is 100% with the 'market' parameter described as 'Market ticker, e.g. BTC-USD'. The description adds no additional meaning beyond what the schema provides, meeting the baseline.

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?

The description clearly states 'Get details for one perpetual market' and lists specific fields (clobPairId, atomicResolution, etc.). It is a specific verb+resource and implicitly distinguishes from 'list_markets' which retrieves multiple markets.

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 does not explicitly state when to use this tool vs alternatives like 'list_markets'. However, the purpose is straightforward and the context of retrieving a single market is clear.

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

get_open_ordersGet open ordersA
Read-only
Inspect

Get currently active orders for the subaccount, optionally filtered by market and side. Includes OPEN resting orders and UNTRIGGERED conditional orders (TP/SL accepted on-chain but not yet triggered).

ParametersJSON Schema
NameRequiredDescriptionDefault
sideNo
limitNo
marketNoMarket ticker filter, e.g. BTC-USD
Behavior4/5

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

Annotations declare readOnlyHint=true, matching the read-only nature. The description adds value by specifying the types of orders included (open resting and untriggered conditional), which is beyond the annotation. No contradictions.

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?

The description is two sentences, front-loads the main action, and contains no unnecessary words. Every sentence provides value.

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?

The description adequately covers the tool's scope given it has no output schema. It tells the agent what kind of data is returned. However, it does not explain the limit parameter's pagination behavior, which is a minor gap.

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

Parameters2/5

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

Schema coverage is only 33% (only market has a description). The description mentions optional filtering by market and side but does not explain the side enum values or the limit parameter. This fails to compensate for the low schema coverage.

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?

The description clearly states the tool gets currently active orders for the subaccount, optionally filtered by market and side. It distinguishes between open resting orders and untriggered conditional orders, which is specific and differentiates from sibling tools like cancel_order or place_limit_order.

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 implies usage for retrieving active orders but does not explicitly specify when not to use it or compare to alternatives like get_fills for historical orders. It provides adequate context for a basic query tool but lacks explicit exclusions.

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

get_orderbookGet orderbookA
Read-only
Inspect

Get the live orderbook (bids/asks) for a market, optionally truncated to a depth.

ParametersJSON Schema
NameRequiredDescriptionDefault
depthNoMax levels per side
marketYesMarket ticker, e.g. BTC-USD
Behavior3/5

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

Annotations already indicate readOnlyHint=true, and the description adds 'live' to imply dynamic data. No other behaviors (e.g., rate limits, pagination) are mentioned, but for a simple read operation, this is adequate.

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?

The description is a single sentence that conveys the essential information without any wasted words. It is front-loaded with the key action and resource.

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?

For a simple tool with two parameters and no output schema, the description adequately explains what the tool does and mentions the return object (bids/asks). It lacks details on format but is reasonable.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents both parameters. The description's mention of 'optionally truncated' mirrors the depth parameter without adding new meaning.

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?

The description clearly states the verb 'Get', the resource 'live orderbook', and specifies it is for a market with optional depth truncation. This distinguishes it from sibling tools like 'get_candles' or 'get_market'.

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

Usage Guidelines4/5

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

The description implies usage for retrieving current orderbook data. While no explicit when-not or alternatives are given, the tool's purpose is unique among siblings, so context is sufficiently clear.

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

get_pnlGet historical PnLB
Read-only
Inspect

Get historical PnL ticks for the subaccount (equity, totalPnl, netTransfers over time). Use createdOnOrAfter to bound the range.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
limitNo
createdOnOrAfterNoISO 8601 lower bound
Behavior3/5

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

The description adds context beyond the readOnlyHint annotation by specifying that the tool returns historical ticks over time with specific fields. However, it doesn't disclose behavioral traits like rate limits or idempotency.

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?

The description is concise with two sentences, front-loading key information about the resource and field names, with no extraneous text.

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

Completeness2/5

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

Given no output schema and the tool's complexity (historical data points), the description lacks detail on the response structure (e.g., format of ticks) and fails to cover pagination, making it incomplete for effective use.

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

Parameters2/5

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

Schema coverage is low (33%) and the description only addresses the createdOnOrAfter parameter. The page and limit parameters are not clarified beyond schema types, leaving ambiguity for the agent.

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?

The description clearly states the verb 'Get' and resource 'historical PnL ticks for the subaccount', and lists the specific fields returned. However, it does not differentiate from sibling tools like get_equity, which may serve a similar purpose.

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 provides a usage hint for the createdOnOrAfter parameter but lacks guidance on when to use this tool versus alternatives (e.g., get_equity) or on pagination and limit usage.

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

get_positionsGet perpetual positionsA
Read-only
Inspect

Get perpetual positions with size, side, entryPrice, unrealizedPnl, realizedPnl and netFunding. Defaults to OPEN positions.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoPosition status filter
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the agent knows this is a safe read operation. The description adds value by specifying default behavior (returning OPEN positions) and the fields included in the response, which are beyond the schema.

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?

The description is a single, efficient sentence that front-loads the key action and result. No unnecessary words, making it quickly parsable.

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?

For a read-only tool with one optional parameter and no output schema, the description adequately covers the basics: what is returned and the default filter. It could mention if all positions are returned or pagination behavior, but this is minor given the simplicity.

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?

The schema has 100% coverage for the single parameter 'status' with an enum and description. The description adds the default value behavior (OPEN), which is not in the schema, providing extra clarity.

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?

The description clearly states 'Get perpetual positions' with a specific verb and resource. It lists the fields returned (size, side, entryPrice, etc.) and distinguishes from sibling tools like get_open_orders or get_balance, which serve different functions.

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 mentions that it 'Defaults to OPEN positions,' implying usage for retrieving open positions unless filtered. However, it does not explicitly state when to use this tool over alternatives or provide guidance on when not to use it.

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

list_marketsList perpetual marketsA
Read-only
Inspect

List all perpetual markets with ticker, status and oracle price. Use this first to discover valid market tickers (e.g. BTC-USD) before placing orders.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

Annotations already declare readOnlyHint=true, so the description adds value by specifying the returned fields (ticker, status, oracle price). However, it does not mention pagination or result ordering, though with no parameters this is minor.

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?

Two sentences, no wasted words. First sentence states the action, second provides usage context. Front-loaded and efficient.

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?

With no parameters and no output schema, the description fully captures what the tool does and how to use it. No additional information is necessary.

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?

There are no parameters, and schema coverage is 100%. The description implies no inputs needed, which is correct. Baseline for zero parameters is 4.

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?

The description clearly states that it lists all perpetual markets with ticker, status, and oracle price. It provides an example ticker format and distinguishes itself from sibling tools like 'get_market' (singular) by listing all markets.

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

Usage Guidelines5/5

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 guidance on when to use the tool and its prerequisite role for order placement tools.

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

place_limit_orderPlace a limit orderAInspect

Place a limit order. Default timeInForce=GTT (long-term, durable, broadcast-commit so errors return synchronously). Use SHORT_TERM only for latency-sensitive orders (expire within ~20 blocks, broadcast async). NOTE: stateful (GTT) orders are rate-limited to 2/block and 20 per 100 blocks — pace placements. Returns confirmation with the REAL outcome verified via the indexer (filled / partially_filled / resting / unfilled / pending) — broadcast code: 0 only means the tx was accepted, NOT that it filled. Report from confirmation.outcome; if it is pending, the indexer is lagging — re-check shortly.

ParametersJSON Schema
NameRequiredDescriptionDefault
sideYes
sizeYesSize in base units
priceYes
marketYesMarket ticker, e.g. BTC-USD
confirmNoVerify the real outcome via the indexer after broadcast (default true).
clientIdNo
postOnlyNoReject if it would cross (maker-only). Defaults to server config.
reduceOnlyNo
timeInForceNoGTT
goodTilBlockOffsetNoSHORT_TERM blocks ahead (default 10)
goodTilTimeSecondsNoGTT lifetime (default 3600)
Behavior5/5

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

Returns detailed confirmation object with real outcome (filled, partially_filled, etc.), clarifying that broadcast success != fill. Explains differences between GTT (broadcast-commit, synchronous errors) and SHORT_TERM (async, ~20 block expiry). Rate limits disclosed. Annotations are all false, so description carries full burden and does so thoroughly.

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-sentence paragraph, no fluff. Each sentence serves a purpose: action, usage guidance, and return value explanation. Front-loaded with core purpose. Could use bullet points but remains highly efficient.

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?

Covers main behavioral aspects: two timeInForce options, rate limits, return format, and confirmation semantics. Missing details on parameters like reduceOnly/postOnly and no cross-tool comparison (e.g., vs market order). But given tool complexity (11 params, no output schema), the description provides sufficient context for correct usage.

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?

Adds meaning beyond schema for key parameters: timeInForce (GTT vs SHORT_TERM behavior), goodTilBlockOffset (default 10), goodTilTimeSeconds (default 3600), confirm (verifies outcome). Schema covers 55% of parameters; description compensates for uncovered ones like clientId and reduceOnly are not explained, but postOnly and others have partial schema descriptions. Overall, adds significant clarity.

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?

Clear verb+resource: 'Place a limit order.' Easily distinguishes from siblings like 'place_market_order', 'place_stop_loss', and 'place_take_profit'. No ambiguity.

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

Usage Guidelines4/5

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

Provides explicit context: default timeInForce=GTT, when to use SHORT_TERM (latency-sensitive), and rate limits for GTT orders. Does not explicitly contrast with alternatives (e.g., market order) but offers sufficient guidance for correct usage.

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

place_market_orderPlace a market orderAInspect

Place an IOC market order. Provide slippageBps to cap the fill price relative to the oracle price (omit → no price protection: the order sweeps the book). reduceOnly closes an existing position. Returns confirmation with the REAL outcome verified via the indexer (filled / partially_filled / unfilled / pending): broadcast code: 0 only means the tx was accepted — an IOC order can cancel UNFILLED when price protection is tighter than the book (a tight slippageBps on a thin/spread market). Always report from confirmation.outcome, not code; if it is pending, the indexer is lagging — wait a few seconds and re-check before concluding.

ParametersJSON Schema
NameRequiredDescriptionDefault
sideYes
sizeYesSize in base units
marketYesMarket ticker, e.g. BTC-USD
confirmNoVerify the real fill via the indexer after broadcast (default true).
clientIdNo
reduceOnlyNo
slippageBpsNoMax slippage vs oracle, in bps
Behavior5/5

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

Discloses crucial behavioral details: the distinction between transaction acceptance and actual fill outcome, the fact that IOC can cancel unfilled if slippage is too tight, and the need to check confirmation.outcome over code. This goes well beyond the annotations, which only indicate not read-only and not destructive.

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?

Dense with information, every sentence adds value. Slightly long but well-structured with a clear flow from main action to parameter details to return value handling. No redundant phrases.

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?

Given 7 parameters and no output schema, the description fully explains the tool's behavior, including edge cases like pending confirmation and the real outcome verification. It prepares the agent for non-trivial behavior of IOC orders.

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?

Adds meaning to slippageBps (cap relative to oracle, omit means no protection) and reduceOnly (closes existing position). Schema coverage is 57%, and the description compensates by explaining these parameters. However, it does not cover clientId or explicitly link confirm to the verification process mentioned later.

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?

The description explicitly states 'Place an IOC market order', clearly identifying the action and order type. It distinguishes itself from sibling tools like place_limit_order, place_stop_loss, and place_take_profit by specifying IOC behavior.

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

Usage Guidelines4/5

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

Provides guidance on when to use the tool (market orders) and explains key parameters like slippageBps (omit for no protection) and reduceOnly (closes position). Does not explicitly state when not to use, but the context of sibling tools implies alternatives exist.

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

place_stop_lossStop lossBInspect

Place a reduce-only Stop loss (conditional market order) that triggers at triggerPrice.

ParametersJSON Schema
NameRequiredDescriptionDefault
sideYes
sizeYes
marketYes
clientIdNo
triggerPriceYes
Behavior3/5

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

Annotations indicate this is a write operation (readOnlyHint=false), and the description adds 'reduce-only' and 'conditional market order' context, which are beyond annotations. However, it does not disclose potential consequences such as order execution risks, fees, or failure conditions, so an average score is appropriate.

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?

The description is a single sentence that efficiently conveys the core action and key attribute (reduce-only, conditional), with no extraneous words.

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

Completeness2/5

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

Given no output schema and 5 parameters, the description is too sparse. It omits return value, order lifecycle details (e.g., conversion to market order), and constraints like reduce-only meaning it can only reduce an existing position, which are important for correct usage.

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

Parameters2/5

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

With 0% schema description coverage, the description should explain parameters but only mentions triggerPrice. It does not describe side (enum), size (units), market (format), or clientId purpose, leaving ambiguity for the agent.

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?

The description clearly states the verb 'Place', the resource 'Stop loss', and specifies it's a 'reduce-only' conditional market order triggered at a price, distinguishing it from sibling tools like place_limit_order or place_market_order.

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

Usage Guidelines2/5

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

The description does not provide guidance on when to use this tool versus alternatives like place_take_profit or place_limit_order. It lacks context about scenarios where a stop loss is appropriate or prerequisites like having an existing position.

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

place_take_profitTake profitAInspect

Place a reduce-only Take profit (conditional market order) that triggers at triggerPrice.

ParametersJSON Schema
NameRequiredDescriptionDefault
sideYes
sizeYes
marketYes
clientIdNo
triggerPriceYes
Behavior4/5

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

The description adds behavioral context beyond annotations by specifying the order is 'reduce-only' and a conditional market order. It does not contradict annotations (which are minimal) and gives important clues about order behavior.

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?

The description is a single, efficient sentence (13 words) that front-loads the core function. Every word adds value, and there is no redundancy.

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

Completeness3/5

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

The description covers the essential action and trigger condition, but lacks details on parameter meanings, effects (e.g., reduces position), and potential slippage. Given no output schema, more context would be beneficial for a complete understanding.

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

Parameters2/5

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

With 0% schema description coverage, the description only mentions triggerPrice, leaving side, size, market, and clientId unexplained. The schema provides basic constraints but the description fails to add meaning, especially for required parameters like side and market.

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?

The description clearly states the action ('place a reduce-only Take profit') and distinguishes it from sibling order tools like place_limit_order or place_stop_loss. It specifies the conditional nature and trigger price, making the purpose unambiguous.

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 implies usage for take profit orders but provides no explicit guidance on when to use this over alternatives like stop loss or limit orders. No exclusion criteria or context for choosing this tool.

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

whoamiDescribe this sessionA
Read-only
Inspect

Report what this session controls: the master account/subaccount, whether it can trade or is read-only, and the exact on-chain authorization scope (which messages, which subaccount, and that it CANNOT withdraw/transfer). Call this first.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior5/5

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

Annotations mark readOnlyHint=true, consistent with description. Description adds details about what is reported and explicitly states it cannot withdraw/transfer, beyond annotations.

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?

Two concise sentences, directly stating purpose and usage order. No wasted words, front-loaded with essential information.

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 simple informational tool with no output schema, the description sufficiently explains what to expect. Complete for its purpose.

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?

No parameters exist (schema coverage 100%), so baseline is 4. Description adds meaning by explaining what the output contains, which is sufficient.

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?

Description clearly states the tool reports session controls: master account/subaccount, trading capability, and on-chain authorization scope. Differentiates from siblings that handle trading operations.

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

Usage Guidelines5/5

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

Explicitly instructs to 'Call this first', providing clear guidance on when to use. No alternatives needed as this is a unique introspective tool.

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

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources