Skip to main content
Glama
tinoxbt

preflight-mcp

by tinoxbt

Preflight a trade

preflight_trade

Vet orders against live Binance market data before execution. Returns CLEARED, REFUSED, or UNREADABLE (treat as refusal) with spread, slippage, quote age, and position size to block unsafe trades.

Instructions

Decide whether an order should be placed, BEFORE placing it. Returns CLEARED, REFUSED or UNREADABLE with the numbers behind the answer: spread, expected slippage against the live book, quote age, position size, and venue filters. UNREADABLE means the market data could not be established — treat it as a refusal, not as permission. Call this before every order placed by an execution tool.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sideYes
symbolYesVenue symbol, e.g. BTCUSDT
quantityYesSize in the base asset, e.g. 0.01 for BTC
limitPriceNoLimit price. Omit for a market order.
quoteBalanceNoFree balance in the quote asset. Supply it and the position-size rule applies; omit it and that one rule is skipped rather than guessed at.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses the outcome values, lists the supporting data returned, and explicitly defines the meaning of UNREADABLE to prevent dangerous misinterpretation. It does not detail side effects or rate limits, but this is a preflight check and the description's framing makes non-execution clear.

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?

Three sentences with no filler: the core purpose is front-loaded, the return semantics are listed compactly, and the critical UNREADABLE warning and invocation rule each earn their place. Nothing extraneous remains.

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?

For a tool with no output schema and no annotations, the description supplies the essential return values, their meaning, and the required call context. It could name the sibling tools to help distinguish from market_snapshot and preflight_rules, but the description is otherwise sufficient for an agent to select and invoke the tool correctly.

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 80%, so the schema already documents most parameters. The description adds value by indicating which data feeds the decision (spread, slippage, quote age, position size, venue filters) but does not meaningfully elaborate on individual parameter semantics beyond what the schema provides.

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 ('Decide whether an order should be placed') and a specific resource (a trade before execution), and clearly differentiates from siblings by focusing on pre-execution decision rather than snapshotting or rules. The three return statuses make the tool's purpose unmistakable.

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 instructs 'Call this before every order placed by an execution tool', giving clear when-to-use guidance. It also explains how to interpret UNREADABLE as refusal. It does not explicitly name the sibling tools as alternatives, so it misses a small opportunity to state when NOT to use it.

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

Install Server

Other Tools