Skip to main content
Glama

execution_preflight

Action-facing, chain-neutral data-sufficiency gate for an intended swap, borrow, lend, liquidation, or repay. It composes Insight’s strict multi-oracle pre-trade assessment with an optional fresh venue-quote assessment into ALLOW / CAUTION / BLOCK, lists the exact missing evidence, and returns the underlying signed assessment when available. It evaluates data sufficiency only — never contract safety, custody, profitability, or transaction execution. Monad is a first-class profile using on-chain Pyth Core evidence; set targetProviders to ["pyth"] for a low-latency native snapshot, which remains CAUTION under the strict quorum policy until independent evidence is present. Other supported chains use their configured oracle adapters.

Input Schema

NameRequiredDescriptionDefault
assetYesAsset symbol being traded, e.g. BTC, ETH, USDC
actionYes
chainIdYesChain ID where the trade executes, e.g. 1=Ethereum, 42161=Arbitrum, 8453=Base. Use 0 for chain-agnostic.
protocolIdNoOptional protocol identifier for lending actions
tokenAddressNoOptional 20-byte EVM token address for advisory token-security evidence
decisionInputNoOptional fresh venue quote and explicit limits. This evidence is required for an ALLOW result; without it a healthy oracle result remains CAUTION.
tradeAmountUsdYesTrade size in USD
targetProvidersNoOptional: restrict the check to specific oracle providers
destinationAssetNoOptional destination asset for the intended route

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedInput schema / properties / decisionInput / properties / reviewedAerodromeSlipstream
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Optional strict reviewed-pool lane. Only WETH/USDC on Base through the reviewed Aerodrome Slipstream CL100 pool is admitted; unsupported routes fail closed.",
      +  "properties": {
      +    "amountIn": {
      +      "description": "Exact WETH amount for the reviewed Base Aerodrome Slipstream WETH/USDC CL100 quote",
      +      "maxLength": 128,
      +      "pattern": "^(?:0\\.(?:0*[1-9][0-9]*)|[1-9][0-9]*(?:\\.[0-9]+)?)$",
      +      "type": "string"
      +    },
      +    "maxQuoteDeviationBps": {
      +      "maximum": 10000,
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    "maxTwapDeviationBps": {
      +      "maximum": 10000,
      +      "minimum": 0,
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "amountIn",
      +    "maxQuoteDeviationBps",
      +    "maxTwapDeviationBps"
      +  ],
      +  "type": "object"
      +}
    • changedInput schema / properties / decisionInput / properties / reviewedUniswapV3 / description
      Previous value: -"Optional strict reviewed-pool lane. Currently only MON/USDC on Monad and WETH/USDC on Base, in source-to-USDC direction; unsupported routes fail closed."New value: +"Optional strict reviewed-pool lane. Admits Monad MON/WMON→USDC and Base ETH/WETH→USDC through Uniswap V3, plus Base USDC→USDT through PancakeSwap V3; only the reviewed forward directions are admitted and all other routes fail closed."
    • changedInput schema / properties / decisionInput / properties / reviewedUniswapV3 / properties / amountIn / description
      Previous value: -"Exact source-token amount for the reviewed Uniswap V3 quote"New value: +"Exact source-token amount for the reviewed concentrated-liquidity quote"
  2. Changed1 schema field changed
    • addedInput schema / properties / decisionInput / properties / reviewedUniswapV3
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Optional strict reviewed-pool lane. Currently only MON/USDC on Monad and WETH/USDC on Base, in source-to-USDC direction; unsupported routes fail closed.",
      +  "properties": {
      +    "amountIn": {
      +      "description": "Exact source-token amount for the reviewed Uniswap V3 quote",
      +      "maxLength": 128,
      +      "pattern": "^(?:0\\.(?:0*[1-9][0-9]*)|[1-9][0-9]*(?:\\.[0-9]+)?)$",
      +      "type": "string"
      +    },
      +    "maxQuoteDeviationBps": {
      +      "maximum": 10000,
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    "maxTwapDeviationBps": {
      +      "maximum": 10000,
      +      "minimum": 0,
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "amountIn",
      +    "maxQuoteDeviationBps",
      +    "maxTwapDeviationBps"
      +  ],
      +  "type": "object"
      +}
  3. Changed1 schema field changed
    • changedInput schema / properties / targetProviders / items / enum
      Previous value: -[
      -  "chainlink",
      -  "pyth",
      -  "stork",
      -  "api3",
      -  "redstone",
      -  "dia",
      -  "winklink",
      -  "supra",
      -  "twap",
      -  "reflector",
      -  "flare",
      -  "band"
      -]New value: +[
      +  "chainlink",
      +  "pyth",
      +  "stork",
      +  "chronicle",
      +  "api3",
      +  "redstone",
      +  "dia",
      +  "winklink",
      +  "supra",
      +  "twap",
      +  "reflector",
      +  "flare",
      +  "band"
      +]
  4. Changed1 schema field changed
    • changedInput schema / properties / targetProviders / items / enum
      Previous value: -[
      -  "chainlink",
      -  "pyth",
      -  "api3",
      -  "redstone",
      -  "dia",
      -  "winklink",
      -  "supra",
      -  "twap",
      -  "reflector",
      -  "flare",
      -  "band"
      -]New value: +[
      +  "chainlink",
      +  "pyth",
      +  "stork",
      +  "api3",
      +  "redstone",
      +  "dia",
      +  "winklink",
      +  "supra",
      +  "twap",
      +  "reflector",
      +  "flare",
      +  "band"
      +]
  5. Added

TDQS

A4.3/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 three-value output (ALLOW/CAUTION/BLOCK), that missing evidence is enumerated, that a signed assessment may be returned, and that a pyth-only snapshot remains CAUTION under the quorum policy. It never explicitly labels the operation read-only or states auth/rate-limit behavior, so it is strong but not exhaustive.

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 scope and exclusions are front-loaded in the first three sentences, and each sentence conveys new information. Some phrasing is dense ('chain-neutral', 'strict quorum policy') but nothing is redundant.

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 9-parameter tool with nested objects and no output schema, the description explains the decision outcome shape and the missing-evidence list, which is the key return-value context. It leaves the reviewed-pool lane semantics to the schema, which handles them adequately.

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 coverage is already 89%, so the baseline is 3; the description adds real value on top by showing the targetProviders=["pyth"] usage pattern and explaining that fresh venue quote evidence is what lifts a result from CAUTION to ALLOW. It does not explain the reviewed-lane objects, though the schema covers those.

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 opening states a specific verb and resource: a 'data-sufficiency gate' for a named set of intended actions (swap, borrow, lend, liquidation, repay). It also explicitly bounds what the tool is NOT ('never contract safety, custody, profitability, or transaction execution'), which separates it from pre_trade_safety_check and the lending-guard siblings.

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?

It gives clear usage context (pre-execution check for an intended action) and a concrete configuration instruction for Monad via targetProviders=["pyth"], plus the rule that decisionInput is required for an ALLOW. It stops short of naming a sibling as the alternative for contract/custody safety, leaving that routing to inference.

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.