Cubicle
Server Details
Agent trading tools: candles, copy-trading, hire a strategy for your Robinhood vault, pay on chain
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 25 tools
Most tools target clearly distinct resources or actions: account vs catalogue, price vs tape vs chart_state, and models vs model_record are easy to separate. The main adjacent pairs are chart_image/chart_state and forge/studio_move/workflow_read, but their descriptions frame them as different output types or pipeline stages.
All tool names use lower snake_case consistently, with no camelCase or mixed-style outliers. They are not uniformly verb_noun, since many are noun-only or noun_verb, but the vocabulary remains predictable across the set.
At 25 tools, the server sits at the upper boundary of what is comfortable for an agent-facing tool set. The platform is broad enough that many tools are justified, but there is likely room to consolidate some read-only or reporting functions.
The surface covers account/catalogue introspection, market data, forecasts, model discovery, vaults and plans, skills, and the studio forge/grade/rehearse workflow. Some operational edges, such as direct live execution or full vault lifecycle management beyond unsigned preparation, are less explicit, but core read, analysis, and prepare flows are well represented.
Available Tools
38 toolsaccountARead-onlyIdempotentInspect
The caller's Cubicle account: their tier (free, Cubicle Operators holder, pro-50, max premium-99), their plan and until when, and every capability with whether it is open and which tier opens it. Call it before telling a trader what they can or cannot do.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/ idempotent/ non-destructive, so the safety profile is covered. The description adds useful behavior beyond that: it is a self-scoped read (no target parameter) and it exposes capability gating by tier, which an agent could not infer from the empty schema.
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 what the tool returns and ending with the operative usage rule. The parenthetical tier list is dense but each element earns its place by naming valid tier values.
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 present, the description carries the return-value burden and does so fully: tier values, plan and its expiry, and the per-capability open/tier mapping. Nothing essential for calling or interpreting this zero-arg tool is 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?
The tool takes zero parameters, which is the baseline-4 case per the rubric. There are no fields to explain, and the description correctly gives no parameter guidance.
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 conveys that this is the caller's own account record, enumerating its contents (tier, plan, expiry, per-capability status). It implicitly distinguishes itself from lookalike siblings such as 'plans' by scoping to the caller, though no explicit verb (returns/fetches) is used.
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?
It gives a concrete when-to-use rule: 'Call it before telling a trader what they can or cannot do.' That is a clear trigger condition, but no alternative tools are named or excluded, so it falls short of the top-tier when/when-not/alternatives guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catalogueARead-onlyIdempotentInspect
The whole Cubicle API as data: the studio's eight-state machine and what each gate asks, every tool with the tier that opens it (and whether it is open to the caller), and the flows. Call it first when asked what Cubicle can do.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so safety is covered. The description adds real value beyond that by disclosing the content shape (eight-state machine, gates, per-tool tier and caller access, flows), which tells the agent what it will get back. It does not warn about payload size or cost of pulling the entire API in one call, which would have pushed this higher.
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 dense sentence plus a short imperative routing clause, with the payload contents front-loaded and the usage trigger last. Every clause carries information; there is no filler or restatement of the name.
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 and no parameters, the description bears the burden of explaining the return payload and it does so adequately by naming the three content groups. It is nearly complete, missing only practical details such as response format/size that an agent planning a first call might want.
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 tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline of 4 applies. No misleading or missing parameter guidance.
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?
States precisely what the tool returns: the whole API as data, broken into the state machine and gates, the tool/tier inventory, and the flows. That is a specific resource description that clearly distinguishes it from the action-oriented siblings (forge, grade, studio_move), which an agent can tell apart without opening any schema.
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?
Gives an explicit trigger condition: 'Call it first when asked what Cubicle can do.' This is clear context for when to use it. It stops short of a 5 because it offers no exclusions or disambiguation against siblings for adjacent questions (e.g. reading a specific tool's schema), though the tool is genuinely a unique discovery entry point.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chart_imageARead-onlyIdempotentInspect
The deck's own chart plate for one market, timeframe and window, rendered server-side from the same geometry the screen uses (bars, indicators, the envelope cone when its calibration permits) as a PNG you can look at, together with the chart_state JSON for the same window. The picture is for shape; the numbers are in the JSON — quote those, never read them off the image. Past windows only; at most 600 bars.
| Name | Required | Description | Default |
|---|---|---|---|
| tf | Yes | timeframe | |
| to | Yes | window end, ISO-8601 UTC, in the past | |
| from | Yes | window start, ISO-8601 UTC | |
| market | Yes | the market | |
| indicators | No | indicator ids to draw; defaults to ema20 and envelope |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds substantial extra context: the render uses the same geometry as the screen, the envelope cone appears only when calibration permits, output is PNG plus JSON, windows must be in the past, and there is a 600-bar cap. These are real behavioral traits beyond the structured fields.
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?
Three sentences, front-loaded with the core purpose, and every sentence carries information (what is rendered, how to treat the outputs, the limits). The middle sentences are dense but not redundant; no filler.
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 correctly takes on the burden of explaining returns — it specifies a PNG plus chart_state JSON and warns how to interpret each. It also covers the window and bar-count constraints, so an agent has everything needed to call 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 coverage is 100%, so the baseline is 3, but the description adds meaning the schema lacks — a 600-bar ceiling on the from/to window, the 'past windows only' constraint, and the note that the indicators selection controls whether the envelope cone is drawn. That extra semantics lifts it above the baseline.
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?
States a specific verb (server-side render) and resource (a chart plate for one market/timeframe/window), and names exactly what is produced: a PNG plus the chart_state JSON. It implicitly differentiates itself from the chart_state sibling by declaring it returns both the picture and that JSON, so the agent knows what it is getting without opening a schema.
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?
Gives clear usage context and constraints — 'Past windows only; at most 600 bars' and the rule to quote numbers from the JSON rather than the image. It does not explicitly say when to prefer chart_state or the image sibling over this tool, so there is no full when/when-not routing, but the operating conditions are well stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chart_stateARead-onlyIdempotentInspect
What the deck's chart would show for one market, timeframe and window, as ONE JSON object computed in code: the bars (count, first and last, the last candle), the indicators drawn, the trader's own marked levels and zones (theirs — they may be used as levels the trader gave), the envelope under its draw gate and its facts, and the fact sheet of the window (open, close, high, low, range, change, volume, session). Use it instead of reading pixels: every number is measured, not read. Past windows only; at most 600 bars.
| Name | Required | Description | Default |
|---|---|---|---|
| tf | Yes | timeframe | |
| to | Yes | window end, ISO-8601 UTC, in the past (the logical clock for a replay) | |
| from | Yes | window start, ISO-8601 UTC | |
| market | Yes | the market | |
| indicators | No | indicator ids to include, e.g. ["ema20","vwap","envelope"]; defaults to ema20 and envelope |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered. The description adds behavior annotations do not: results are computed in code rather than read from pixels, only past windows are valid, and there is a hard 600-bar cap. It does not cover error behavior or latency.
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?
Purpose is front-loaded, but the body is one long run-on sentence with nested parentheticals, e.g. '(theirs — they may be used as levels the trader gave)', which is hard to parse and obscures the return shape. Information density is high but structure is poor.
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 carries the burden of explaining the return payload, and it does enumerate the returned sections (bars, indicators, marked levels/zones, envelope with draw gate, fact sheet). Coverage is good; minor ambiguity in the levels/zones parenthetical and no error/empty-window behavior keeps it from 5.
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%, so all five parameters are already documented (including defaults for indicators and the past-only constraint on 'to'). The description echoes those constraints ('indicators drawn', 'Past windows only') but adds little new syntax or semantics, so baseline 3 is correct.
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?
States a specific verb+resource+scope: what the chart would show for one market/timeframe/window, returned as a computed JSON object. It explicitly contrasts with the pixel-reading sibling ('Use it instead of reading pixels'), so an agent can distinguish chart_state from chart_image without opening either schema.
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?
Gives a clear selection rule against the obvious alternative ('instead of reading pixels: every number is measured, not read') and adds operating constraints ('Past windows only; at most 600 bars'). It does not name the alternative tool explicitly or state when-not to use it, so it falls just short of 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
desk_readARead-onlyIdempotentInspect
The house Nemotron desk (llm-nemotron-fest) as it is: its last turn (every 30 minutes), each market's decision and which reader decided it (the vote rule the Nemotron answers, or Jev), the facts it read, and the venue's own positions with realised and unrealised PnL. Composed from the desk's log and the venue, no model asked; a turn older than 45 minutes is marked stale. Not a forecast.
| Name | Required | Description | Default |
|---|---|---|---|
| market | No | one market, or every market when absent |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds useful context beyond annotations: the 30-minute turn cadence, the 45-minute staleness threshold, and that the view is composed from logs and venue without asking a model. It does not describe return format or pagination, but no output schema exists and the content overview is reasonably complete.
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?
It is a single dense sentence-like passage with multiple clauses; the important scoping facts (staleness, source, not a forecast) are present but not front-loaded, and there is some redundancy in describing what is composed. It earns most of its words but could be tightened and structured with shorter sentences.
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 read-only single-parameter tool with no output schema, the description covers the source of data, cadence, staleness, and the categories returned, which is enough for an agent to invoke correctly and interpret results. It stops short of specifying the exact response shape, but that is acceptable given the content summary.
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% and the enum lists the three markets, so the schema already documents the parameter. The description reinforces that the tool composes a view across markets when no market is given via 'each market's decision,' which clarifies the omitted-parameter behavior beyond the schema text.
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 names a specific resource ('the house Nemotron desk') and enumerates what it returns: last turn, per-market decisions, which reader decided, facts read, and venue positions with PnL. It also explicitly states 'Not a forecast,' which helps distinguish from the 'forecast' sibling, though without naming it directly. No other sibling tool appears to expose desk state, so differentiation is implicit rather than explicit.
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?
Usage is implied by the contents described, but there is no explicit when-to-use / when-not-to-use guidance or mention of alternative tools. The 'Not a forecast' note hints at a boundary but does not direct the agent to the forecast tool or explain when this desk read is preferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
digestRead-onlyIdempotentInspect
FREE, no key: the sha256 (or keccak256) digest of a text, as 64 hex characters, computed here. Agents, registries and the coordination layer use it to check that this server answers with content they can verify by code; it is also a plain utility. Nothing is stored.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | the text to hash (UTF-8) | |
| algorithm | No | sha256 (default) or keccak256 |
drawInspect
Draw on the trader's chart, as they ask: a line (two points), a box (two corners), a path (2 to 24 points moving forward in time: a zigzag of legs) or a note (one point and a short word). Every point is a bar's time (ISO-8601 UTC, in the past) and a price the trader gave or the tape tool returned; never invent a level. Inks: parchment, gold, teal, brick (lime is the fire's and is refused). The drawing appears on their chart and in any film of that window.
| Name | Required | Description | Default |
|---|---|---|---|
| ink | No | the ink | |
| kind | Yes | what to draw | |
| text | No | a short word beside it (required for a note), at most 48 characters | |
| market | Yes | the market | |
| points | Yes | the anchors, earliest first |
drawingsRead-onlyIdempotentInspect
The trader's own drawings on one market's chart: lines, boxes, paths and notes, each anchored at bars (UTC times) and prices. They are things the trader drew (or asked you to draw), not signals; a film of the window lets each one appear as the clock reaches it.
| Name | Required | Description | Default |
|---|---|---|---|
| market | Yes | the market |
eraseDestructiveIdempotentInspect
Remove one of the trader's drawings by its id (from the drawings tool). Only when they ask.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | the drawing's id as the drawings tool lists it (sk_ and 16 hex characters) |
filmIdempotentInspect
Seal a past window of the tape into a FILM: the bars replayed one by one with the trader's drawings and marked levels, optionally the structure computed over the bars (pivots, legs, swings and the range they share, none drawn before the bar that confirmed it) and a rehearsed machine's trades. Returns the film's public link, where it plays and can be downloaded as a video. 24 to 360 bars; the window must be in the past. A film is a replay of what printed: say so, and never present it as a forecast.
| Name | Required | Description | Default |
|---|---|---|---|
| tf | Yes | timeframe | |
| to | Yes | window end, ISO-8601 UTC, in the past | |
| from | Yes | window start, ISO-8601 UTC | |
| marks | No | include the trader's marked levels (default true) | |
| title | No | a short name beside the wordmark | |
| kicker | No | a short line at the right, e.g. price → structure | |
| market | Yes | the market | |
| machine | No | include the trades of the trader's rehearsed machine on this market, labelled a rehearsal | |
| palette | No | the inks | |
| seconds | No | length, 8 to 40 seconds (default 18) | |
| drawings | No | include the trader's drawings (default true) | |
| headline | No | the headline's first part (drawn in parchment), at most 44 characters | |
| structure | No | draw the computed structure and name the chapters after it | |
| headline_gold | No | the headline's second part (drawn in gold) |
followInspect
Follow a trading model (max plan): creates the follow record — the model, your sizing (fixed_notional usd, or proportional bps of your balance), your caps (max_notional_usd, max_open_positions, max_daily_loss_usd, markets) and optionally the wallet your own runner will sign with. Validated exactly as follow_quote; one active follow per model, a new one supersedes it. Returns the record, its digest (the coordination record follow.created) and the attribution every mirror of it is placed under (copy::). Nothing is traded by this call: your own runner mirrors fills under this record, and it can be stopped with unfollow at any time.
| Name | Required | Description | Default |
|---|---|---|---|
| caps | Yes | {"max_notional_usd":100,"max_open_positions":3,"max_daily_loss_usd":40,"markets":["BTC"]} | |
| model | Yes | the model's attribution from the models tool | |
| sizing | Yes | {"kind":"fixed_notional","usd":50} or {"kind":"proportional","bps":200} | |
| follower_wallet | No | the 0x address your runner signs mirrors with (optional now; required once the venue enforces per-order auth) |
follow_quoteARead-onlyIdempotentInspect
Quote following a trading model (max plan): checks the model is live and followable, validates the follower's sizing (fixed_notional usd, or proportional bps of their balance) and caps (max_notional_usd, max_open_positions, max_daily_loss_usd, markets the model trades), and shows what one mirror would be at the given balance. Creates nothing and moves nothing.
| Name | Required | Description | Default |
|---|---|---|---|
| caps | Yes | {"max_notional_usd":100,"max_open_positions":3,"max_daily_loss_usd":40,"markets":["BTC"]} | |
| model | Yes | the model's attribution from the models tool | |
| sizing | Yes | {"kind":"fixed_notional","usd":50} or {"kind":"proportional","bps":200} | |
| balance_usd | No | the follower's balance, to show a mirror's size (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so 'Creates nothing and moves nothing' is partly redundant. Still, the description adds real behavioral detail the annotations cannot: it enumerates what gets validated (model liveness, sizing kind, caps) and that it computes a mirror size at a given balance.
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?
Front-loaded with the core action ('Quote following a trading model'), followed by one dense sentence and a short safety clause. Every clause carries information; the only mild cost is that the middle sentence is a long comma-chained run-on.
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 still conveys the essential return concept ('shows what one mirror would be at the given balance') and the validation scope. For a 4-param, nested-object read tool it is close to complete, though the exact shape of the returned quote is not spelled out.
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 the schema descriptions are only raw JSON examples. The prose adds genuine meaning by naming the sizing modes (fixed_notional usd vs proportional bps of balance) and each cap field (max_notional_usd, max_open_positions, max_daily_loss_usd, markets), clarifying the nested objects.
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 a specific verb and resource: 'Quote following a trading model', and elaborates that it validates liveness, sizing, and caps and previews a mirror. However it never distinguishes itself from the sibling strategy_quote, leaving the agent to infer the strategy-vs-model split.
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?
Usage is only implied: the phrase 'Creates nothing and moves nothing' signals this is a pre-flight/dry-run check before an actual follow action. No explicit when-to-use guidance, no named alternative among the many siblings, and no prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
followsRead-onlyIdempotentInspect
Your own follow records (max plan): every follow you created, active, stopped or replaced, with its digest and attribution. Yours only — no follower ever sees another's.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
forecastARead-onlyIdempotentInspect
The envelope the forecast sidecar had issued for one market and timeframe by a given time: a MAGNITUDE band (how far price may travel over the next 24 bars, as two prices and a width in ATR), the odds of a move of 0.5, 1 and 2 ATR within 6, 12 and 24 bars, and its measured calibration (ece, n, band coverage). It carries NO direction — there is no side, no median, and the band is symmetric about the last close by construction; say so, and never turn it into 'up' or 'down'. When calibration reads unmeasured or uncalibrated the deck does not draw it and you should say the band is not yet trusted. Facts only, computed in code; nothing here is a recommendation.
| Name | Required | Description | Default |
|---|---|---|---|
| at | No | ISO-8601 UTC time the envelope must have been issued by (defaults to now); for a replay, the logical clock | |
| tf | Yes | timeframe the sidecar forecasts | |
| market | Yes | the market |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description goes well beyond them: it states the band carries no directional information, is symmetric about the last close by construction, and that the system suppresses the deck when calibration is unmeasured. These are non-obvious behavioral facts an agent could not infer from structured fields.
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?
It is front-loaded with what the envelope contains, then the directional caveat, then the calibration caveat. Dense but nearly every clause earns its place; the 'there is no side, no median… say so, and never turn it into up/down' passage is mildly repetitive but justified for a financially sensitive output.
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 carries the full burden of describing return values, and it does — magnitude band in ATR terms, odds at 0.5/1/2 ATR over 6/12/24 bars, and calibration fields (ece, n, coverage). Combined with annotations covering the safety profile, an agent has everything needed to call and interpret it.
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%, with enums for market and tf and a documented `at` semantics, so the schema does the heavy lifting. The description only obliquely reinforces the `at`/timeframe scoping ('by a given time'); it adds no syntax or format detail 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 names a specific, self-contained resource — 'the envelope the forecast sidecar had issued for one market and timeframe by a given time' — and immediately scopes it (band, odds, calibration). No sibling tool in the list exposes this resource, so an agent can route to it without opening the schema.
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?
There is strong interpretive guidance (treat unmeasured/uncalibrated bands as untrusted, never convert the output into up/down), but nothing about when to call this versus alternatives such as tape, chart_state, or strategy_quote. Usage context is implied by the resource, not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forgeAInspect
The studio machine's FORGED move: compiles the trader's strategy from the gates the tape can measure. The studio refuses it unless the strategy has passed READ, CLARIFIED and EXPRESSIBLE — when refused, tell the trader the move the studio is waiting for (it is in the result).
| Name | Required | Description | Default |
|---|---|---|---|
| intent | Yes | the rule in the trader's words, every part included |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-destructive mutation (readOnlyHint=false, destructiveHint=false, idempotentHint=false), so the safety profile is covered. The description adds meaningful behavior beyond that: a gated precondition and the fact that a refusal returns the awaited move inside the result, which tells the agent how to handle failure.
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 the action and followed by the gating/fallback rule. Dense with jargon, but every clause carries information and there is no filler.
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 mutation tool with no output schema, the description covers the failure path well, but it never explains what READ, CLARIFIED and EXPRESSIBLE are or where an agent verifies them, and it says nothing about what a successful compile yields. An agent can call it but may not know how to reach the prerequisite state.
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?
There is only one parameter and schema coverage is 100%, so the schema already carries 'the rule in the trader's words, every part included'. The description adds nothing about the intent string's expected content or granularity, so baseline 3 applies.
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 core action is recoverable — it compiles the trader's strategy — but the phrasing is wrapped in domain jargon ('the studio machine's FORGED move', 'gates the tape can measure') that an agent cannot decode from the text alone. It gives no differentiation from nearby siblings like studio_move, strategies, rehearse or grade, so an agent has to guess where this sits in the workflow.
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?
It states a concrete precondition for success (the strategy must have passed READ, CLARIFIED and EXPRESSIBLE) and prescribes the fallback when refused: report the move the studio is waiting for. That is real when-to-use guidance, though it never names an alternative tool to call instead and leaves the gate names undefined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gradeAInspect
Grade a forge with Jev (RUBRIC_v1): code checks the facts first, then Jev answers whether the code does what the trader said. Spends one of the trader's Jev decisions (trial, plan or their own key). It judges fidelity to their words, never profitability.
| Name | Required | Description | Default |
|---|---|---|---|
| seed_hash | Yes | the seed hash forge returned |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, openWorldHint=true, and idempotentHint=false; the description adds genuinely useful context beyond them: it consumes a limited resource (one Jev decision), clarifies the two-phase evaluation (code checks facts, then Jev judges), and scopes its judgment to fidelity, explicitly not profitability. It does not contradict 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense but front-loaded sentences with no filler: what it does, what it costs, and what it judges. The jargon makes it compact at the expense of readability, but every clause carries 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?
For a novel, side-effectful single-parameter tool with no output schema, the description conveys the mechanics (two-stage check), the cost model, and the evaluation criterion, which is enough to call it correctly. Return format is left implicit, but no output schema exists to conflict with that.
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% and the sole parameter seed_hash is documented as 'the seed hash forge returned'. With one fully documented parameter, the schema does the work and the description adds no syntax or format detail; baseline 3 applies.
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 gives a specific verb and resource — grading a forge with Jev under RUBRIC_v1 — and implicitly positions it as the post-forge evaluation step, which separates it from the sibling 'forge'. It is domain-jargon heavy ('Jev', 'RUBRIC_v1'), but the action and target are identifiable.
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?
Usage is implied by 'Grade a forge' (i.e., after producing a forge) and it notes the cost — spending one of the trader's Jev decisions (trial, plan or key). It does not state when not to use it, nor explicitly name an alternative or prerequisite step.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
imageBInspect
Look at a chart the trader attached (the id is in the studio state). Read what is on it — instrument, timeframe, levels, the pattern they point at — and say plainly that numbers read off a picture are READ, not measured; check the ones that matter against the tape.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | the attached image's id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and openWorldHint=true, yet the description never explains why this access is not read-only or what side effect occurs. It does add useful epistemic guidance (numbers read off a picture are READ, not measured; verify against the tape), which is genuine behavioral context beyond the annotations, but side-effect and permission disclosure is absent.
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?
It is one sentence, front-loaded with the action, so it is not bloated. But the em-dash-laden second half ('say plainly that numbers read off a picture are READ, not measured...') is dense and hard to scan, mixing invocation guidance with tutoring.
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 should signal what comes back (an image for the agent to view? metadata?), and it only obliquely implies viewing. For a single-parameter tool the invocation side is covered, but the return side is left to inference.
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% (baseline 3), and the description adds provenance the schema lacks: the id is found in the studio state, telling the agent where to source the value rather than just what type it is.
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?
It conveys the resource (a chart the trader attached) and an action (look at / read it), which is more than a tautology on the name 'image'. However it never states mechanically what the tool does — fetch image bytes, return a description, or register the image into context — leaving ambiguity against siblings like chart_image and chart_state.
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?
It gives real context for invocation: the id lives in the studio state, and it is used when a trader has attached a chart. It stops short of naming alternatives (chart_image, chart_state) or stating when-not-to-use, so the routing signal is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
model_recordARead-onlyIdempotentInspect
One trading model's record from the venue's first-in-first-out paired closes: realized PnL, maximum drawdown, win rate, per market, and the window. Always say what the record is not: a forecast, or what a follower would have made.
| Name | Required | Description | Default |
|---|---|---|---|
| model | Yes | the model's attribution, from the models tool (starts with llm-) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive, so the safety profile is covered. The description adds real value beyond them by disclosing the derivation ('venue's first-in-first-out paired closes') and the nature of the metric (realized, backward-looking), which is exactly the context needed to avoid misreading it as predictive.
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 tight sentences with the output contents front-loaded and no filler. The second sentence is an interpretive guardrail rather than a description of the tool itself, which is slightly off-topic for a definition but conceptually adjacent and worth its length.
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 only one parameter, full schema coverage, no output schema, and annotations carrying the safety profile, the description fills the remaining gaps by enumerating the returned fields and setting expectations about what the record is not. Nothing needed to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single 'model' parameter is documented in the schema as the attribution from the models tool (starting with 'llm-'). The description adds nothing about the parameter, so the baseline of 3 for high schema coverage applies.
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 names a specific resource (one trading model's record) and enumerates exactly what it contains: realized PnL, max drawdown, win rate, per market, and the window. It also explicitly differentiates from siblings by stating it is neither a forecast nor a follower's simulated return, which is the distinction an agent needs against forecast/follow_quote.
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?
It gives clear context via exclusion: 'Always say what the record is not: a forecast, or what a follower would have made,' which implicitly routes the agent to the forecast and follower tools for those questions. It stops short of naming the alternative tools or stating a positive when-to-use trigger, so it is clear but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
modelsARead-onlyIdempotentInspect
The trading LLM models on the Taifoon venue a trader can study and, on the max plan, follow: each with its status (trading or stopped, derived from its last trade), markets, fills, realized PnL and win rate — all read from the venue, never from a model's words. Simulated market-maker and flow actors are never listed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false, closed-world), so the bar is lower. The description still adds real context beyond them: status is derived from the last trade, all data comes from the venue rather than a model's self-report, and simulated market-maker/flow actors are excluded from the listing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the resource (trading LLM models on the Taifoon venue) and then enumerates returned fields and exclusions without filler. The embedded clause 'a trader can study and, on the max plan, follow' is slightly awkward and only marginally 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?
With no parameters, no output schema, and safety annotations already present, the description carries the remaining burden and does so: it says what is listed, which fields are derived and how, and what is filtered out. Pagination and plan-gating of the listing itself remain unaddressed.
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 tool takes zero parameters, so there is nothing for the description to disambiguate; baseline is 4. No misleading parameter claims are made.
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?
States a specific verb+resource: listing trading LLM models on the Taifoon venue, with the exact fields returned (status, markets, fills, realized PnL, win rate). It does not, however, differentiate itself from close siblings like model_record or catalogue, so an agent must infer which one to pick.
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?
Usage is only implied: a trader 'can study and, on the max plan, follow' these models, which hints this is the survey/list step before acting. There is no explicit when-to-use, no when-not-to-use, and no named alternative (e.g. model_record for a single model).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
my_vaultsARead-onlyInspect
The caller's trading vaults, read from the chain: each with whether its funds are devnet (test money) or mainnet (real), what is in it, what is free, what is set aside as margin, the mandate and who administers it.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the description is not the sole safety signal. It still adds real value by disclosing the data source (live chain read), the devnet-vs-mainnet distinction, and the balance decomposition (total/free/margin) plus governance fields. It does not explain why idempotentHint is false despite being a read, which is the one loose end.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the resource and source ('the caller's trading vaults, read from the chain') before enumerating contents. The trailing field list is dense but each item carries information about the return shape; nothing is redundant with the schema.
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 and no parameters, the description carries the entire return-value burden and does so credibly by naming the fields an agent will receive. It stops short of explaining the 'mandate' concept or any empty/error state, but for a read-only zero-arg tool this is close to sufficient.
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 tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline is 4. The schema is closed (additionalProperties=false) and empty, consistent with the description's implicit 'no arguments needed' framing.
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?
States a specific verb and resource ('The caller's trading vaults, read from the chain') and scopes it to the caller, which separates it from the generic 'account' sibling. It does not explicitly contrast itself with the related 'vault_prepare' sibling, so an agent must infer that this one reads rather than mutates.
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?
Usage is only implied: the enumeration of returned fields (free balance, margin, mandate, administrator) tells an agent this is the tool for inspecting vault state. There is no explicit when-to-use statement and no routing away from 'vault_prepare' or 'account', leaving the choice to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plan_claimAIdempotentInspect
Claim a plan you paid for on chain: give the payment's transaction hash and the paying wallet's EIP-191 signature over the exact message the plans tool returns ("Cubicle plan claim\nagent: \ntx: "). The door reads the transfer to the treasury itself and opens the plan for this principal; only the wallet that paid can claim it. Needs your Cubicle key.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | the chain the payment was made on (Cubicle takes plans on Robinhood Chain only) | |
| tx_hash | Yes | the payment transaction's hash (0x + 64 hex) | |
| payer_signature_hex | Yes | the paying wallet's EIP-191 signature (0x + 130 hex) over the claim message |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds real behavioral context beyond the annotations: it verifies the transfer to the treasury itself, opens the plan for 'this principal', restricts claiming to the paying wallet, and requires a Cubicle key. Idempotency and open-world nature are already covered by annotations, so this is additive rather than redundant.
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?
It front-loads the action and follows with the required inputs and constraints in densely packed but purposeful sentences. Slightly long and parenthetical-heavy, but every clause carries operational 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?
For a mutating claim operation with no output schema, the description covers the prerequisites (payment, signature, key), the validation model, and the resulting state change ('opens the plan for this principal'). What the call returns is not described, but that is a minor gap for a claim action.
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% (baseline 3), and the description goes further by specifying the exact signed message format ('Cubicle plan claim\nagent: <id>\ntx: <tx hash>'), which is essential for producing a valid payer_signature_hex and is not in the schema. The chain constraint is already in the enum, so no extra credit there.
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 a specific verb and resource ('Claim a plan you paid for on chain') and describes the exact mechanism (tx hash + payer signature). It implicitly distinguishes itself from the sibling 'plans' tool by referencing the message that tool returns, so an agent can tell claim apart from listing plans.
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?
It makes clear this is the post-payment claim step and points to the 'plans' tool as the source of the exact message to sign. It also gives a hard precondition ('only the wallet that paid can claim it') and an auth requirement ('Needs your Cubicle key'), though it never states an explicit when-not-to-use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plansARead-onlyIdempotentInspect
The Cubicle plans (price per 30 days, what each includes) and exactly how to pay on Robinhood Chain in USDG: the treasury, the token, and — when the subscription vault is live — the two wallet transactions (approve, subscribe) that renew automatically every 30 days. Nothing here moves money: the trader signs in their own wallet.
| Name | Required | Description | Default |
|---|---|---|---|
| plan | No | a plan id (pro-50 or premium-99) to prepare the payment steps for | |
| wallet | No | the 0x address of the wallet that will pay — needed for the renewing subscription, which is authorized for that wallet only |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly/idempotent/non-destructive, and the description adds meaningful behavioral context: it does not move money, the trader signs in their own wallet, renewal is every 30 days, and the wallet authorization is per-wallet. It still omits what the response looks like and any rate/availability caveats beyond the 'when live' condition.
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?
Content is front-loaded (plans and pricing first, then payment mechanics, then the safety note) with no filler sentences. It is a single dense sentence that is slightly hard to parse due to em-dash interjections, but every clause carries 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?
With no output schema, the description carries the return burden and does describe the content returned (pricing, inclusions, treasury, token, transactions). Both parameters are optional read-only inputs with full schema coverage, so little else is needed; only the concrete response shape is left implicit.
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 the schema already documents both the plan enum and the wallet address. The description mirrors this (plan pricing, wallet needed for the renewing subscription authorized for that wallet only) without adding format or usage detail beyond the schema, so baseline 3 applies.
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 identifies the resource returned (plan pricing per 30 days, inclusions, treasury/token, and the approve/subscribe steps), so an agent understands what it will get. It is less explicit about the verb (read vs prepare) and does not distinguish itself from siblings like plan_claim, catalogue, or vault_prepare.
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?
Usage is implied (pick a plan and wallet to obtain payment steps, when the subscription vault is live) but there is no explicit 'use this when / not when' guidance and no named alternative among siblings. An agent must infer when to call plans versus plan_claim or vault_prepare.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
priceARead-onlyInspect
FREE, no key, no sign-in: the tape's latest price for one market (NQ, ES, YM, BTC, ETH or SOL) with the time of that 1-minute close and whether the tape is stale. Use it whenever an agent needs a current price; it is the same tape every Cubicle vault checks its orders against. For a window of candles use tape (needs a key).
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | the market, by ticker |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, non-destructive, open-world behavior, and the description adds real value on top: no key or sign-in required, a staleness flag is returned, and the tape is the same one vaults validate orders against. It does not define what 'stale' means or any rate limits, which keeps it short of a 5.
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 dense sentences with the key differentiator ('FREE, no key, no sign-in') front-loaded, immediately followed by capability and then the routing hint. No filler.
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 one-parameter read tool with no output schema, the description supplies everything needed: what is returned (price, close time, stale indicator), the market set, and the alternative for candle windows. Nothing material is 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?
Schema coverage is 100% and the single parameter is an enum with a description, so the schema already carries the semantics. The description restates the allowed tickers (NQ, ES, YM, BTC, ETH, SOL) but adds no format or edge-case detail beyond the enum itself — baseline 3.
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?
States a specific verb and resource — the tape's latest price for one market — and specifies the returned pieces (1-minute close time, staleness). It explicitly distinguishes itself from the sibling tape tool, so an agent can tell them apart without opening either schema.
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?
Names the triggering condition ('whenever an agent needs a current price') and the alternative with its constraint ('for a window of candles use tape (needs a key)'). Both when-to-use and when-to-use-something-else are explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rehearseAInspect
Walk a forged machine over the real tape with the canonical stepper (the last week by default): how many trades it took, the R, and a comparison with a random null. Call it after a forge when the trader wants to know whether the rule actually fires. A rehearsal is evidence about the past, never a forecast.
| Name | Required | Description | Default |
|---|---|---|---|
| market | No | the market to walk, defaults to the one the trader named | |
| seed_hash | Yes | the seed hash forge returned |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (readOnlyHint=false, idempotentHint=false, openWorldHint=false). The description adds useful defaults ('the last week by default') and an interpretation caveat ('evidence about the past, never a forecast'), but never explains the non-read-only side effect implied by readOnlyHint=false, leaving a behavioral gap.
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?
Three front-loaded sentences with no waste: the first states the action and returns, the second the trigger, the third the interpretive caveat. 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?
With no output schema, the description compensates by naming what comes back (trade count, R, null comparison) and the default window. It is nearly complete for a two-parameter tool, missing only an account of the state change implied by its non-read-only annotation.
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 both parameters, so the schema carries the parameter semantics (market enum, seed_hash provenance). The description only adds the internal 'last week' default, which is not even an exposed parameter, so it does not meaningfully exceed 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?
States a specific verb+resource ('walk a forged machine over the real tape') and names the concrete outputs (trade count, R, random-null comparison). It also explicitly distinguishes itself from the sibling forecast tool ('never a forecast') and ties itself to forge, so an agent can tell it apart from neighbours.
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?
Gives an explicit trigger and sequencing rule: 'Call it after a forge when the trader wants to know whether the rule actually fires.' It contrasts with forecast, but stops short of naming forecast as the alternative to use when a forward-looking answer is wanted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replay_openRead-onlyIdempotentInspect
Put the trader's chart and its time compressor on a past window: the market, the window, the speed to play it at and, optionally, the moment to hold on (a trade, a sweep, a touch of a level). The studio shows a card; pressing it opens the chart there, held and ready to play, with a way back to the studio. Use it whenever you talk about what happened in a window: show it on the chart instead of only describing it. Past windows only, ten minutes to thirty days; a replay shows what printed, never a forecast.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | window end, ISO-8601 UTC, in the past | |
| from | Yes | window start, ISO-8601 UTC | |
| note | No | one short sentence shown beside the card: what to watch for (at most 140 characters) | |
| focus | No | optional: the moment inside the window to hold the clock at, ISO-8601 UTC | |
| speed | No | how fast to play it: 60, 600 or 6000 times real time, or max (default 600) | |
| market | Yes | the market |
replay_recordRead-onlyIdempotentInspect
Read back what happened in the trader's last replay of one market: every beat on the tape, each of their strategies' trades and state changes, and their own moves (travel, speed, seek), in order with their times, plus the recording's hash (the same at any replay speed). Use it after replay_open, or when the trader asks what they just watched, to answer from what was recorded rather than from memory.
| Name | Required | Description | Default |
|---|---|---|---|
| kinds | No | only these sources or kinds (default: all) | |
| market | Yes | the market |
skill_readARead-onlyIdempotentInspect
Read one skill's method (its SKILL.md) — only the methodology and engineering skills are readable; strategy, lens, pillar and copy skills are sealed and will be refused.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | the skill's name as the skills tool lists it |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safe-read profile (readOnly, idempotent, non-destructive). The description adds real behavioral context beyond that: a whole class of skills is sealed and requests will be refused, which is a failure mode the agent must anticipate.
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 sentence, front-loaded with the core action, and the refusal caveat packed into the trailing clause. No waste.
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 single-parameter read tool with no output schema, the description covers the action and the key error case well. It does not hint at the shape of the returned SKILL.md content, a minor gap only.
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% and there is only one parameter ('name'), whose schema description already says it is the name as listed by the skills tool. The description adds no syntax, format, or naming detail beyond that, so baseline 3 applies.
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?
States a specific verb (read) and resource (one skill's method / SKILL.md), plus scope. It distinguishes this from the sibling 'skills' tool by clarifying it fetches a single skill's content rather than listing skills.
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 states when-not: strategy, lens, pillar and copy skills are sealed and will be refused, so the agent knows which names to avoid. It does not name an alternative tool to use for those sealed skills, which keeps it from a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
skillsARead-onlyIdempotentInspect
List the Cubicle skill bank: every skill's name, family, grade and status (runnable / stub / concluded). A stub is a promise, not a capability — say so when you cite one.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior, so the safety profile is covered. The description adds genuine value beyond them by decoding the status vocabulary (runnable / stub / concluded) and warning that a stub is a promise rather than a capability — a real risk-of-misinterpretation note.
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 short sentences, front-loaded with what is listed and followed by the one caveat that matters. No filler or restatement of the tool name.
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?
Zero-parameter read tool with no output schema, and the description still tells the agent what the payload contains and how to interpret status values. Only the absence of any ordering or size expectation for the bank listing keeps it short of full 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?
The tool takes zero parameters, so there is nothing to document and the baseline is 4. The description usefully names the fields the bank returns, which is a small bonus over the empty 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?
Specific verb (List) plus resource (the Cubicle skill bank) and an explicit enumeration of the returned fields (name, family, grade, status). The scope — the whole bank rather than one entry — cleanly separates it from the sibling skill_read.
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?
Usage is only implied: an agent can infer it should call this to survey the catalogue. The description never names skill_read as the alternative for fetching a single skill, nor states when the bank listing is preferable to reading one entry. The stub caveat is guidance about citing results, not about tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
strategiesARead-onlyIdempotentInspect
The strategies anyone can rent to run a Cubicle spot vault (today: accumulate, which buys a fixed amount of ETH or BTC on an interval up to a budget and never sells): what each does, its parameters, the venues and assets, the limits the vault itself enforces, the fee, how to rent it, and its honest status (not live with real funds yet).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered. The description goes beyond them with genuinely useful behavioural context: strategies are 'not live with real funds yet', and the vault itself enforces limits — both of which materially change how an agent should treat the output.
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 that opens with the resource and then lists its facets in a parenthetical. Dense but zero filler; the nested clauses make it slightly harder to scan than a two-sentence split would be.
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 input schema and no output schema, the description must describe the return payload itself, and it does so by enumerating what each strategy entry covers, plus the honest-status caveat. Adequate for a read-only reference tool, though it never states the shape or volume of the result.
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 tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a 0-param tool applies. The description correctly focuses on payload content rather than inputs.
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 names a concrete resource and scope: the set of strategies rentable to run a Cubicle spot vault, and enumerates the content returned (parameters, venues, assets, limits, fee, rental path, status). It does not, however, distinguish itself from near-neighbours like 'catalogue', 'plans', or 'strategy_quote', so the agent must infer the boundary.
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?
Usage is only implied: the mention of 'how to rent it' suggests this is the discovery step before renting, but there is no explicit when-to-use, no when-not, and no pointer to strategy_quote/plans/my_vaults as the alternatives for pricing or managing a position.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
strategy_quoteARead-onlyInspect
A live quote for one accumulate buy on Robinhood Chain: what a USD amount of USDG buys of ETH or BTC on the best Uniswap route right now, the tape's price, the cost against the tape in bps, and whether the vault's own price rule (at most 1% worse than the tape) would accept it. A static call: nothing is signed or sent.
| Name | Required | Description | Default |
|---|---|---|---|
| usd | Yes | USD of USDG to spend | |
| asset | Yes | the asset |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/openWorld/idempotent, but the description adds real context: 'A static call: nothing is signed or sent' and the concrete acceptance behavior (at most 1% worse than the tape). It also implies freshness ('right now'), consistent with the non-idempotent hint. Missing only things like rate limits or failure modes.
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?
Purpose is front-loaded in the opening clause, and the short final sentence cleanly covers the safety trait. The first sentence is dense with a colon-separated return list, but each element carries meaning; slightly heavy for a two-parameter tool.
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 responsibly describes what the quote returns and the vault's 1% acceptance rule, which is the key decision context. It is close to complete; only quote validity/expiry and any access constraints are unaddressed.
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%, and the schema already documents both parameters including the ETH/BTC enum and the USDG denomination, so the baseline is 3. The description restates the USDG spend and asset choices but adds no format, bounds, or minimum/maximum detail 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 names a specific verb and resource ('A live quote for one accumulate buy') and pins the scope to Robinhood Chain, ETH/BTC via Uniswap. It also enumerates the actual outputs (fill amount, tape price, cost in bps, vault price-rule verdict), so an agent can distinguish it from follow_quote or tape without opening a schema.
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?
It conveys implied usage (pre-buy pricing check for a single accumulate order) and clarifies the call is static and safe, but never states when to prefer it over siblings like follow_quote or tape, nor any prerequisites or exclusions. Usage is inferable rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
strategy_stepsRead-onlyIdempotentInspect
The steps the trader's last tested strategy took on one market, as the test engine reported them: each step's time, the move (ready to in a trade, and so on), the conditions true at that bar, the trade it opened or closed, and the watched items' values at that bar. Also, per watched item, its average at the entries of winning trades and of losing trades. Use it to answer 'what was the RSI when it bought', 'why did it enter there', 'what do the winners have in common'. These are past bars of one tested week: a description, never a forecast and never advice.
| Name | Required | Description | Default |
|---|---|---|---|
| only | No | trades = only the steps that opened or closed a trade (default); all = every step | |
| market | No | the market the strategy was tested on (defaults to the newest test) |
studio_moveADestructiveInspect
Move the trader's rule through the studio's state machine when forge is refused: score_parts (Jev scores clarity — needs the trader's own TypeSafe key), accept_parts (the trader accepts the rule as read, without a Jev score), choose_coverage with choice approximate (build from the gates the tape can measure) or stop, reset (start over). Ask the trader before accepting or choosing for them; the studio decides every gate, this only performs the move they chose.
| Name | Required | Description | Default |
|---|---|---|---|
| move | Yes | the move | |
| choice | No | for choose_coverage: approximate or stop |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructive=true and readOnly=false, but the description adds non-obvious behavior: score_parts requires the trader's TypeSafe key, accept_parts skips Jev scoring, choose_coverage depends on measurable gates, and the tool only executes the chosen move without deciding gates. It omits failure modes and reversibility 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 dense sentence followed by a semicolon-delimited guidance clause. It is front-loaded with the action and maps each enum option, though the jargon is heavy and the structure is compressed.
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 the trigger, all move options, the conditional choice parameter, consent requirements, and the tool's limited role in the state machine. For a no-output-schema mutation tool with annotations, this is nearly sufficient, though it omits post-move result or failure behavior.
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 the schema descriptions are minimal. The description supplies meaning for each move enum value, including the conditional choice for choose_coverage, materially improving correct parameter selection.
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?
States a specific verb and resource: moving the trader's rule through the studio's state machine. The trigger 'when forge is refused' and enumeration of the four moves distinguish it from the sibling forge 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?
Explicitly conditions use on forge being refused and instructs the agent to ask the trader before accepting or choosing on their behalf. It also maps each move option, giving clear routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tapeARead-onlyIdempotentInspect
Read real candles from the Taifoon tape for one market. Use it to ground an answer in what the market actually did in a past window — never to predict. NQ is not continuous (weekend halt, 21:00 UTC daily break). A past window is SEALED: its bars never change, so cache it. The same tape is open over plain HTTP with no key: GET https://clob.taifoon.dev/tape/v1/candles/{market}/{tf}?from=&to= with unix SECONDS and a User-Agent that names you (OpenAPI: https://www.taifoon.io/clob/openapi.yaml). It is the tape the coordination layer's conformance check replays, so what you read here is what the judge reads.
| Name | Required | Description | Default |
|---|---|---|---|
| tf | Yes | timeframe (the time machine serves these; build a 15-minute range from 1m or 5m bars) | |
| to | Yes | window end, ISO-8601 UTC, in the past | |
| from | Yes | window start, ISO-8601 UTC | |
| market | Yes | the market |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile, but the description adds substantial context they don't: NQ's non-continuity (weekend halt, 21:00 UTC break), that past windows are SEALED and safe to cache, and the no-key HTTP equivalent with its own parameter conventions. This is exactly the behavioral value structured fields cannot carry.
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?
Front-loaded with the core action, then layers constraints, caching guidance, and the HTTP mirror without padding. Dense but every sentence carries information; slightly long for a four-parameter read tool.
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 should hint at return shape; it names 'real candles' and defers detail to the OpenAPI spec link. It covers continuity, sealing, and caching well, but the bar format itself is left to inference.
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% and both enums are documented, so the schema does the heavy lifting. The description notes the HTTP variant uses unix SECONDS versus the schema's ISO-8601, which is a useful distinction but not a semantics addition for the MCP parameters themselves.
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?
States a specific verb and resource ('Read real candles from the Taifoon tape for one market'), scoping it to a single market and a past window. This cleanly separates it from siblings like chart_image, chart_state, and forecast.
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?
Gives clear when-to-use context ('ground an answer in what the market actually did in a past window') and an explicit exclusion ('never to predict'). It does not name a specific sibling alternative to use instead, so it stops short of the top tier.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unfollowIdempotentInspect
Stop following a model at once (any tier may stop): the active follow record is marked stopped and kept; open mirror positions stay yours to manage. Returns the stopped record, or says there was none.
| Name | Required | Description | Default |
|---|---|---|---|
| model | Yes | the model's attribution |
vault_prepareARead-onlyIdempotentInspect
The wallet steps for a Cubicle vault as UNSIGNED transactions and EIP-712 typed data for the owner's own wallet. Open: call without vault for the transaction that opens it. Fund and hire: call again with the new vault's address (from my_vaults) for allow + deposit and the mandate to sign. Withdraw: withdraw_shares queues shares, then claim_shares pays what the vault's free funds cover to the owner. Chain 4663 is Robinhood Chain (real USDG; open to any wallet since 2026-10-07, no deposit cap; the contracts are not externally audited, so deposit only what you can afford to lose); 36927 is the devnet (test money). Signs and sends nothing.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | what the account is for: spot (trades on Uniswap today) or futures (margin; settles when the venue sends statements) | |
| name | No | a name for the vault | |
| chain | No | 4663 Robinhood Chain (real money) or 36927 the devnet (test money); defaults to the devnet | |
| owner | Yes | the 0x address of the wallet that owns (or will own) the vault | |
| vault | No | the vault's 0x address (every call after the first) | |
| market | No | spot administrators only: the market it buys | |
| margin_usd | No | margin vaults only: the most the mandate may ever lose (second call) | |
| deposit_usd | No | USD of the stable to deposit (second call) | |
| claim_shares | No | withdrawal step two: whole shares to claim (read claimableRedeemRequest(0, owner) on the vault) | |
| administrator | No | who administers the vault under the mandate (second call), e.g. llm-nemotron-dual | |
| withdraw_shares | No | withdrawal step one: whole shares to queue (read balanceOf(owner) on the vault) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well past the annotations by stating 'Signs and sends nothing' (reinforcing readOnlyHint with concrete meaning) and by disclosing real behavioral risk: chain 4663 uses real USDG, has no deposit cap, and the contracts are not externally audited, so deposits can be lost; 36927 is test money. That is material context an agent cannot get from structured fields.
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?
Dense and front-loaded with the core purpose before the phase-by-phase routing and risk notes. It is efficient with no filler, though the single semicolon-chained block is heavier to parse than it needs to be.
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 an 11-parameter tool with no output schema, the description supplies what is otherwise missing: the return shape (unsigned transactions plus EIP-712 typed data), the multi-call sequencing, and the chain/risk context. Nothing essential to invoking it correctly is absent.
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% and the parameter descriptions are already rich, so the baseline is 3. The description adds sequencing meaning beyond the schema by clarifying which parameters belong to the open call versus the funding/hiring call and where the vault address comes from (my_vaults).
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 a precise verb and resource: it produces the wallet steps for a Cubicle vault as unsigned transactions and EIP-712 typed data. It also names the source of the vault address (my_vaults), which anchors the tool among its siblings. An agent knows this constructs payloads rather than executing anything.
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?
Explicit lifecycle routing: call without `vault` to open, call again with the vault address for allow + deposit and the mandate, and the two-step withdraw path (withdraw_shares queues, claim_shares pays). Both the first-call and second-call conditions are spelled out, leaving little to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watch_fieldsRead-onlyIdempotentInspect
What a strategy test reports at every step the strategy takes: the trader's current list, and the whole vocabulary, grouped by indicator (price, volume, RSI 14, EMA 20, EMA 60, VWAP, the Bollinger bands, the 20 bar range, bar size, the 50 bar mean, the clock). Each indicator has named fields (the bands have boll_up and boll_dn, the range has range_high, range_low and range_pos). An item may also be an expression over the fields, such as close - ema20 or rsi14 > 50. Call it before watch_set, and when the trader asks what can be tracked.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
watch_setIdempotentInspect
Set what the trader's strategy tests report at every step: up to 8 items, each a field id from watch_fields or an expression over those fields (numbers, + - * / and brackets, optionally one comparison with < > <= >=). This replaces the list. It applies to the NEXT test, so offer to rehearse again afterwards. An item that cannot be read is refused by name and the rest are kept. Use it when the trader says what they want tracked ('watch the RSI and how far price is from the EMA'): translate their words into fields; never invent a field.
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | field ids or expressions, in the order they should be shown |
workflow_readARead-onlyIdempotentInspect
Read a trading idea the way the studio does: the deterministic reader fills the 7 parts (markets, trigger, direction, stand aside, stop, target, session) from the trader's OWN words and says which required parts are still missing. Use it before restating or forging a rule; never fill a part the trader did not say.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | everything the trader has said about the rule, in their words |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the bar is lower. The description adds genuine behavioral context beyond them: the reader is deterministic, extracts only from the trader's own words, and outputs which required parts are missing, plus an explicit constraint not to invent parts.
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 front-loaded sentences with no filler; the purpose and output shape come first, then the usage directive. The 'way the studio does' framing and parenthetical seven-part list cost some space but carry real 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?
There is no output schema, so the description correctly carries the burden of describing the return: the filled 7 parts and the list of missing required parts. It is nearly complete, though it doesn't specify the exact output shape beyond the part names.
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 one parameter and 100% schema description coverage, the schema already defines the input fully. The description reinforces 'the trader's OWN words' but adds no syntax, format, or bounds beyond what the schema's 'in their words' already states.
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 a specific verb ('read') and resource ('a trading idea'), and enumerates exactly what the deterministic reader produces: the 7 named parts plus a report of missing required parts. This distinguishes it from the sibling 'forge', which the description positions as the downstream step.
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?
It gives an explicit trigger ('Use it before restating or forging a rule') and names the alternative workflow ('forging'), which gives the agent a routing signal. It stops short of full when/when-not coverage, giving no conditions under which this should be skipped or is inapplicable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- Added
replay_open - Added
replay_record
3 tool updates
- Added
strategy_steps - Added
watch_fields - Added
watch_set
3 tool updates
- Added
follow - Added
follows - Added
unfollow
4 tool updates
- Added
draw - Added
drawings - Added
erase - Added
film
1 tool update
- Added
digest
2 tool updates
- Added
desk_read - Added
price
1 tool update
- Changed
vault_prepare2 fields changed- changed
Input schema / properties / margin_usd / descriptionPrevious value: -"the most the mandate may ever lose (second call)"New value: +"margin vaults only: the most the mandate may ever lose (second call)" - added
Input schema / properties / marketAdded value: +{ + "description": "spot administrators only: the market it buys", + "enum": [ + "ETH", + "BTC" + ], + "type": "string" +}
1 tool update
- Changed
vault_prepare7 fields changed- added
Input schema / properties / chainAdded value: +{ + "description": "4663 Robinhood Chain (real money) or 36927 the devnet (test money); defaults to the devnet", + "enum": [ + 4663, + 36927 + ], + "type": "number" +} - added
Input schema / properties / claim_sharesAdded value: +{ + "description": "withdrawal step two: whole shares to claim (read claimableRedeemRequest(0, owner) on the vault)", + "type": "string" +} - changed
Input schema / properties / kind / descriptionPrevious value: -"what the account is for"New value: +"what the account is for: spot (trades on Uniswap today) or futures (margin; settles when the venue sends statements)" - changed
Input schema / properties / kind / enumPrevious value: -[ - "futures", - "funding" -]New value: +[ + "spot", + "futures", + "funding" +] - changed
Input schema / properties / owner / descriptionPrevious value: -"the 0x address of the wallet that will own the vault"New value: +"the 0x address of the wallet that owns (or will own) the vault" - changed
Input schema / properties / vault / descriptionPrevious value: -"the new vault's 0x address (second call only)"New value: +"the vault's 0x address (every call after the first)" - added
Input schema / properties / withdraw_sharesAdded value: +{ + "description": "withdrawal step one: whole shares to queue (read balanceOf(owner) on the vault)", + "type": "string" +}
1 tool update
- Changed
plan_claim2 fields changed- changed
Input schema / properties / chain / descriptionPrevious value: -"the chain the payment was made on"New value: +"the chain the payment was made on (Cubicle takes plans on Robinhood Chain only)" - changed
Input schema / properties / chain / enumPrevious value: -[ - "robinhood", - "base" -]New value: +[ + "robinhood" +]
23 tool updates
- First observed
account - First observed
catalogue - First observed
chart_image - First observed
chart_state - First observed
follow_quote - First observed
forecast - First observed
forge - First observed
grade - First observed
image - First observed
model_record - First observed
models - First observed
my_vaults - First observed
plan_claim - First observed
plans - First observed
rehearse - First observed
skill_read - First observed
skills - First observed
strategies - First observed
strategy_quote - First observed
studio_move - First observed
tape - First observed
vault_prepare - First observed
workflow_read
Related MCP Connectors
Free verified crypto-strategy leaderboard, 150+ pay-per-call agent tools and an agent marketplace
321Non-custodial limit, stop-loss and DCA trading on Epsilon (Robinhood Chain) for AI agents
Pay-per-call trading intelligence for AI agents: live market regime, trading signals, composite conv
Open API Marketplace for AI Agents. Crypto data tools with USDC payments on Base.
Related MCP Servers
- AlicenseAqualityFmaintenanceEnables AI agents to interact with Robinhood Chain via USDG payments, offering tools for balance, pricing, trading, and more.1858MIT
- AlicenseNot gradedqualityBmaintenanceEnables agents and clients to manage wallet-owned identity, private per-agent context, swarm coordination, jobs and offerings, policy-gated tool execution, and audit proofs, with Robinhood Chain execution and payment verification support.MIT
- AlicenseAqualityAmaintenanceAgentPay — x402 crypto data gateway on Stellar. 10 live pay-per-call tools: token prices, whale activity, gas tracker, DeFi TVL, Fear & Greed, Dune queries, token security. Agents pay USDC on Stellar. No API keys. Budget-aware sessions.62082 PyPI4MIT
- AlicenseNot gradedqualityCmaintenanceAgent equity markets, credit markets, and capability staking using USDC on Base L2.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.