Skip to main content
Glama

Otto Data — Robinhood Chain

report_agent_status

Status report from a trading agent — the live panel on ottodata.app/agents renders this stream. kind: run_started | signals | order_proposed | order_approved | order_filled | order_skipped | position_closed | run_summary | error. agent: gap-trader | narrative-trader. key: the operator's OTTO_AGENT_KEY value (wrong keys are rejected). Call at every runbook step; keep message short and human-readable (e.g. 'BUY 3 NVDA @ 184.20 limit — gap +82bps').

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
keyYes
kindYes
agentNogap-trader
run_idNo
tickerNo
messageYes
payloadNo

TDQS

A3.8/5.0
Behavior3/5

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

The description adds behavioral context beyond the sparse annotations (readOnlyHint false, etc.): it notes that wrong keys are rejected, and that the stream is rendered on a live panel. However, it doesn't disclose side effects like whether it persists data or how it handles errors, and since annotations don't indicate safety, the description still carries much of the burden but only partially fills it.

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

Conciseness4/5

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

The description is a single dense paragraph, about 80 words, front-loaded with the main purpose and then key-value enumerations. Every sentence adds useful info: the streaming panel, kind list, agent list, key explanation, call frequency, and message example. It could be more structured but is appropriately concise.

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

Completeness3/5

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

Given the tool has 7 parameters and no output schema, the description provides a good overview but leaves gaps. It explains key, kind, agent, message, and when to call, but does not cover run_id, ticker, payload usage, nor what the response indicates. For a reporting tool with side effects, the description is adequate but not fully complete.

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

Parameters3/5

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

Schema coverage is 0%, so the description must compensate. It does explain key semantics (OTTO_AGENT_KEY, wrong keys rejected), enumerates kind and agent values, and gives a message format example. But it does not explain run_id, ticker, or payload, which are likely used in certain kinds. Thus it partially compensates for the lack of schema descriptions but not fully.

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: 'Status report from a trading agent' and specifies it should be called at every runbook step. It also lists the distinct kind values, distinguishing it from sibling tools that are all data retrieval or execution tools, making this the unique status-reporting tool.

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?

Explicitly says 'Call at every runbook step', which is clear when-to-use context. It also provides an example message format and notes that messages should be short and human-readable. No explicit alternatives are given, but since this is a reporting tool, the usage context is clear enough and differentiates it from siblings.

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