RubinTrade
Server Details
Trade crypto perpetual futures and spot on Rubin, a self-custody decentralized exchange, from AI agents — place and manage orders and read order books, candles, positions, and 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.
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.
Tool Definition Quality
Average 4.3/5 across 26 of 26 tools scored. Lowest: 3/5.
Each tool targets a distinct operation: market entry, limit orders, cancellations, position closures, and various data queries. Even overlapping tools like get_positions and get_portfolio are clearly differentiated by purpose and description.
Almost all tools follow a consistent verb_noun pattern (e.g., get_*, place_*, cancel_*), with only 'whoami' as a minor deviation. The pattern aids predictability for an agent.
26 tools is slightly above the typical 3-15 range, but each tool serves a necessary function in a complex trading domain. The count is justified by the need for separate order types, data queries, and risk management.
The tool set covers the full order lifecycle (create, cancel, close) and essential data (orderbook, candles, positions, PnL). Minor gaps exist, such as no order modification tool, but core trading workflows are complete.
Available Tools
26 toolsbatch_cancelBatch cancel short-term ordersADestructiveIdempotentInspect
Cancel multiple SHORT_TERM orders in one tx. SHORT_TERM only (chain limitation) — for stateful/mixed use cancel_all_orders.
| Name | Required | Description | Default |
|---|---|---|---|
| market | Yes | ||
| clientIds | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive and idempotent behavior. The description adds context about 'chain limitation' and atomicity via 'in one tx', providing additional behavioral insight 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no wasted words. The dash separates the core purpose from usage guidance efficiently.
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 simple tool with annotations covering key traits, the description provides adequate context including sibling alternative and limitation. However, missing parameter documentation leaves a gap for agents. No output schema needed for this operation type.
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%, and the description does not explain the meaning or format of 'market' or 'clientIds'. The description adds no value beyond the schema for parameters.
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 tool cancels multiple SHORT_TERM orders in one transaction. It distinguishes from the sibling 'cancel_all_orders' by specifying the order type limitation.
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?
Explicitly indicates when to use (for SHORT_TERM orders) and when not to use (for stateful/mixed orders, use cancel_all_orders). Provides clear guidance on 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 marketADestructiveIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| market | Yes | ||
| confirm | No | After canceling, verify no orders remain OPEN via the indexer (default true). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (destructiveHint=true, idempotentHint=true), description adds that it handles both SHORT_TERM and LONG_TERM orders automatically and details retry behavior based on remainingOpen. 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?
Two sentences, no fluff. First sentence conveys primary action and automatic handling, second explains output and retry logic. Every sentence earns its place.
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 2-parameter tool with no output schema, description covers core behavior (cancels open orders, handles both types), explains the return value, and gives retry guidance. Lacks mention of potential side effects or scope, but sufficient given annotations.
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 coverage is 50% (only 'confirm' has description). Description does not add parameter-level meaning for 'market' (type string, no format or constraints) beyond stating it's a market. With low coverage, description should compensate but does not.
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?
Description clearly states the verb 'cancel', the resource 'every OPEN order', and the scope 'in a market'. It differentiates from siblings like 'cancel_order' (single order) and 'batch_cancel' (not market-specific) by specifying market-level cancellation.
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?
Description explains the output parameter 'remainingOpen' and provides a retry instruction for non-zero values. It implies usage context (cancel all open orders in a market) and automatically handles order types, but lacks explicit when-not or alternative tool comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_orderCancel an orderADestructiveIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| market | Yes | ||
| confirm | No | Verify the cancel actually took via the indexer (default true). | |
| clientId | Yes | ||
| orderFlags | Yes | ||
| goodTilBlock | No | ||
| goodTilTimeSeconds | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses return confirmation with possible statuses (canceled, still_open, filled, pending) and that code:0 only means broadcast. Explains goodTil mismatch behavior beyond annotations (destructiveHint, idempotentHint).
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?
Two sentences plus a brief return value explanation. Front-loaded with main action and key conditional, very efficient.
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?
Covers core logic (goodTil usage) and return value structure, plus troubleshooting. Lacks explanation of market parameter but it's standard; overall sufficient for correct invocation.
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?
With only 17% schema coverage, the description adds crucial meaning: explains goodTilBlock and goodTilTimeSeconds based on orderFlags, and mentions confirm parameter implicitly. Does not explain market, but the clientId and orderFlags are clarified.
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 'Cancel a single order by clientId', specifying the action and resource. It distinguishes from siblings like batch_cancel and cancel_all_orders by focusing on a single order.
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?
Provides explicit guidelines: for SHORT_TERM use goodTilBlock, for LONG_TERM/CONDITIONAL use goodTilTimeSeconds. Warns about retrying if still_open due to goodTil mismatch, aiding correct usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
close_all_positionsClose all positionsAInspect
Flatten EVERY open perpetual position with reduce-only MARKET orders (one per market). Respects the operator market allowlist (disallowed markets are skipped and reported). Each close is bounded at oracle ± slippageBps mirrored by side (default 500 bps = 5%). Returns a per-market result array — for any market reporting unfilled/partially_filled, re-run with a larger slippageBps.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| slippageBps | No | Max slippage vs oracle, in bps (default 500). Raise to sweep thin books. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description details the order types (reduce-only MARKET), slippage bounds (oracle ± slippageBps with default 500 bps), and allowlist respect. Annotations do not contradict; the description adds significant behavioral context beyond readOnlyHint and destructiveHint.
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 is concise, with the primary action front-loaded in the first sentence. Every sentence adds value, and there is no redundant or vague language.
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's complexity and the absence of an output schema, the description provides sufficient detail on behavior, expected outcomes (per-market result array), and post-action guidance (re-run with larger slippage). It lacks mention of the 'confirm' parameter's role but is otherwise complete.
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?
The description covers the meaning and default of 'slippageBps' but does not describe the 'confirm' boolean parameter, which is critical for a destructive action. Schema description coverage is only 50%, and the description fails to compensate for the missing parameter documentation.
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 'Flatten' and clearly identifies the resource 'EVERY open perpetual position' with reduce-only MARKET orders. It distinguishes from sibling tools like 'close_position' and 'cancel_all_orders' by stating it closes all positions across markets.
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 specifies when to re-run with larger slippage if orders are unfilled or partially filled. It notes that disallowed markets are skipped and reported, providing operational context. However, it does not explicitly state when not to use this tool in favor of alternatives like 'close_position'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
close_positionClose a positionAInspect
Close all or part of an open perpetual position with a reduce-only MARKET order. Reads the current position, flips the side automatically (LONG→SELL, SHORT→BUY) and sizes the close. percent defaults to 100 (full close); a partial close is floored to the market step size. The close is bounded at oracle ± slippageBps mirrored by side (closing a SHORT buys up to oracle×(1+slip), closing a LONG sells down to oracle×(1−slip); default 500 bps = 5%). Returns the verified confirmation outcome — if it is unfilled or partially_filled, the book was thinner than the cap: re-run with a larger slippageBps to sweep deeper. Errors NOT_FOUND if there is no open position in the market.
| Name | Required | Description | Default |
|---|---|---|---|
| market | Yes | Market ticker, e.g. BTC-USD | |
| confirm | No | ||
| percent | No | Portion of the position to close (default 100). | |
| slippageBps | No | Max slippage vs oracle, in bps (default 500). Raise to sweep a thin book. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses all key behaviors: reads current position, flips side, sizes close, slippage bounds, outcome verification (confirmation status), and error condition (NOT_FOUND). Exceeds annotation value by adding operational details.
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?
One focused paragraph with no filler. Front-loaded with primary action, then logically follows with parameter behavior and edge cases. Every sentence adds value.
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?
Despite lacking an output schema, the description fully explains return value (confirmation outcome) and error states. Covers all user concerns for a close operation: how it works, parameters, slippage, and iteration guidance.
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?
Enriches schema-defined parameters with defaults (percent=100, slippageBps=500), explains bounding logic (oracle ± slippageBps), and clarifies outcome handling. Compensates for 75% schema coverage with practical usage details.
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?
Description clearly states it closes all or part of an open perpetual position with a reduce-only market order. It distinguishes from sibling tools like close_all_positions by specifying per-position operation and automatic side flipping.
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?
Provides explicit guidance on default behavior (full close), partial close flooring, slippage bounding, and re-run instructions for unfilled orders. No direct mention of when not to use, but usage context is clear given the tool's specific role.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_balanceGet balancesARead-onlyInspect
Get the subaccount collateral (USDC asset position) and the on-chain wallet bank balances (gas). Collateral is what backs trading.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so safety is covered. Description adds context about collateral but lacks additional behavioral details like rate limits or authentication needs.
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?
Two concise sentences, no fluff. First sentence captures the action and scope; second adds useful context. Front-loaded and efficient.
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 zero-parameter, no-output-schema tool, the description adequately explains what is returned. Could be slightly more detailed on format, but sufficient for the simplicity.
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?
No parameters exist; baseline 4 as per rules. Description does not need to add parameter info.
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?
Description clearly states it retrieves subaccount collateral and on-chain wallet bank balances, with a specific verb and resources. It distinguishes from siblings by naming the exact balances (collateral and gas).
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?
No explicit when-to-use or when-not-to-use guidance, nor alternatives provided. Agents must infer from sibling tool names; some guidance would improve selection accuracy.
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 heightARead-onlyInspect
Return the latest chain block height. Useful for SHORT_TERM order goodTilBlock math.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true; description adds value by mentioning the goodTilBlock math usage, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise with two sentences, front-loading the core purpose and a specific use case.
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?
Fully explains what the tool returns and why it's useful, which is sufficient given no parameters or output schema.
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?
No parameters in schema, so description need not explain them. It mentions the return value and use case, adding context beyond the schema.
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?
Clearly states it returns the latest chain block height and specifies a use case with SHORT_TERM order goodTilBlock math, differentiating it from sibling tools like order management.
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?
Provides a specific use case (goodTilBlock math) giving context for when to use it, though it doesn't explicitly state when not to use alternatives.
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)ARead-onlyInspect
Get OHLCV candles for a market at a given resolution. Useful for trend/volatility analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| toISO | No | ISO 8601 end time | |
| market | Yes | Market ticker, e.g. BTC-USD | |
| fromISO | No | ISO 8601 start time | |
| resolution | Yes | Candle resolution |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so description doesn't need to add safety info. No behavioral details beyond purpose are given, but 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no fluff. Front-loaded with the core action and purpose.
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?
Lacks description of return format (e.g., array of candle objects) but given no output schema, this is a minor gap. Context is otherwise sufficient for a read-only data retrieval 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?
Schema coverage is 80%, with descriptions for most parameters. Description adds no extra meaning beyond what the schema provides, so baseline 3 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?
Clearly states verb (get) and resource (candles for a market at given resolution). Mentions usefulness for trend/volatility analysis. Distinguishes from sibling get_candles_multi by being single-market, though not explicitly stated.
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?
Provides a usage hint (trend/volatility analysis) but no explicit when-to-use vs alternatives, nor when not to use. With siblings like get_candles_multi, additional guidance would help.
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 candlesARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Candles per resolution (default 50, most recent). | |
| market | Yes | Market ticker, e.g. BTC-USD | |
| resolutions | No | Subset of resolutions (default: all indexer resolutions). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and the description adds return format ({ <resolution>: [...] }), newest first ordering, and default resolutions, providing useful behavioral context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with main purpose, no wasted words. Every sentence contributes meaningful information.
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 3 parameters, all well-documented in schema and description, and no output schema needed (description clarifies return format). Covers default behavior, input details, and performance advice.
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 coverage is 100%, so baseline is 3. The description adds that limit defaults to 50, market is ticker like BTC-USD, and resolutions default to all indexer resolutions, enhancing understanding of parameter behavior.
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 tool gets OHLCV candles across multiple resolutions in one call, specifying default resolutions (ALL indexer resolutions) and contrasting with the sibling get_candles tool.
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?
Indicates the tool is for reading trends across timeframes at once, with advice on payload size by lowering limit or using resolutions subset. No explicit when-not-to-use, but the context with sibling tool makes it clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_equityGet account summaryARead-onlyInspect
Get the subaccount summary: equity, freeCollateral, marginEnabled, open perpetual positions and asset positions.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint:true, so the description is not burdened for safety. It adds value by enumerating the returned fields (equity, freeCollateral, etc.), providing transparency about the tool's output beyond the annotation.
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?
Description is a single sentence listing key return fields. It is concise and front-loaded with the main verb and resource, though it could be slightly more structured (e.g., bullet points) but remains efficient.
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 zero parameters and no output schema, the description sufficiently explains what the tool returns. It names all major components of the subaccount summary, making it complete enough for an agent to understand the tool's output.
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?
Tool has zero parameters and schema coverage is 100%, so description does not need to add parameter details. Per rules, baseline is 4 for zero parameters, and the description adequately covers the tool's behavior.
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 specific verb 'Get' and resource 'subaccount summary', listing distinct fields (equity, freeCollateral, marginEnabled, open perpetual positions, asset positions). It clearly indicates the tool's purpose but does not explicitly differentiate from similar siblings like get_balance 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.
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's for a comprehensive summary, but lacks exclusionary language or comparison to sibling tools like get_positions or get_pnl.
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)BRead-onlyInspect
Get executed fills for the subaccount, including price, size, fee and maker/taker liquidity.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| market | No | Market ticker filter, e.g. BTC-USD |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description aligns by stating it 'gets' fills. It adds context that the data is subaccount-specific and includes liquidity details, but lacks information on pagination behavior or response structure. 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?
A single sentence that efficiently conveys the core purpose and key data fields. No redundancy or fluff.
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 tool with no output schema and three optional parameters, the description is too brief. It omits important context such as pagination behavior (page/limit), how market filtering works, and the structure of the returned fill records. The tool's complexity (moderate) is not adequately addressed.
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?
The description does not mention any of the three parameters (page, limit, market). With schema description coverage at 33%, the description should clarify the role of these parameters (e.g., pagination, filtering) but fails to do so, leaving the agent to rely solely on the sparse schema.
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 it retrieves executed fills for the subaccount and lists included fields (price, size, fee, liquidity). It distinguishes from siblings like get_open_orders or get_positions by focusing on historical trades, though it doesn't explicitly contrast with them.
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?
No guidance on when to use this tool vs. alternatives such as get_open_orders or get_pnl. There are no usage conditions, prerequisites, or exclusions 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 marketARead-onlyInspect
Get details for one perpetual market (clobPairId, atomicResolution, quantumConversionExponent, tick/step sizes, oracle price, status).
| Name | Required | Description | Default |
|---|---|---|---|
| market | Yes | Market ticker, e.g. BTC-USD |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description adds value by detailing the specific fields returned (oracle price, status, etc.). This provides behavioral context beyond what annotations offer, but does not discuss authentication or rate limits, which are acceptable given the simplicity.
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 is a single sentence that efficiently conveys the action and the key data points returned. It is front-loaded with the verb and resource, and every word adds value.
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's simplicity (one parameter, no output schema), the description fully explains what the tool does and what it returns by listing the fields. No additional information is needed for an agent to use it correctly.
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 100% for the single parameter 'market' with an example. The tool description does not add further meaning to the parameter beyond what the schema already provides, so a baseline score of 3 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 uses a specific verb 'Get details' and clearly identifies the resource as 'one perpetual market'. It lists the specific fields returned (clobPairId, etc.), which makes the purpose precise and distinguishes it from siblings like 'list_markets' that retrieve multiple markets.
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 implies that the tool is used when you need details for a single market, but it does not explicitly state when not to use it or mention alternative tools like 'list_markets' for multiple markets. The usage context is clear but lacks exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_newsGet latest newsARead-onlyInspect
Fetch the latest headlines from the ritbit news feed (curated crypto / markets / business channels, newest first). Filter by category (crypto|markets|business) or explicit channels, and/or a free-text query (a ticker or keyword, matched in the post text and hashtags, e.g. BTC). Each item returns { source, url, publishedAt, tags (hashtags — where tickers appear), text }. There is NO importance field: judge impact yourself from the content (hacks, regulation, large moves, ⚠️ warnings). Use this to factor sentiment/catalysts into an assessment, or to answer "what's the latest?". Headlines are ru/en.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max items (default 30). | |
| query | No | Case-insensitive keyword/ticker to match in text or hashtags, e.g. BTC. | |
| category | No | Restrict to one channel category. | |
| channels | No | Explicit hub channel ids (overrides category), e.g. ["forklog","incrypted"]. | |
| sinceHours | No | Only items newer than this many hours. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate read-only; description adds that there is no importance field, headlines are ru/en, curated, and newest first. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with front-loaded purpose, filtering, return format, and usage note. Slightly verbose but every sentence adds value.
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?
No output schema, but description explicitly lists return fields (source, url, publishedAt, tags, text). Covers filtering and usage context fully.
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 coverage is 100%, but description adds meaning: category enum values, channels override, query matches text and hashtags, limit default, sinceHours. Provides context beyond schema.
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?
Clearly states it fetches latest headlines from the ritbit news feed with specific details on sources, filtering, and order. Distinct from sibling tools which are trading-related.
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?
Explicitly says to use for sentiment/catalyst assessment or answering 'what's the latest?'. No explicit when-not-to-use, but sibling list makes this the only news tool.
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 ordersARead-onlyInspect
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). Returns { orders: [...] }. This does NOT include filled positions — a filled market/limit order leaves NO open order, it becomes a POSITION (see get_positions). When there are 0 orders but open positions exist, the result carries a note pointing you there.
| Name | Required | Description | Default |
|---|---|---|---|
| side | No | ||
| limit | No | ||
| market | No | Market ticker filter, e.g. BTC-USD |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, consistent with description. The description adds valuable context about including untriggered conditional orders and the note behavior, which is beyond what annotations provide.
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?
Very concise two-sentence description with no wasted words. Purpose is front-loaded, and all information is relevant.
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?
No output schema, but description clearly states the return format as { orders: [...] }. It also covers edge cases (0 orders with open positions). This is complete for a read-only query 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?
Only 33% of parameters have descriptions in the schema (market). The description mentions filtering by market and side, but does not add additional meaning for limit or the enum values. Baseline 3 due to low coverage, but description provides minimal extra value.
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 it gets active orders, including resting and untriggered conditional orders. It distinguishes from positions and fills, and specifies filtering by market and side.
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?
Explicitly tells what is included (resting + untriggered conditional) and what is not (filled positions become positions). Mentions that a note points to get_positions when no orders but open positions exist, guiding the agent to the correct tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_orderbookGet orderbookARead-onlyInspect
Get the live orderbook (bids/asks) for a market, optionally truncated to a depth.
| Name | Required | Description | Default |
|---|---|---|---|
| depth | No | Max levels per side | |
| market | Yes | Market ticker, e.g. BTC-USD |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description doesn't need to restate that. The description adds 'live' indicating real-time data, but no further behavioral traits are disclosed. Score is adequate given 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 is a single sentence that efficiently conveys the tool's function without extra words. It is well-structured and front-loaded with the key action.
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?
With no output schema, the description does not explain return format, but mentions 'bids/asks' which gives a good idea. Missing details on structure (e.g., arrays, price levels) could be useful. Adequate for a simple retrieval 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?
Schema coverage is 100% with descriptions for both parameters. The description adds context by stating 'optionally truncated to a depth', which elaborates on the depth parameter's purpose. This adds value beyond the schema.
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 'Get' and the resource 'live orderbook (bids/asks) for a market', making the tool's purpose unambiguous. It distinguishes from sibling tools as no other tool deals with orderbooks.
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?
No explicit guidance on when to use this tool versus alternatives. The description implies usage for fetching market data, but does not provide when-not-to-use or contrast with siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pnlGet historical PnLBRead-onlyInspect
Get historical PnL ticks for the subaccount (equity, totalPnl, netTransfers over time). Use createdOnOrAfter to bound the range.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| createdOnOrAfter | No | ISO 8601 lower bound |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, so the description adds value by specifying the returned data fields (equity, totalPnl, netTransfers). However, it omits behavioral traits such as pagination behavior, ordering of ticks, or rate limits. The description is adequate but not rich.
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 is concise with two sentences. The first sentence defines the tool's purpose, and the second provides a key usage hint. There is no superfluous content.
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?
The description covers the returned data fields and mentions the createdOnOrAfter parameter. However, it does not address pagination (page, limit), ordering, or granularity of ticks. Given no output schema, more detail on the response format would improve completeness.
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 low (33%), and the description only elaborates on createdOnOrAfter ('Use createdOnOrAfter to bound the range'). It does not explain page or limit parameters, which remain undocumented. The description 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves historical PnL ticks for the subaccount, specifying the data fields (equity, totalPnl, netTransfers). This effectively distinguishes it from sibling tools like get_equity (equity only) or get_fills (fills).
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?
No guidance is provided on when to use this tool versus alternatives. The only usage-related hint is to use the createdOnOrAfter parameter to bound the range, which pertains to parameter usage rather than tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_portfolioGet full portfolioARead-onlyInspect
One-call snapshot of everything the account has "open": equity & freeCollateral, every open POSITION (with notional, unrealized PnL and estimated liquidation price), every active ORDER (resting + untriggered TP/SL), and account margin risk. Use this to answer "what do I have open?" or "how am I doing?" without worrying whether the user means orders or positions — it returns both.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already mark it as read-only (readOnlyHint=true), and the description adds no contradictory info. It further details what data is returned, fully disclosing its behavior.
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?
Two sentences, each earning its place. The first sentence defines scope, the second adds usage context. No wasted words.
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 zero parameters, a read-only annotation, and no output schema, the description fully covers what the tool does, what data it returns, and when to use it. Nothing missing.
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?
No parameters exist, and schema coverage is 100%. The description adds no parameter info, which is fine. According to rubric, 0 params = baseline 4.
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 tool is a one-call snapshot of open positions, orders, equity, and margin risk. It uses specific verbs and resource terms, and distinguishes itself from sibling tools like get_open_orders and get_positions by combining them.
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?
Explicitly tells when to use: to answer 'what do I have open?' or 'how am I doing?' without worrying whether the user means orders or positions. This guides the agent away from separate order/position tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_position_riskGet position riskARead-onlyInspect
Margin health for the subaccount: equity, freeCollateral, total maintenance/initial margin, maintenanceMarginBufferUsd (the EXACT liquidation guard — liquidatable when < 0), marginUsageRatio (1.0 = at liquidation), account leverage, and per-position estimated liquidation price + distance to it. Use before adding risk or to decide whether to protect/close a position.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint: true, and the description aligns with a read-only operation. It adds behavioral context by explaining key metrics like maintenanceMarginBufferUsd as the exact liquidation guard and marginUsageRatio at 1.0 means liquidation.
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 is two sentences: the first lists returned data, the second gives usage guidance. No fluff, every word contributes.
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 no output schema, the description explains return values well, but lacks explicit structure (e.g., whether output is a single object or list). However, it's sufficient for understanding the tool's purpose and output.
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?
No parameters exist, so the description cannot add meaning beyond schema. However, it enriches the tool's purpose by detailing the output fields, which is valuable given the empty input schema.
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 tool provides margin health for a subaccount, listing specific fields like equity, free collateral, and per-position liquidation price. It distinguishes itself from siblings like get_positions and get_equity by focusing on risk metrics.
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 advises using the tool before adding risk or to decide on protecting/closing a position, providing clear context. It doesn't explicitly list alternatives but implies usage in risk assessment scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_positionsGet perpetual positionsARead-onlyInspect
Get perpetual POSITIONS with size, side, entryPrice, unrealizedPnl, realizedPnl and netFunding. Defaults to OPEN positions. NOTE: a position is what you HOLD after an order fills — it is NOT an open order. When the user asks loosely "what is open?", check BOTH this and get_open_orders (or call get_portfolio for both at once).
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Position status filter |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. Description adds that it defaults to OPEN positions and lists returned fields, clarifying the concept of position vs order. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise: two sentences covering purpose, fields, defaults, and a key note. Zero wasted words.
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 tool with one optional parameter, the description fully covers what the agent needs: purpose, fields returned, default, and distinction from open orders.
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 has one parameter with description, but description adds the default behavior ('Defaults to OPEN positions'), which provides meaning beyond the schema's enum values.
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?
Description clearly states the tool retrieves perpetual positions with specific fields like size, side, entryPrice. It distinguishes itself from siblings by explicitly noting a position is not an open order.
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?
Provides explicit guidance: when user asks 'what is open?', check both this and get_open_orders, or call get_portfolio. Also notes default behavior of returning OPEN positions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_marketsList perpetual marketsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, consistent with a listing operation. The description adds value by specifying the returned fields (ticker, status, oracle price), 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first provides the action and data returned, second gives usage guidance. No fluff, front-loaded, every sentence earns its place.
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 list tool with no parameters and a readOnly annotation, the description covers the key purpose and output fields. Lacking an output schema, it still gives enough context about what to expect (ticker, status, oracle price). Could be more detailed about the format, but sufficient for an agent to use correctly.
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?
Zero parameters with 100% schema coverage; the description correctly omits parameter details as none exist. Baseline score 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 it lists all perpetual markets with specific fields (ticker, status, oracle price) and explicitly guides the agent to use it first to discover valid market tickers before placing orders. This distinguishes it from sibling tools like get_market which likely returns a single market's details.
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 advises using this tool first to discover valid market tickers before placing orders, providing clear context. It does not explicitly mention when not to use it or alternatives, but the guidance is sufficient for the intended workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_positionOpen a position (market entry + optional bracket)AInspect
Enter a NEW position with a MARKET order, sized by base size OR quote notionalUsd (exactly one required; notionalUsd converts at the oracle price and is floored to the step size). Optionally attach a reduce-only stopLossPrice and/or takeProfitPrice as conditional orders in the SAME call (the bracket, placed with the opposite/closing side and a 500 bps execution bound past the trigger). slippageBps caps the entry fill vs oracle (default 500). Returns the entry confirmation plus any bracket order ids. Bracket legs are placed only if the entry broadcast succeeds; each is reduce-only so it can only close, never flip.
| Name | Required | Description | Default |
|---|---|---|---|
| side | Yes | ||
| size | No | Position size in base units. | |
| market | Yes | Market ticker, e.g. BTC-USD | |
| confirm | No | ||
| notionalUsd | No | Position size in quote USD (converted at oracle). Use instead of size. | |
| slippageBps | No | Max slippage vs oracle for the entry, in bps (default 500). | |
| stopLossPrice | No | Attach a reduce-only stop-loss trigger at this price. | |
| takeProfitPrice | No | Attach a reduce-only take-profit trigger at this price. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds significant behavioral context beyond annotations: market order execution, size conversion, bracket placement only if entry succeeds, reduce-only nature of brackets with 500 bps execution bound, and return of confirmation and order IDs. 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 is a single, well-structured paragraph of 5 sentences. It front-loads the core action, proceeds to sizing options, bracket details, slippage, and return values. No unnecessary words.
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 complexity (8 params, no output schema), the description covers core functionality well but lacks details on partial fills, error handling, and full return value specification (e.g., exact confirmation structure). Could be more complete for a trading 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?
With 75% schema coverage, the description adds crucial semantics: explains mutual exclusivity of size/notionalUsd, conversion of notionalUsd with floor to step size, bracket order details (opposite side, 500 bps bound), and default slippage. This meaningfully supplements the schema.
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 it enters a new position with a market order, sized by base size or quote notionalUsd, and optionally attaches stop-loss/take-profit orders. It distinguishes itself from sibling tools like place_market_order, place_stop_loss, etc., by combining entry and bracket in one call.
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 requires exactly one of size or notionalUsd and explains bracket behavior. It implies when to use (for new position with optional brackets) but does not explicitly state when not to use or compare with alternatives like place_market_order for simple entries.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| side | Yes | ||
| size | Yes | Size in base units | |
| price | Yes | ||
| market | Yes | Market ticker, e.g. BTC-USD | |
| confirm | No | Verify the real outcome via the indexer after broadcast (default true). | |
| clientId | No | ||
| postOnly | No | Reject if it would cross (maker-only). Defaults to server config. | |
| reduceOnly | No | ||
| timeInForce | No | GTT | |
| goodTilBlockOffset | No | SHORT_TERM blocks ahead (default 10) | |
| goodTilTimeSeconds | No | GTT lifetime (default 3600) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are empty, but the description discloses important behaviors: broadcast code:0 does not mean filled, return value includes real outcome via indexer, and rate limits for GTT orders. This adds significant transparency 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but front-loaded with the core purpose. A few redundant phrases could be trimmed, but overall each sentence adds value.
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?
Covers return value structure and rate limits, but missing guidance on price precision, market validity, and several uncommented parameters. For a tool with 11 params and no output schema, more detail would be beneficial.
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?
Adds context for timeInForce and confirm parameters beyond the schema (e.g., sync/async behavior). However, many parameters (clientId, reduceOnly) lack explanation in either schema or description, and schema coverage is only 55%.
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 'Place a limit order' and explains the default timeInForce=GTT. However, it does not explicitly differentiate this tool from siblings like place_market_order or place_stop_loss, which would help an agent decide when to use limit 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?
Provides guidance on when to use GTT vs SHORT_TERM and rate limit warnings for GTT. However, it does not advise when to choose a limit order over market or stop orders, leaving usage context incomplete.
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. It executes as an IOC limit at a worst-acceptable price mirrored around the oracle by side — BUY caps ABOVE the oracle, SELL below — at slippageBps distance (default 500 = 5%). Fills happen at book prices; the cap only limits how deep the sweep goes. 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 cancels UNFILLED when the book is entirely beyond the slippage cap (thin/spread market). Always report from confirmation.outcome, not code; if unfilled or partially_filled, retry with a larger slippageBps to sweep deeper; if pending, the indexer is lagging — wait a few seconds and re-check before concluding.
| Name | Required | Description | Default |
|---|---|---|---|
| side | Yes | ||
| size | Yes | Size in base units | |
| market | Yes | Market ticker, e.g. BTC-USD | |
| confirm | No | Verify the real fill via the indexer after broadcast (default true). | |
| clientId | No | ||
| reduceOnly | No | ||
| slippageBps | No | Max slippage vs oracle, in bps (default 500). BUY bounds above the oracle, SELL below; raise to sweep a thin book. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses key behaviors: IOC execution, slippage mechanics using oracle, reduceOnly, and verified outcome via indexer. No annotation contradictions. Adds substantial value 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured and front-loaded with key behavior. Slightly verbose but every sentence adds necessary detail.
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?
Thoroughly explains return value (confirmation outcome) and retry logic despite no output schema. Covers all important aspects for correct usage.
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?
Adds meaning to slippageBps (cap direction by side), reduceOnly (closes position), confirm (verification via indexer). Explains side difference. Schema coverage 57%, but description compensates fully.
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 explicitly states it places an IOC market order and explains its behavior (slippage, reduceOnly, outcome verification). It clearly distinguishes from sibling tools like 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear guidance on when to use (market orders) and how to interpret outcomes (retry with larger slippage if unfilled/partially_filled). Lacks explicit when-not-to-use, but context is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
place_stop_lossStop lossAInspect
Place a reduce-only Stop loss (conditional market order) that triggers at triggerPrice. Side must be the CLOSING side of the position: SELL closes a LONG, BUY closes a SHORT. Once triggered it executes as an IOC limit bounded at triggerPrice ± slippageBps in the direction of execution (BUY above the trigger, SELL below; default 500 bps) so the close can cross the book.
| Name | Required | Description | Default |
|---|---|---|---|
| side | Yes | ||
| size | Yes | ||
| market | Yes | ||
| clientId | No | ||
| slippageBps | No | Execution bound past the trigger, in bps (default 500). Raise for thin books. | |
| triggerPrice | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes IOC limit execution bounded by slippageBps, adding detail beyond annotations. Annotations are non-destructive but description clarifies the conditional behavior.
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?
Two sentences, front-loaded with purpose and key rules, no redundant information. Each sentence adds essential value.
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?
Covers trigger conditions, execution type, and slippage. Lacks explicit output or order lifecycle, but sufficient for a moderately complex tool without output schema.
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 coverage is low (17%). Description explains side and triggerPrice purpose, and clarifies slippageBps. But market, size, and clientId lack additional context, leaving gaps.
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?
Description states 'Place a reduce-only Stop loss (conditional market order)' with clear verb and resource, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit side requirements ('SELL closes a LONG, BUY closes a SHORT') and explains when to use (closing positions). No explicit when-not-to, but context is clear.
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. Side must be the CLOSING side of the position: SELL closes a LONG, BUY closes a SHORT. Once triggered it executes as an IOC limit bounded at triggerPrice ± slippageBps in the direction of execution (BUY above the trigger, SELL below; default 500 bps) so the close can cross the book.
| Name | Required | Description | Default |
|---|---|---|---|
| side | Yes | ||
| size | Yes | ||
| market | Yes | ||
| clientId | No | ||
| slippageBps | No | Execution bound past the trigger, in bps (default 500). Raise for thin books. | |
| triggerPrice | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only indicate readOnlyHint=false and destructiveHint=false. The description adds critical behavioral details: reduce-only nature, conditional trigger, IOC execution with slippage bounding, and direction of execution. 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?
Two sentences that are front-loaded with the core purpose, followed by behavioral details. Every sentence contributes value with no wasted words.
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 complexity (conditional order, slippage, reduce-only), the description covers all essential behavioral aspects. No output schema exists, but return values are not necessary for invocation understanding.
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 coverage is only 17% (only slippageBps has description). The description adds meaning to triggerPrice (trigger), side (closing side), and explains slippageBps default and purpose. Market, size, and clientId are not elaborated, but market is self-explanatory.
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 states 'Place a reduce-only Take profit (conditional market order) that triggers at triggerPrice.' It specifies the type (reduce-only, conditional market) and differentiates from sibling tools like place_stop_loss by emphasizing the closing side requirement.
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 explains that side must be the closing side (SELL for LONG, BUY for SHORT) and details the execution behavior (IOC limit bounded at triggerPrice ± slippageBps). It lacks explicit when-not or alternatives but provides 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.
whoamiDescribe this sessionARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true; description adds detailed behavioral context by specifying exactly what is reported (trading ability, withdrawal/transfer prohibition), going beyond the annotation.
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?
Single sentence, front-loaded with purpose, efficient enumeration of details, zero wasted words.
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 no parameters and no output schema, the description fully covers what the tool does and advises on invocation order, leaving no gaps.
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?
No parameters; baseline 4 applies. Description correctly omits parameter details as none exist.
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?
Description clearly states 'Report what this session controls' and enumerates specific aspects (master account, trading/read-only status, on-chain authorization scope), distinguishing it from sibling tools that deal with orders, balances, etc.
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?
Explicitly says 'Call this first,' providing clear when-to-use guidance and implying it should precede other actions to understand session capabilities.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!