Skip to main content
Glama

Otto Data — Robinhood Chain

competition_paper_trade

Place a PAPER fill in Otto's trading competition on behalf of the key's owner. No real funds move — the fill is priced server-side at the latest Chainlink price (callers can never supply a price). api_key: the personal otto_pk_ key issued when the wallet joined at ottodata.app/competition. side: buy | sell. qty: token quantity (shares). Include a short reason — it shows up in the owner's trade history. Rules enforced server-side: $10,000 starting budget, long-only, max $2,000 notional per trade, max 10 open positions, max 40 trades/day. On a rule violation the response is {"error": "..."} — read it and adjust instead of retrying blindly.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
qtyYes
sideYes
reasonNo
tickerYes
api_keyYes

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false, but the description goes well beyond them by explaining that no real funds move, prices are server-side and cannot be caller-supplied, rules are enforced server-side, and error responses are formatted as {"error": "..."}. It also clarifies the api_key purpose and that reason appears in trade history, offering rich behavioral context.

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

Conciseness5/5

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

The description is long but every sentence adds distinct value: purpose, safety, pricing, parameter explanations, rules, and error handling. It is front-loaded with the core action and structured cleanly. No filler or redundancy.

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

Completeness4/5

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

The tool is moderately complex with no output schema, and the description covers key behavioral aspects: no real funds, server-side pricing, parameter meanings, and server-enforced rules. It even explains error responses. However, it does not describe the success response format or explicitly explain `ticker`, leaving a minor completeness gap.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It explains api_key (personal otto_pk_ key), side (buy | sell), qty (shares), and reason (shows in trade history). However, it omits the required `ticker` parameter entirely, which is a small but notable gap. The explanation of the other parameters adds meaningful value beyond the schema.

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

Purpose5/5

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

The description clearly states the tool's purpose with a specific verb and resource: "Place a PAPER fill in Otto's trading competition on behalf of the key's owner." It also differentiates this from real trading by emphasizing "No real funds move" and that pricing is server-side. This makes it distinct from sibling tools like execute_onchain_swap.

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

Usage Guidelines4/5

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

The description provides clear context that this is for paper trading in a competition, with rules such as $10,000 budget, long-only, max $2,000 notional, 10 positions, and 40 trades/day. It does not explicitly name alternative tools or state when not to use it, but the paper-trading context and explicit constraints provide sufficient guidance.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A3.6/5.0
Disambiguation4/5

Most tools have clearly distinct purposes, with detailed descriptions that separate e.g. hood_basis_snapshot from hood_basis_history and perp_spot_basis. A few clusters like flow_summary vs token_flows and multiple gap/basis tools could still cause slight ambiguity, but the descriptions are strong enough to guide correct selection.

Naming Consistency5/5

All tool names follow a consistent snake_case pattern with domain prefixes (hood_, agent_, competition_, partner_), and verbs are used predictably (report_, execute_, get_, etc.). There is no mixing of conventions or vague generic names.

Tool Count3/5

39 tools is on the high side, but the server covers a very broad domain (market data, signals, trading execution, competition, partner APIs, agent reporting). While many tools earn their place, a few could be consolidated (e.g., gap/basis variants), making it feel heavier than necessary for typical usage.

Completeness4/5

The surface covers the core lifecycle: market data, signals, paper/real/partner trading, position tracking, and performance reporting. Minor gaps exist (e.g., no explicit wallet balance or order cancellation), but the core workflows are well-covered and derived endpoints fill most needs.

Resources