Skip to main content
Glama

NightWatch Live Intelligence

Check an execution spec

strategy_spec_validate
Read-onlyIdempotent

Check a strategy written as an execution spec v0 (POST /strategy/spec/validate). Free, no key, nothing stored. A spec is one JSON object: asset, venue, market, direction, size (nav_weight | fixed_usd | risk_per_stop), leverage, schedule (bar, fill, session, warmup), entry.all and exit.any rules from a CLOSED list (cross_above, cross_below, close_above, close_below, drawdown_from_high, range_bound, sequence, stop_from_entry, trailing_atr, time_in_trade; values sma, ema, atr, highest, lowest), max_positions, costs (fee bps, slippage by order size, funding). An unknown rule or field is refused with its path, never guessed. Returns {ok, spec_hash, normalized, errors[{path, rule, message}], warnings, edge_check}. spec_hash is the sha256 of the canonical normalized JSON. edge_check WARNS (status warn, ok stays true, warnings entry spec_cost_exceeds_edge) when one round trip of costs at its order size is more than 0.5 x the median bar move of its bar over the last 90 days; it never blocks an attach, so read the paper report card's net return; with no candles, or a NAV-based size and no context.nav_usd, it answers status not_evaluated with the reason. Use it before you attach a spec to a Forge signal, a Torii mandate or a gallery strategy template.

Input Schema

NameRequiredDescriptionDefault
specYesThe execution spec v0 object (spec_version 0)
nav_usdNoOptional: account value in USD, to size a nav_weight or risk_per_stop spec for the cost-to-edge check

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.7/5.0
Behavior5/5

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

Goes well beyond the readOnly/idempotent annotations by disclosing that it is free, needs no key, and stores nothing, then explains strict refusal semantics ('An unknown rule or field is refused with its path, never guessed') and the exact edge_check warning threshold and non-blocking behavior. It also enumerates the full return payload and the not_evaluated fallback reasons, so an agent knows precisely what happens on every path.

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?

Front-loaded with the core action and endpoint, then layered with domain detail. It is dense and runs long in a single block, but with no output schema each clause (rule list, edge_check threshold, not_evaluated reasons) carries information the agent needs, so waste is minimal.

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

Completeness5/5

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

For a nested-object validator with no output schema, the description compensates fully — it describes the input grammar, the closed rule/indicator vocabularies, the refusal-on-unknown-field behavior, the sha256 spec_hash, the edge_check warning semantics, and the conditions producing not_evaluated. An agent has everything it needs to call and interpret it correctly.

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

Parameters5/5

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

Schema coverage is already 100%, but the description still adds real meaning: it enumerates the spec's internal shape (asset, venue, market, direction, size variants, leverage, schedule, entry.all/exit.any rules from a closed list, max_positions, costs) and explains that nav_usd is only needed to size a nav_weight or risk_per_stop spec for the cost-to-edge check. That is substantial value beyond the one-line schema notes.

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?

States a specific verb and resource — 'Check a strategy written as an execution spec v0' — and pins the operation to an endpoint (POST /strategy/spec/validate). It is clearly distinguished from the sibling strategy_spec_paper (paper run) by describing validation as a preflight check rather than a simulation.

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?

Gives an explicit when-to-use: 'Use it before you attach a spec to a Forge signal, a Torii mandate or a gallery strategy template.' The trigger condition is clear, though it never names strategy_spec_paper as the alternative to run once the spec passes, so a small routing gap remains.

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.