Skip to main content
Glama

Run a research recipe

run_recipe
Read-onlyIdempotent

Replay a saved multi-step routine over rows you fetched, with every step listed.

★ THREE ROUTINES: `momentum_scan` (rank by a return column), `earnings_surprise`
(actual versus estimate), `dividend_capture` (which ex-dates are still ahead).

★ A SAVED ROUTINE IS NOT A TRADING VIEW. The names are conventional labels for well-known
sequences; what runs is arithmetic over rows you supplied. `steps[]` spells out each operation
so you can disagree with the routine rather than trust it, and nothing here says any of these
sequences makes money.

★ SKIPPED SYMBOLS ARE LISTED, NEVER QUIETLY OMITTED. A symbol lacking the column a routine
needs lands in `skipped[]` with the reason. A silently shorter list reads as "these were
evaluated and did not qualify", when in fact they were never evaluated at all.

★ IT COMPOSES, IT DOES NOT FETCH. Rows come from `query_dataset`, so the routine inherits that
call's `as_of` rather than defining a second point-in-time story of its own.

⚠️ Missing inputs are never substituted with zero — a zero estimate turns any positive result
into an infinite surprise. Args: recipe, rows, as_of, today, top_n, min_yield.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
rowsNo
as_ofNo
todayNo
top_nNo
recipeYes
min_yieldNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already declare readOnly, openWorld, idempotent, and non-destructive behavior, but the description adds substantial non-obvious behavior: skipped symbols are listed with reasons rather than silently omitted, missing inputs are never zero-filled, the routine is arithmetic over supplied rows rather than a trading view, and it composes rather than fetches. This goes well beyond what annotations and schema can convey.

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 long but deliberately structured with distinct bullet points and warnings. It front-loads the core purpose and then uses each section to add operational context. Some lines are emphatic to the point of verbosity, but every section contributes behaviorally relevant information rather than padding.

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

Completeness4/5

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

Given the six parameters, existing output schema, and rich annotations, the description covers the important contextual ground: what the tool runs, where rows come from, how skipped symbols are reported, how as_of is inherited, and the zero-substitution hazard. The main residual gap is full semantic detail for a few parameters, but the description is strong enough for an agent to invoke the tool correctly in most cases.

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

Parameters3/5

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

Schema description coverage is 0%, so the description carries the full parameter-semantics burden. It names all six arguments and gives real meaning to recipe, rows, and as_of, plus a warning about zero substitution. However, today, top_n, and min_yield are left mostly to inference; there are no per-parameter definitions beyond routine names and defaults in the schema. This is helpful but not complete.

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 opens with a specific verb and resource: 'Replay a saved multi-step routine over rows you fetched.' It also names the three concrete routines and explicitly contrasts itself with fetch-style tools: 'IT COMPOSES, IT DOES NOT FETCH. Rows come from query_dataset.' This makes the tool's role unmistakable and distinguishes it from siblings like query_dataset and run_research.

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 gives clear context on when to use the tool: after fetching rows via query_dataset, and it warns that a saved routine is not a trading view. It also explains as_of inheritance, which sets expectations about the call chain. It does not explicitly enumerate alternatives such as run_backtest or run_research, so the exclusion is mostly implied rather than fully explicit.

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

A4/5.0
Disambiguation4/5

The tools are largely distinct: querying, searching, backtesting, risk reads, alerts, memory, and audit functions each have clear homes. A few adjacent pairs (risk_read vs risk_assess, company_health_check vs positioning_read) could be confused, but the descriptions draw explicit boundaries.

Naming Consistency3/5

There are strong consistent clusters like list_*, get_*, run_*, and memory_*, but the *_read suffix alternates with noun-first names like company_health_check, and bare-verb tools like ask, calendar, chart, and screen break the pattern. The naming is readable but not uniform.

Tool Count2/5

Forty tools is well past the 25+ threshold and makes the surface heavy for an agent to navigate, even though the breadth reflects a genuinely wide platform. Several clusters could plausibly be consolidated without losing capability.

Completeness4/5

The tool surface covers the main lifecycle well: discovery, point-in-time querying, filings search and full text, backtesting, research, risk assessment, alerts, memory, approvals, and provenance verification. Minor gaps exist—no strategy management tools, no memory deletion, no bulk export—but agents can work around them.

Resources