Insight MCP
Server Details
Insight MCP exposes oracleinsight.xyz data as 30+ MCP tools for AI agents.
Fetch prices, consensus feeds, oracle health, stablecoin/wrapped-asset pegs, DeFi position safety, protocol liquidation risk, and daily risk reports — all through natural language.
Built on the same REST API with built-in auth, rate limits, and plan gating.
- Status
- Healthy
- Uptime
- 100.0% over the last 24 hours
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 20 tools
The active umbrella tools (trade_guard, trade_proof, oracle_watch_window, position_lifecycle) substantially duplicate the deprecated alias tools still listed, so an agent must constantly distinguish current names from absorbed operations. Boundaries are documented but the surface contains many pairs that appear to do the same thing, such as get_oracle_price vs trade_guard op oracle_price and verify_evidence vs trade_proof op verify_evidence.
All names are snake_case, but the set mixes verb_noun aliases (check_trade_safety, prepare_swap), noun_phrase/umbrella names (trade_guard, oracle_watch_window), and op-dispatched tools whose names do not describe a single action. The deprecated aliases preserve older naming styles alongside the newer consolidated names, creating a readable but inconsistent convention.
Twenty tools is heavy for an effective surface that is mostly four umbrella tools with op branches. A large portion of the count is deprecated aliases that should not earn a place in the active tool listing, inflating the set and making it harder to scan.
The surface covers oracle reads and analytics, health, registry lookup, market quotes, pre-trade safety, swap/perp preparation, execution evidence, verification, monitoring windows and position lifecycle. Signing and submission are intentionally absent, and some venue-specific operational gaps may remain, but the stated safety-and-evidence domain is largely complete.
Available Tools
20 toolsbegin_trade_evidenceAInspect
Open the verifiable execution loop: certify a swap/DeFi intent before the agent executes. Use it when a principal needs a signed pre-trade handle to bind an execution receipt later. Do not use it as trade authorization and do not call it after the trade. Returns preTradeUid, destinationPreTradeUid, requestHash, CAIP-19 asset ids, certified cross-rate, the 50 bps band, verdicts and the signed pre-trade attestations. Deprecated alias: prefer trade_proof with op "begin_evidence". Removed on 2027-01-06.
| Name | Required | Description | Default |
|---|---|---|---|
| asset | Yes | Source asset sold | |
| action | Yes | ||
| chain_id | Yes | Execution chain id. Independent on-chain route quotes are currently available only on Ethereum mainnet (chain_id 1); other chains return [unavailable:unsupported_chain] without billing. | |
| providers | No | ||
| amount_usd | Yes | ||
| protocol_id | No | ||
| decision_input | Yes | Required quote evidence: {source, destination, routeQuotePrice, routeQuoteObservedAt} (old camelCase shape) | |
| max_slippage_bps | Yes | Pre-committed tolerance; fixed at 50 | |
| destination_asset | Yes | Destination asset bought | |
| source_group_count | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does substantial work: it lists returned artifacts (preTradeUid, requestHash, CAIP-19 asset ids, certified cross-rate, 50 bps band, verdicts, signed attestations), flags deprecation and a hard removal date, and warns that the handle is not authorization. It stops short of auth requirements, handle expiry/idempotency, and failure behavior beyond what the schema mentions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then exclusions, then return shape, then deprecation routing — a sensible priority order. Every sentence carries distinct information (trigger, prohibition, outputs, migration), with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter, 7-required nested-object tool with no output schema, the description covers purpose, prohibitions, return payload, chain support caveat, and deprecation adequately. Gaps remain around input field intent (providers, protocol_id, decision_input usage) and operational concerns like auth or handle lifetime.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
At 50% schema coverage across 10 parameters, the description should compensate but barely touches inputs. The only input-adjacent detail is the '50 bps band', which merely restates the schema's const 50; undocumented parameters like providers, protocol_id, source_group_count, and the action enum get no explanation, and the long return-value list does not help an agent fill the input.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource framing: 'Open the verifiable execution loop: certify a swap/DeFi intent before the agent executes.' It also distinguishes itself from the sibling trade_proof by naming the exact replacement call (op "begin_evidence") and giving a removal date, so an agent can route correctly without inspecting schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the trigger condition ('when a principal needs a signed pre-trade handle to bind an execution receipt later') and two negative cases ('Do not use it as trade authorization', 'do not call it after the trade'). It also names the preferred alternative, so when-to-use, when-not-to-use, and the substitute are all covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_trade_safetyAInspect
Run the pre-trade oracle safety gate for swaps, lending, perps, vault deposits and position stress tests across Base, Monad, multichain EVM, Solana and Hyperliquid. Use it immediately before an agent trades or signs, and pass the family native payload in guard when the venue needs exact-call fields. Do not use it after execution (use trade_proof) and do not treat its PASS as principal authorization. Returns a verdict (PASS/CAUTION/DANGER/BLOCK), reason codes, oracle evidence and a signed attestation or decision when the family supports one. Deprecated alias: prefer trade_guard with op "check_safety". Removed on 2027-01-06.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Date for liquidation stress | |
| mode | No | Generic oracle gate mode when no family-specific guard applies | pre_trade |
| side | No | Perp side | |
| asset | No | Asset traded or collateral symbol | |
| guard | No | Exact-call guard input for family-specific exact tools | |
| order | No | Exact Hyperliquid order envelope | |
| action | Yes | Trade action being considered | |
| market | No | Perp market | |
| borrows | No | ||
| chain_id | Yes | Execution chain: numeric EVM id, "solana", or "hyperliquid" | |
| position | No | Position payload for action=check_position | |
| market_id | No | Isolated lending market id when required | |
| providers | No | Oracle providers to gate on | |
| amount_usd | No | Trade size in USD | |
| profile_id | No | Reviewed pool/profile id | |
| collaterals | No | ||
| loan_symbol | No | ||
| protocol_id | No | Lending/protocol id | |
| transaction | No | Exact unsigned transaction for exact-call guards | |
| margin_asset | No | ||
| borrow_amount | No | ||
| borrow_symbol | No | ||
| token_address | No | ||
| debt_value_usd | No | ||
| decision_input | No | Caller decision/quote evidence (old camelCase shape) | |
| margin_value_usd | No | ||
| collateral_amount | No | ||
| collateral_symbol | No | ||
| destination_asset | No | Destination asset for swaps | |
| reputation_opt_in | No | ||
| reputation_agent_id | No | ||
| collateral_value_usd | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations supplied, the description carries the full burden and does add real value: it discloses the verdict taxonomy (PASS/CAUTION/DANGER/BLOCK), reason codes, oracle evidence, optional signed attestation, and a deprecation/removal date of 2027-01-06. It does not disclose cost, latency, failure modes when evidence is stale or unavailable, or who can verify the attestation, which are material for a gating tool with no readOnly/destructive hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four tight sentences, front-loaded with the action and scope, then usage timing, then return values, then migration. Every sentence carries information, though the deprecation sentence sits at the end where a high-volume caller might miss a removal date that would ideally be surfaced earlier.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description compensates for the missing output schema by enumerating the return payload, and correctly documents the deprecation path. For a 32-parameter, nested-object tool spanning five venue families, however, the absence of any parameter-by-action mapping leaves a substantial gap that neither the schema (56% coverage) nor the description closes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only the `guard` parameter gets added meaning ('pass the family native payload here when the venue needs exact-call fields'). Against 32 parameters at 56% schema coverage, there is no guidance on which parameters pair with which `action` value (e.g. borrows/collaterals for borrow, position for check_position, market/side for perps) — the single most important thing an agent needs to construct a valid call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Run the pre-trade oracle safety gate') and enumerates the covered domains (swaps, lending, perps, vault deposits, stress tests) and chains (Base, Monad, multichain EVM, Solana, Hyperliquid). It also distinguishes itself from siblings by naming trade_proof for post-execution and trade_guard as the preferred successor.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit timing ('immediately before an agent trades or signs'), an explicit anti-pattern ('Do not use it after execution (use trade_proof)'), a scope caveat ('do not treat its PASS as principal authorization'), and a migration instruction pointing at trade_guard with op "check_safety". Nothing about when to select this tool is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_quoteAInspect
Read one reviewed venue market: pool/market metadata, pinned quote context and venue constraints for Base, Monad, Solana or Hyperliquid. Use it before preparing or gating a trade when the agent needs the reviewed profile or market id. Do not use it as execution authorization or for prices outside the reviewed venues. Returns the market record, reviewed profile ids and current quote context. Deprecated alias: prefer trade_guard with op "market_quote". Removed on 2027-01-06.
| Name | Required | Description | Default |
|---|---|---|---|
| venue | Yes | Reviewed venue to quote | |
| market | No | Hyperliquid perp market | |
| venues | No | Base venue ids to inspect | |
| profile_id | No | Reviewed pool/profile id. PancakeSwap V3: base-pancakeswap-v3-usdc-usdt-100, bnb-pancakeswap-v3-usdt-usdc-100, bnb-pancakeswap-v3-usdt-wbnb-100 |
TDQS
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 marks the operation as a read, scopes it to a reviewed allowlist of venues, states it is not an authorization signal, and discloses the deprecation plus removal date. It stops short of noting permission prerequisites or rate limits, which keeps it off a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with purpose, then usage, then exclusions, then return shape, then the deprecation notice. Every sentence contributes, though the deprecation sentence could arguably lead or be trimmed given its verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, but the description compensates by naming what is returned (market record, reviewed profile ids, current quote context). Combined with explicit scope limits and the migration path to trade_guard, an agent has enough to call it correctly; only auth and error behavior are unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with two enumerated parameters, so the schema already explains venue, market, venues and profile_id. The description only echoes the concepts ('venue constraints', 'market id') without adding format, interaction or conditional rules (e.g. when market vs venues applies). Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 ('Read one reviewed venue market') and enumerates what is returned: pool/market metadata, pinned quote context and venue constraints across four named chains. It also identifies itself as a deprecated alias for trade_guard op "market_quote", so an agent can distinguish it from the sibling that supersedes it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states exactly when to call it ('before preparing or gating a trade when the agent needs the reviewed profile or market id'), when not to ('not as execution authorization', 'not for prices outside the reviewed venues'), and names the preferred alternative (trade_guard with op "market_quote"), including a removal date.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_oracle_healthInspect
Read oracle ecosystem, feed, provider, protocol or asset health. Use it to answer freshness, uptime, latency, anomaly, coverage, peg, exposure, incident and daily-report questions before trusting a price or a protocol. Do not use it for a price quote (get_oracle_price) or for a trade gate (check_trade_safety). Returns the matching health rows, verdicts, counts and timestamps for the selected scope. Deprecated alias: prefer trade_guard with op "oracle_health". Removed on 2027-01-06.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date YYYY-MM-DD | |
| date | No | Report date YYYY-MM-DD | |
| days | No | Lookback days for rankings/trends | |
| from | No | Start date YYYY-MM-DD | |
| limit | No | Maximum rows | |
| scope | No | Which health surface to read | ecosystem |
| metric | No | Optional metric selector; defaults to the scope default | |
| offset | No | Pagination offset | |
| period | No | Period in hours or days | |
| subject | No | Feed UUID, provider, protocol, or asset symbol depending on scope | |
| category | No | Feed category filter | |
| chain_id | No | Chain filter | |
| provider | No | Provider filter | |
| is_active | No | Feed active-state filter, default true | |
| min_severity | No |
get_oracle_priceInspect
Read the current price one oracle provider reports for one asset. Use it for a single fresh or cached provider read (for example when a route quote needs a reference price). Do not use it for cross-provider consensus, historical series, deviation or risk analytics — use get_price_analytics instead. Returns the price, provider, symbol, chain, confidence/decimals, source timestamp and cache status. Deprecated alias: prefer trade_guard with op "oracle_price". Removed on 2027-01-06.
| Name | Required | Description | Default |
|---|---|---|---|
| asset | Yes | Asset symbol, e.g. BTC, ETH | |
| chain | No | Optional blockchain filter, e.g. base | |
| provider | Yes | Oracle provider, e.g. chainlink, redstone, api3 | |
| force_refresh | No | Bypass cache and re-read upstream |
get_price_analyticsAInspect
Run multi-oracle price analytics: consensus across providers, batch reads, historical series, cross-chain spreads, deviation, correlation or a risk summary. Use it when one price is not enough and the caller needs to compare, stress or trend oracle data. Do not use it for a single provider spot read (get_oracle_price) or for feed uptime (get_oracle_health). Returns the requested analysis rows plus provider participation and reference prices. Deprecated alias: prefer trade_guard with op "price_analytics". Removed on 2027-01-06.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date YYYY-MM-DD | |
| from | No | Start date YYYY-MM-DD | |
| mode | No | consensus = cross-provider price, batch = multi-asset, history = time series | consensus |
| chain | No | Optional chain-name filter (e.g. "ethereum", "base", "hyperevm"); not a numeric chain id | |
| assets | Yes | Assets to analyse; consensus/risk/history use the first asset | |
| method | No | Consensus aggregation method | |
| metric | No | Deep-analysis metric; overrides mode | |
| interval | No | Deviation interval, default 24h | |
| provider | No | Provider for history/spreads | |
| providers | No | Required for metric=risk; otherwise uses the provider default | |
| base_chain | No | Base chain name for metric=spreads | |
| period_hours | No | Risk/history hours | |
| force_refresh | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With zero annotations the description carries the full burden, and it does disclose the return shape ("requested analysis rows plus provider participation and reference prices") and lifecycle status (deprecated, removed 2027-01-06). It says nothing about permissions, rate limits, cost, or what happens on partial provider failure, which matters for a fan-out analytics call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and scoping, and the deprecation notice is short and unmissable. The opening enumeration of analysis types partly duplicates the schema's mode and metric enums, so a little of it is redundant rather than additive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 13-parameter, multi-mode tool with no output schema, the description covers purpose, routing, return values, and deprecation adequately, with the schema handling parameter detail. The only real gap is failure and permission behavior across multiple providers, which is left entirely implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 92%, so the baseline is 3 and the description does not beat it: it restates mode/metric value families without explaining precedence rules such as metric overriding mode or consensus/risk/history only using the first asset. Those rules live in the schema, so no value is added beyond it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Run multi-oracle price analytics" gives a specific verb plus resource, and the following clause enumerates the concrete analysis families (consensus, batch, history, spreads, deviation, correlation, risk). It also names the siblings it is not (get_oracle_price, get_oracle_health), so an agent can route without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit positive condition ("when one price is not enough and the caller needs to compare, stress or trend oracle data") plus explicit exclusions naming the two better-suited siblings. It goes further and names trade_guard with op "price_analytics" as the preferred path, with a hard removal date, which is exactly the routing decision an agent needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
issue_execution_receiptAInspect
Close the loop after an agent executes: issue a signed execution-price receipt from the pre-trade handle plus the settlement transaction, or settle a guarded Base/Solana swap. Use it only after the trade settled. Do not use it before execution and do not treat the verdict as principal authorization. Returns a signed receipt or settlement with FAITHFUL/DEVIATED/NOT_EXECUTED/UNDETERMINED (or settlement status), price delta, binding ids and verify URL. Deprecated alias: prefer trade_proof with op "issue_receipt". Removed on 2027-01-06.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | ||
| receipt | No | Required for mode=receipt; old execution_receipt fields | |
| decision | No | Required for settle modes; the signed guard decision | |
| signature | No | Solana transaction signature | |
| swap_tx_hash | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does well: it discloses the returned verdict vocabulary (FAITHFUL/DEVIATED/NOT_EXECUTED/UNDETERMINED), price delta, binding ids, and a verify URL, plus a deprecation/removal date. It does not cover authorization requirements, idempotency of re-issuance, or rate limits, which keeps it below a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core action and the post-settlement precondition are front-loaded, and most sentences carry real information. The deprecation and removal-date sentence plus the return-value enumeration make it dense as a single unbroken block, but little is genuinely redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a five-parameter, mode-switched mutation tool with nested objects and no output schema, the description supplies the return shape and the critical timing constraint that the schema cannot express. Gaps remain around mode selection guidance and any permission prerequisites, but nothing essential for a correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 60%, so the schema already explains the receipt and decision objects and the Solana signature. The description adds conceptual mapping ('pre-trade handle plus the settlement transaction') but never explains the mode enum values or the swap_tx_hash parameter, which has no schema description at all.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names specific verbs and resources: issuing a signed execution-price receipt from a pre-trade handle plus settlement transaction, and settling a guarded Base/Solana swap. It explicitly distinguishes itself from the sibling trade_proof, calling itself a deprecated alias and pointing to trade_proof with op "issue_receipt", so an agent can route without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit precondition ('Use it only after the trade settled'), an explicit exclusion ('Do not use it before execution'), a semantic caution ('do not treat the verdict as principal authorization'), and a named alternative (trade_proof). All three of when, when-not, and alternatives are present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
oracle_watchInspect
Read one oracle-trust snapshot or historical series for an asset. Use it for a one-off check of whether a symbol is currently trustworthy or how its recent history looks. Do not use it for continuous monitoring — buy a 24h window with oracle_watch_window_begin. Returns the current trust signal (or the requested history series) with provider participation and freshness. Deprecated alias: prefer oracle_watch_window with op "snapshot". Removed on 2027-01-06.
| Name | Required | Description | Default |
|---|---|---|---|
| op | No | snapshot | |
| days | No | ||
| chain | No | Chain-name filter (e.g. "ethereum", "base", "hyperevm"); not a numeric chain id | |
| symbol | Yes | Asset symbol to watch | |
| interval | No |
oracle_watch_windowAInspect
Oracle Watch for monitored trust signals. Use it to read one trust snapshot or history series, buy a 24h monitored window, or poll/close an already purchased window. Each call selects the branch with "op": snapshot, history, begin, poll or close. Do not use it for pre-trade safety (use trade_guard op check_safety), do not buy a second window for the same subject, and never reuse a token after close. Returns the trust signal or history series, the windowId plus one-time oww_ token and expiry for begin, and the poll signal or combined close summary for window ops. Absorbs the deprecated names oracle_watch, oracle_watch_window_begin and oracle_watch_window_control. Metering: begin is 500 credits / $0.500 for the 24h window; in-window poll and close are covered (0 credits); snapshot and history are C3 (20 credits / $0.020).
| Name | Required | Description | Default |
|---|---|---|---|
| op | Yes | ||
| days | No | ||
| chain | No | Chain-name filter (e.g. "ethereum", "base", "hyperevm"); not a numeric chain id | |
| symbol | No | Asset symbol to watch | |
| interval | No | ||
| window_id | No | ||
| window_token | No | One-time oww_ token from the purchase |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full behavioral burden and does so: it discloses that the oww_ token is one-time, that tokens are invalid after close, and that begin costs 500 credits / $0.500 while in-window poll and close are free and snapshot/history are 20 credits. It also notes which deprecated tool names are absorbed, which matters for an agent choosing among near-identical siblings.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and the branching model are front-loaded in the first two sentences, and the prohibitions and metering follow in a logical order. It is dense but nearly every clause carries distinct information; the metering sentence is long but genuinely decision-relevant for a paid call.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter, 5-branch tool with no output schema, the description covers return values per branch (signal/series, windowId plus token and expiry, poll signal or close summary), costs, and token lifecycle. The remaining gap is the un-explained optional parameters (days, interval, window_id) that determine history and window behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 43%, and the description compensates for the hardest part by explaining what each op value means and where windowId and the oww_ token come from. However, it adds no meaning for days, interval, or window_id beyond the schema, leaving several low-coverage parameters undocumented in either place.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (Oracle Watch trust signals) and enumerates the five branches it multiplexes: snapshot, history, begin, poll, close. It also explicitly distinguishes itself from the sibling trade_guard (op check_safety), so an agent can tell the two apart without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use (read one snapshot or history series, buy a 24h window, poll/close a purchased window) and explicit when-not-to-use (pre-trade safety belongs to trade_guard). It also states two hard constraints: do not buy a second window for the same subject and never reuse a token after close.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
oracle_watch_window_beginAInspect
Buy a 24h Oracle Watch window for one asset and return the one-time control token. Use it when an agent will poll throughout a window instead of paying per snapshot. Do not use it repeatedly for the same window and never share the token. Returns windowId, the oww_ token, the covered expiry and the credits charged. Deprecated alias: prefer oracle_watch_window with op "begin". Removed on 2027-01-06.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain-name filter (e.g. "ethereum", "base", "hyperevm"); not a numeric chain id | |
| symbol | Yes | Asset to monitor for the window |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does substantial work: it discloses that the token is one-time and must not be shared, that calling repeatedly for the same window is discouraged, what fields come back (windowId, oww_ token, covered expiry, credits charged), and a removal date. It stops short of stating cost magnitude, auth/permission requirements, or what error occurs on a duplicate begin call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, front-loaded with the action and its return value, then usage, cautions, and deprecation. No filler and no repetition of schema content; each sentence carries distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter, no-output-schema purchase tool, the description covers purpose, when to use, return fields, token hygiene, and lifecycle/deprecation. The remaining gap is that it doesn't quantify charges or describe failure on a repeated call, which matters for a paid mutation with no annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (symbol, chain) are already documented, and the description adds only the loose notion of 'one asset' without clarifying symbol format or the chain filter's behavior. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource with scope: 'Buy a 24h Oracle Watch window for one asset and return the one-time control token.' It also explicitly contrasts with the per-snapshot sibling (oracle_watch) and names the preferred replacement tool, so an agent can distinguish it without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit positive condition ('when an agent will poll throughout a window instead of paying per snapshot'), an explicit exclusion ('Do not use it repeatedly for the same window'), a token-handling caution, and a migration path ('prefer oracle_watch_window with op "begin"'). Alternative selection is fully determined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
oracle_watch_window_controlAInspect
Poll or close an already purchased Oracle Watch window using its one-time oww_ token. Poll returns a fresh signal at zero extra credits; close returns the complete window summary and the final signal. Use it only with a window token from oracle_watch_window_begin. Do not use it for a one-off snapshot (oracle_watch) and never reuse a token after close. Returns the signal (poll) or the combined summary (close). Deprecated alias: prefer oracle_watch_window with op "poll". Removed on 2027-01-06.
| Name | Required | Description | Default |
|---|---|---|---|
| op | Yes | poll issues a signal; close returns the summary | |
| window_id | Yes | ||
| window_token | Yes | One-time oww_ token from the purchase |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does substantial work: it discloses the cost profile (poll costs zero extra credits), the differing return shapes for each op, one-time token semantics, and a deprecation timeline with a removal date. It stops short of describing what happens on a rejected or reused token and whether close is idempotent, which are the remaining behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and tightly packed with routing, cost, and deprecation facts. The final sentence ('Returns the signal (poll) or the combined summary (close)') largely restates the second sentence, which is the one piece of avoidable redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description compensates by explaining what each op returns. Combined with the deprecation warning and preferred replacement, an agent has everything needed to call this correctly and to plan its migration.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% and the schema already documents op's two values and the window_token's oww_ prefix. The description adds meaning the schema lacks: the token is one-time, comes from oracle_watch_window_begin, and must not be reused after close. window_id itself is still left to inference, but its meaning is unambiguous from context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States specific verbs (poll, close) applied to a specific resource (an already purchased Oracle Watch window) and names the token that scopes the operation. It explicitly differentiates itself from oracle_watch_window_begin (source of the token) and oracle_watch (one-off snapshot), so an agent can select it without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit when-to-use rule ('only with a window token from oracle_watch_window_begin'), an explicit when-not ('Do not use it for a one-off snapshot'), a lifecycle constraint ('never reuse a token after close'), and a preferred alternative (oracle_watch_window with op "poll"). Every routing decision is stated rather than inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
position_lifecycleAInspect
Use it to buy a 24h Position Lifecycle bundle and run the guard, receipt and close steps inside it. Each call selects the branch with "op": begin, guard, receipt or close. Do not use it for a single pre-trade guard (use trade_guard op check_safety), for unrelated positions, or with a token after close. Returns the lifecycleId plus one-time plc_ token and expiry for begin, and the guard verdict, signed execution receipt or combined lifecycle summary for the in-window steps. Absorbs the deprecated names position_lifecycle_begin and position_lifecycle_step.
| Name | Required | Description | Default |
|---|---|---|---|
| op | Yes | ||
| chain | No | Chain-name filter (e.g. "ethereum", "base", "hyperevm"); not a numeric chain id | |
| family | No | ||
| params | No | Native family guard input (old shape) | |
| symbol | No | Position subject for the lifecycle | |
| receipt | No | Bundled execution receipt (old shape) | |
| transaction | No | ||
| lifecycle_id | No | ||
| lifecycle_token | No | One-time plc_ token from the purchase |
TDQS
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 one-time plc_ token and expiry, the per-op return values, the token's invalidation after close, and that it absorbs the deprecated position_lifecycle_begin/position_lifecycle_step names. It stops short of stating cost/payment mechanics or permission requirements for the purchase.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the purpose and branch model, then exclusions, then return values. Dense but nearly every clause carries information; the deprecated-name note is useful but slightly tacked on.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter, multi-branch tool with nested objects and no output schema, the description covers the return values per op and the token lifecycle well. The remaining gap is the undocumented secondary parameters (chain, family, params, receipt, transaction), which an agent would have to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 56%, and the description adds real meaning for 'op' (branch selection) and 'lifecycle_token' (one-time plc_ token from the purchase). However, several parameters — chain, family, params, receipt, transaction — get no explanation in either the description or the schema, leaving a meaningful gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('buy a 24h Position Lifecycle bundle and run the guard, receipt and close steps') and enumerates the four branch values of 'op'. It also explicitly distinguishes itself from the sibling trade_guard, so an agent can tell the two apart without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-not guidance: not for a single pre-trade guard (route to trade_guard op check_safety), not for unrelated positions, and not with a token after close. The alternative and the condition that selects it are both named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
position_lifecycle_beginAInspect
Buy a 24h Position Lifecycle bundle for one position subject and return the one-time control token. Use it when an agent needs guard, execution-receipt and close steps inside one prepaid window. Do not use it for a single guard (use check_trade_safety) and never share the token. Returns lifecycleId, the plc_ token, the covered expiry and the credits charged. Deprecated alias: prefer position_lifecycle with op "begin". Removed on 2027-01-06.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain-name filter (e.g. "ethereum", "base", "hyperevm"); not a numeric chain id | |
| symbol | Yes | Position subject for the lifecycle |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does most of it: it discloses the prepaid 24h window, that the control token is one-time and must not be shared, the credit charge, and the exact return fields (lifecycleId, plc_ token, covered expiry). It does not say what happens if a lifecycle already exists for the subject, nor what an insufficient-credit or failure response looks like, which keeps it below a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four compact sentences, front-loaded with the action and return value, then usage boundaries, then the return contract, then the deprecation notice last. No filler or restatement of the name; the security warning and sunset date each earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Only two simple parameters and no output schema, so the description must supply the return contract itself — which it does (lifecycleId, plc_ token, expiry, credits charged). It also flags the deprecation and removal date, so an agent knows to prefer the newer sibling, leaving nothing essential unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented; the description reinforces that symbol identifies the single "position subject" the bundle covers but says nothing about chain (e.g. whether omitting it defaults or errors). Baseline 3 is appropriate when the schema does the explanatory work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Buy a 24h Position Lifecycle bundle for one position subject and return the one-time control token" gives a specific verb (buy), a specific resource (lifecycle bundle), its duration and its output. It explicitly contrasts itself with check_trade_safety (single guard) and with position_lifecycle op "begin", so an agent can place it among 20 siblings without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States the positive condition (an agent needs guard, execution-receipt and close steps in one prepaid window), the negative condition (not for a single guard → use check_trade_safety), a security rule (never share the token), and a deprecation routing rule (prefer position_lifecycle with op "begin"). Both alternatives and the selection criteria are named explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
position_lifecycle_stepAInspect
Run one step inside a purchased Position Lifecycle bundle: guard (family-specific safety assessment), receipt (signed execution receipt), or close (combined summary). Guard and receipt cost zero extra credits inside the bundle. Returns the step result (guard verdict, signed receipt, or the combined lifecycle summary). Use it only with a lifecycle token from position_lifecycle_begin. Do not use it for unrelated positions and never reuse a token after close. Deprecated alias: prefer position_lifecycle with op "guard". Removed on 2027-01-06.
| Name | Required | Description | Default |
|---|---|---|---|
| op | Yes | ||
| family | No | ||
| params | No | Native family guard input (old shape) | |
| receipt | No | Bundled execution receipt (old shape) | |
| transaction | No | ||
| lifecycle_id | Yes | ||
| lifecycle_token | Yes | One-time plc_ token from the purchase |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations supplied, the description carries the full burden and does well: it discloses credit cost (guard and receipt are free inside the bundle), the one-time nature of the token, the deprecation/removal date, and what each step returns. It stops short of describing failure behavior (expired/invalid token, out-of-order steps) or whether close invalidates the bundle beyond the token-reuse warning.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the operation enumeration, then moves through cost, returns, constraints, and deprecation in a logical order with no filler. It is dense with several distinct concerns packed into one paragraph, which slightly reduces scannability but not substance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description steps in by naming what each op returns (guard verdict, signed receipt, combined summary), and it flags the deprecation and preferred replacement. Given 7 parameters with nested objects, the unexplained family/params/receipt shapes are the main remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 43%, and the description compensates for two parameters well: op values are explained and lifecycle_token's origin is stated. However family, params, receipt, and transaction (including the vague "old shape" hint) get no explanation in the description, leaving half the parameters undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Run one step inside a purchased Position Lifecycle bundle") and enumerates the three operations with their meanings: guard, receipt, close. It also distinguishes itself from siblings by naming the deprecated status relative to position_lifecycle and by tying it to position_lifecycle_begin.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit preconditions ("Use it only with a lifecycle token from position_lifecycle_begin"), explicit exclusions ("Do not use it for unrelated positions"), a hard constraint ("never reuse a token after close"), and an alternative ("prefer position_lifecycle with op 'guard'"). This is close to a complete routing decision.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepare_perp_orderAInspect
Prepare an unsigned perpetual order for one reviewed venue, without signing or submitting it. Venue decides the artifact shape: hyperliquid returns an unsigned exchange order envelope (HyperCore); synthetix-perps-v3-base returns EVM calldata for commitOrder whose acceptablePrice is derived from Insight cross-oracle consensus, not the Synthetix mark price; aster-perps-bnb-mainnet returns a canonical centralized REST order payload (not calldata, and it proves payload binding rather than on-chain execution); solana_drift returns a Borsh instruction payload that the caller must complete with the Drift SDK. The reviewed guard runs inside each adapter, so the result carries the risk verdict reference. Use it when an agent has decided on venue, market, side and size. Do not use it to create a nonce, sign, or submit an order. Returns the shared prepared-execution envelope: state (READY, CAUTION, REQUIRES_COMPLETION, BLOCK or UNAVAILABLE), a payload whose kind is evm-transaction, venue-rest-order, solana-instruction or null, a required validity_anchor (timestamp, EVM block, Solana block height or venue policy), caller requirements and the guard verdict reference. It never returns a uniformly described executable trade package, and a payload that still needs caller completion is never labelled READY. A venue-rest-order payload exposes execution_binding with proves_onchain_execution: false and the signing requirement. Solana message payloads carry transactionHash (sha256 of the exact unsigned bytes, byte binding only, not signature-verifiable) and messageHash (null when the message segment cannot be derived). Deprecated alias: prefer trade_guard with op "prepare_perp_order". Removed on 2027-01-06.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does: it discloses the state enum (READY, CAUTION, REQUIRES_COMPLETION, BLOCK, UNAVAILABLE), that unprepared payloads are never labelled READY, that a venue-rest-order sets proves_onchain_execution: false, the signing requirement, and the limits of transactionHash/messageHash binding. It also reveals that a guard verdict is embedded per adapter, which is exactly the kind of non-obvious behavior an agent cannot infer.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core contract is front-loaded in the first sentence and every substantive sentence adds a fact an agent needs (per-venue artifact, guard reference, envelope shape, deprecation). It is still a dense single block of long parenthetical clauses, and the defensive line about never returning "a uniformly described executable trade package" could be tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a complex four-variant, venue-polymorphic tool with no output schema, and the description still specifies the return envelope, payload kinds, the required validity_anchor, caller requirements and the guard reference. Nothing critical for calling or interpreting the result is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3; the description earns one more by adding meaning the schema does not encode, notably that Synthetix acceptablePrice comes from Insight cross-oracle consensus rather than the mark price, and that the Solana Borsh payload must be completed with the Drift SDK. It does not walk through individual parameter names, which leaves it short of a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Prepare an unsigned perpetual order for one reviewed venue, without signing or submitting it" names a specific verb (prepare), resource (perpetual order) and explicit boundary (unsigned, not submitted). It then enumerates the four venues and what each returns, which lets an agent distinguish this from siblings like issue_execution_receipt or check_trade_safety without reading any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use it when an agent has decided on venue, market, side and size" gives the precondition, and "Do not use it to create a nonce, sign, or submit an order" gives the exclusions. It also routes to the replacement explicitly (trade_guard with op "prepare_perp_order") and dates the removal, so an agent knows both the trigger and the deprecation path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepare_swapAInspect
Prepare unsigned, reviewed swap calldata for local signing on Base Aerodrome Slipstream, Base PancakeSwap V3, the Base agent swap guard, or a Solana Loopscale vault deposit. Use it when the user wants an executable transaction bound to a reviewed pool and policy. Do not use it to sign, submit or route arbitrary calldata, and do not skip the matching safety gate. Returns the unsigned transaction envelope (to/value/calldata), reviewed profile, quote and, where supported, a signed decision. Deprecated alias: prefer trade_guard with op "prepare_swap". Removed on 2027-01-06.
| Name | Required | Description | Default |
|---|---|---|---|
| vault | No | ||
| venue | Yes | Reviewed execution venue | |
| policy | No | ||
| wallet | No | ||
| amount_in | Yes | Exact input amount as a decimal string | |
| direction | No | ||
| recipient | No | ||
| asset_mint | No | ||
| input_mint | No | Solana base58 mint sold; required for venue=solana_jupiter | |
| profile_id | No | ||
| loan_symbol | No | ||
| output_mint | No | Solana base58 mint bought; required for venue=solana_jupiter | |
| min_lp_amount | No | ||
| max_slippage_bps | No | ||
| principal_amount | No | ||
| collateral_symbol | No | ||
| collateral_value_usd | No | ||
| deadline_unix_seconds | No | ||
| source_decision_price_usd | No | ||
| destination_decision_price_usd | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden well: it discloses that output is unsigned, that signing/submission is out of scope, that a safety gate must be run, and that the tool is deprecated with a removal date. It omits auth/permission requirements and rate limits, keeping it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then usage constraints, then return shape, then deprecation. Dense but nearly every clause carries information; the venue enumeration is long but necessary for routing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 20-parameter, no-annotation, no-output-schema tool, the description covers the return envelope and safety-gate requirement but leaves most parameters and venue-specific requirements (e.g. which fields apply to solana_jupiter vs loopscale) unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20% across 20 parameters, and the description adds almost no per-parameter meaning beyond naming venues and mentioning a 'reviewed profile' and 'policy'. Fields like direction, min_lp_amount, principal_amount, collateral_value_usd, and the decision-price fields are left entirely to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Prepare unsigned, reviewed swap calldata') and enumerates the exact venues it covers, so an agent can distinguish it from quote or safety-check siblings without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly gives the when ('user wants an executable transaction bound to a reviewed pool and policy'), the when-not ('do not use it to sign, submit or route arbitrary calldata'), and names the preferred alternative (trade_guard with op "prepare_swap").
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_oracle_registryAInspect
Search Insight-reviewed registry and evidence resources: symbols, feeds, protocols, stablecoins, protocol risk parameters, RWA instruments/context, settlement-evidence packs and oracle setup recommendations. Use it to discover the exact ids a price, safety or execution tool expects. Do not use it to read live prices or health. Returns matching registry rows or one lookup record, with ids and reviewed metadata. Deprecated alias: prefer trade_guard with op "search_registry". Removed on 2027-01-06.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | Registry/evidence family to search | |
| limit | No | Maximum rows | |
| query | No | Search or lookup term (symbol, protocol, slug) | |
| offset | No | Pagination offset | |
| category | No | Feed category filter | |
| chain_id | No | Chain filter for feeds | |
| is_active | No | Feed active-state filter, default true | |
| verify_onchain | No | For RWA lookups, cross-check on chain |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description still discloses that this is a lookup returning registry rows or a single record with ids and reviewed metadata, which signals a read-only retrieval tool. It also flags deprecation and the sunset date, which is unusually useful context. It stops short of stating read-only guarantees explicitly or describing pagination behavior beyond the offset parameter, and the phrase "Deprecated alias" is slightly ambiguous about whether this tool or trade_guard is the deprecated one.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the resource scope, then usage, then return shape, then the deprecation note — a sensible ordering with no filler. The deprecation sentence is slightly compressed to the point of ambiguity ("Deprecated alias: prefer trade_guard with op \"search_registry\""), costing a bit of clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter, no-output-schema, no-annotation tool, the description covers the essential pieces: what is searched, when to use it, what comes back, and that it is being retired. What is missing is modest — no statement about result volume/paging, whether the deprecated tool behaves identically to trade_guard op search_registry, or any auth/permission expectation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every one of the 8 parameters (kind enum, query, limit, offset, category, chain_id, is_active, verify_onchain) is already documented in the schema. The description adds contextual meaning about the ids the search surfaces but no parameter-level syntax, defaults, or interactions. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (search) plus the exact resource families (symbols, feeds, protocols, stablecoins, protocol risk parameters, RWA instruments/context, settlement-evidence packs, setup recommendations) and explicitly separates itself from price/health siblings. An agent can tell it apart from get_oracle_price, get_oracle_health, and verify_evidence without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a positive use case ("discover the exact ids a price, safety or execution tool expects"), an explicit exclusion ("Do not use it to read live prices or health"), and a named alternative plus deprecation date ("prefer trade_guard with op \"search_registry\"... Removed on 2027-01-06"). This is exactly the when/when-not/alternative triad.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trade_guardAInspect
Use it for every pre-execution trust decision: one oracle price, price analytics, oracle health, oracle registry search, a venue market quote, or the pre-trade safety gate including prepare_swap and prepare_perp_order. Each call selects the branch with "op". Do not use it to prove execution after the fact (use trade_proof), to poll a prepaid monitoring window (use oracle_watch_window), or to manage a position bundle (use position_lifecycle). Returns the op payload: price and analytics rows for read ops, a venue quote for market_quote, a PASS/CAUTION/DANGER/BLOCK verdict with reasons for check_safety, and an unsigned prepared transaction, Solana message, venue order or instruction for prepare_* ops. Absorbs the deprecated names get_oracle_price, get_price_analytics, get_oracle_health, search_oracle_registry, get_market_quote, check_trade_safety, prepare_swap and prepare_perp_order. Metering: oracle_price, market_quote and search_registry are 2 credits ($0.002); price_analytics and oracle_health are 4 credits ($0.004); check_safety, prepare_swap and prepare_perp_order are 40 credits ($0.040), which is both the per-call price and the product ceiling. Deprecated alias spellings are callable at the same price until 2027-01-06.
| Name | Required | Description | Default |
|---|---|---|---|
| op | Yes | ||
| to | No | End date YYYY-MM-DD | |
| date | No | Report date YYYY-MM-DD | |
| days | No | Lookback days for rankings/trends | |
| from | No | Start date YYYY-MM-DD | |
| kind | No | Registry/evidence family to search | |
| mode | No | ||
| side | No | Perp side | |
| asset | No | Asset symbol, e.g. BTC, ETH | |
| chain | No | Optional blockchain filter, e.g. base | |
| guard | No | Exact-call guard input for family-specific exact tools | |
| limit | No | ||
| order | No | Exact Hyperliquid order envelope | |
| query | No | Search or lookup term (symbol, protocol, slug) | |
| scope | No | Which health surface to read | ecosystem |
| vault | No | ||
| venue | No | ||
| action | No | Trade action being considered | |
| assets | No | Assets to analyse; consensus/risk/history use the first asset | |
| market | No | Hyperliquid perp market | |
| method | No | Consensus aggregation method | |
| metric | No | ||
| offset | No | Pagination offset | |
| period | No | Period in hours or days | |
| policy | No | ||
| venues | No | Base venue ids to inspect | |
| wallet | No | ||
| borrows | No | ||
| subject | No | Feed UUID, provider, protocol, or asset symbol depending on scope | |
| category | No | Feed category filter | |
| chain_id | No | ||
| interval | No | Deviation interval, default 24h | |
| position | No | Position payload for action=check_position | |
| provider | No | Oracle provider, e.g. chainlink, redstone, api3 | |
| amount_in | No | Exact input amount as a decimal string | |
| direction | No | ||
| is_active | No | Feed active-state filter, default true | |
| market_id | No | Isolated lending market id when required | |
| providers | No | ||
| recipient | No | ||
| amount_usd | No | Trade size in USD | |
| asset_mint | No | ||
| base_chain | No | Base chain name for metric=spreads | |
| input_mint | No | Solana base58 mint sold; required for venue=solana_jupiter | |
| profile_id | No | Reviewed pool/profile id. PancakeSwap V3: base-pancakeswap-v3-usdc-usdt-100, bnb-pancakeswap-v3-usdt-usdc-100, bnb-pancakeswap-v3-usdt-wbnb-100 | |
| collaterals | No | ||
| loan_symbol | No | ||
| output_mint | No | Solana base58 mint bought; required for venue=solana_jupiter | |
| protocol_id | No | Lending/protocol id | |
| transaction | No | Exact unsigned transaction for exact-call guards | |
| margin_asset | No | ||
| min_severity | No | ||
| period_hours | No | Risk/history hours | |
| borrow_amount | No | ||
| borrow_symbol | No | ||
| force_refresh | No | Bypass cache and re-read upstream | |
| min_lp_amount | No | ||
| token_address | No | ||
| debt_value_usd | No | ||
| decision_input | No | Caller decision/quote evidence (old camelCase shape) | |
| verify_onchain | No | For RWA lookups, cross-check on chain | |
| margin_value_usd | No | ||
| max_slippage_bps | No | ||
| principal_amount | No | ||
| collateral_amount | No | ||
| collateral_symbol | No | ||
| destination_asset | No | Destination asset for swaps | |
| reputation_opt_in | No | ||
| reputation_agent_id | No | ||
| collateral_value_usd | No | ||
| deadline_unix_seconds | No | ||
| source_decision_price_usd | No | ||
| destination_decision_price_usd | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and mostly succeeds: it discloses per-op return payloads, the PASS/CAUTION/DANGER/BLOCK verdict shape, the fact that prepare_* returns an unsigned transaction/message/order rather than executing, and per-op credit costs. It does not cover auth requirements, failure behavior of the safety gate, or caching semantics beyond the existence of force_refresh.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the use case, then exclusions, then returns, then deprecation, then metering — a sensible order with no filler. The opening sentence is dense and the metering sentence is long, but each sentence carries information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 8 branches and 73 parameters, no annotations, and no output schema, the description is unusually rich on returns, cost, and aliases. The residual gap is the combinatorial parameter space: nothing tells an agent which subset of fields belongs to which op, which is the main way this definition could be misused.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 53% across 73 parameters, so the description must compensate, and it does so only partially: it explains op semantics, the return per op, and per-op pricing, but never maps parameters to branches (e.g. which fields apply to prepare_perp_order vs check_safety). An agent must infer applicability from parameter names and enum values alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific role — pre-execution trust decisions — and enumerates every branch it covers (oracle price, analytics, health, registry search, venue quote, safety gate, prepare_swap/prepare_perp_order). It also names the sibling tools it is not (trade_proof, oracle_watch_window, position_lifecycle), so an agent can route without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-to-use ("every pre-execution trust decision") paired with three explicit when-not-to-use clauses, each naming the alternative and the condition that selects it. The dispatch rule ("Each call selects the branch with 'op'") closes the remaining loop on invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trade_proofAInspect
Use it to open a trade-evidence session, issue an execution receipt, or verify an evidence artifact after a trade. Each call selects the branch with "op": begin_evidence, issue_receipt or verify_evidence. Do not use it to decide whether a trade is safe before signing (use trade_guard) and do not use it to settle a swap guard (use the venue guard tools). Returns the evidence session handle, the signed receipt, or the verification verdict, digest and matched evidence. Absorbs the deprecated names begin_trade_evidence, issue_execution_receipt and verify_evidence. Metering: begin_evidence and issue_receipt are C4 (40 credits / $0.040); verify_evidence is free for the three offline kinds (execution_pair, base_agent_swap, solana_swap) and C4 for live reads.
| Name | Required | Description | Default |
|---|---|---|---|
| op | Yes | ||
| kind | No | ||
| mode | No | ||
| user | No | ||
| asset | No | Source asset sold | |
| action | No | ||
| receipt | No | Required for mode=receipt; old execution_receipt fields | |
| chain_id | No | Execution chain id. Independent on-chain route quotes are currently available only on Ethereum mainnet (chain_id 1); other chains return [unavailable:unsupported_chain] without billing. | |
| decision | No | Required for settle modes; the signed guard decision | |
| order_id | No | ||
| providers | No | ||
| signature | No | Solana transaction signature | |
| amount_usd | No | ||
| settlement | No | ||
| protocol_id | No | ||
| submitted_at | No | ||
| swap_tx_hash | No | ||
| decision_input | No | Required quote evidence: {source, destination, routeQuotePrice, routeQuoteObservedAt} (old camelCase shape) | |
| expected_order | No | ||
| max_slippage_bps | No | Pre-committed tolerance; fixed at 50 | |
| destination_asset | No | Destination asset bought | |
| execution_receipt | No | ||
| source_group_count | No | ||
| pre_trade_attestation | No | ||
| destination_pre_trade_attestation | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose return content per branch (session handle, signed receipt, verification verdict plus digest and matched evidence) and the credit cost per op. It does not say whether issue_receipt persists or writes anything durable, what permissions/keys are needed, or whether evidence sessions expire, which are the behavioral facts an agent most needs for a mutating ledger-style tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with purpose before exclusions, returns and metering, and each sentence contributes new information. The metering sentence is dense but earns its place because cost varies per branch; the deprecated-alias sentence is borderline but useful for routing legacy calls.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, alternatives, returns and pricing for a genuinely complex 25-parameter, three-branch tool with no annotations and no output schema. The remaining gap is significant: an agent cannot tell from the description which parameters are needed for begin_evidence versus issue_receipt versus verify_evidence, and there is nothing about failure modes, expiry, or signing prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Coverage is only 32% across 25 parameters, so the description needed to compensate and largely does not. Its only real parameter value-add is the metering split for kind (three offline kinds free, live reads billed C4); it never maps the many inputs (user, asset, action, providers, amount_usd, settlement, expected_order, decision_input, attestations) to the branch that requires them, and schema-supplied hints like decision being required for settle modes are only partially echoed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete verb-and-resource set per branch (open a trade-evidence session, issue an execution receipt, verify an evidence artifact) and ties each to an explicit "op" value. It also states what the tool is NOT for, naming trade_guard and the venue guard tools, so an agent can separate it from siblings without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit exclusions are given (do not use to decide trade safety → trade_guard; do not use to settle a swap guard → venue guard tools), and the phrase "after a trade" frames the timing. What is missing is guidance for choosing among the three ops themselves and which inputs each op requires, so the agent still has to infer branch prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_evidenceAInspect
Verify signed evidence produced by Insight or by an agent: a pre-trade/execution pair, a Base agent-swap settlement, a Solana swap settlement, or one Hyperliquid order/fill record. Use it when a third party needs to check binding and signatures before trusting a claim. Do not use it to re-assess oracle risk or to authorize trading. Returns valid/invalid, the closed-loop or settlement status, binding assertions and machine-readable reasons. Deprecated alias: prefer trade_proof with op "verify_evidence". Removed on 2027-01-06.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| user | No | ||
| order_id | No | ||
| settlement | No | ||
| submitted_at | No | ||
| expected_order | No | ||
| execution_receipt | No | ||
| pre_trade_attestation | No | ||
| destination_pre_trade_attestation | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full burden; it does disclose the return payload (valid/invalid, closed-loop or settlement status, binding assertions, machine-readable reasons) and the deprecation timeline. It does not state that the operation is side-effect-free/read-only, nor any auth or rate-limit expectations, which matters for a tool an agent may call repeatedly against third-party claims.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four dense sentences with the purpose and scope front-loaded, followed by usage boundaries, return shape, and deprecation. Little waste, though the deprecation/migration warning is buried at the end rather than surfaced where an agent would see it first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully summarizes the return values, and it handles migration and non-goals well. However, for a 9-parameter tool with deeply nested payload objects and no schema descriptions, the description leaves an agent unable to assemble correct per-kind inputs, which is a material completeness gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 9 parameters including four nested free-form objects, so the description must compensate. It only clarifies the `kind` enum by paraphrasing the four artifact types; user, order_id, submitted_at, settlement, expected_order, execution_receipt, pre_trade_attestation and destination_pre_trade_attestation are left entirely unexplained, including which are required per kind.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Verify signed evidence") and then enumerates the four artifact types it covers (pre-trade/execution pair, Base agent-swap settlement, Solana swap settlement, Hyperliquid order/fill), which map directly to the `kind` enum. This clearly separates it from siblings like check_trade_safety, trade_guard, and get_oracle_health.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit positive trigger ("when a third party needs to check binding and signatures before trusting a claim") and explicit exclusions ("Do not use it to re-assess oracle risk or to authorize trading"), naming the sibling responsibilities it should not absorb. It also routes to the replacement tool trade_proof with the exact op value.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
9 tool updates
- Changed
begin_trade_evidence1 field changed- changed
Input schema / properties / chain_id / descriptionPrevious value: -"Execution chain id"New value: +"Execution chain id. Independent on-chain route quotes are currently available only on Ethereum mainnet (chain_id 1); other chains return [unavailable:unsupported_chain] without billing."
- Changed
get_price_analytics2 fields changed- changed
Input schema / properties / base_chain / descriptionPrevious value: -"Base chain for metric=spreads"New value: +"Base chain name for metric=spreads" - changed
Input schema / properties / chain / descriptionPrevious value: -"Optional chain filter"New value: +"Optional chain-name filter (e.g. \"ethereum\", \"base\", \"hyperevm\"); not a numeric chain id"
- Changed
oracle_watch1 field changed- added
Input schema / properties / chain / descriptionAdded value: +"Chain-name filter (e.g. \"ethereum\", \"base\", \"hyperevm\"); not a numeric chain id"
- Changed
oracle_watch_window1 field changed- added
Input schema / properties / chain / descriptionAdded value: +"Chain-name filter (e.g. \"ethereum\", \"base\", \"hyperevm\"); not a numeric chain id"
- Changed
oracle_watch_window_begin1 field changed- added
Input schema / properties / chain / descriptionAdded value: +"Chain-name filter (e.g. \"ethereum\", \"base\", \"hyperevm\"); not a numeric chain id"
- Changed
position_lifecycle1 field changed- added
Input schema / properties / chain / descriptionAdded value: +"Chain-name filter (e.g. \"ethereum\", \"base\", \"hyperevm\"); not a numeric chain id"
- Changed
position_lifecycle_begin1 field changed- added
Input schema / properties / chain / descriptionAdded value: +"Chain-name filter (e.g. \"ethereum\", \"base\", \"hyperevm\"); not a numeric chain id"
- Changed
trade_guard1 field changed- changed
Input schema / properties / base_chain / descriptionPrevious value: -"Base chain for metric=spreads"New value: +"Base chain name for metric=spreads"
- Changed
trade_proof1 field changed- changed
Input schema / properties / chain_id / descriptionPrevious value: -"Execution chain id"New value: +"Execution chain id. Independent on-chain route quotes are currently available only on Ethereum mainnet (chain_id 1); other chains return [unavailable:unsupported_chain] without billing."
8 tool updates
- Changed
get_market_quote2 fields changed- changed
Input schema / properties / profile_id / descriptionPrevious value: -"Reviewed pool/profile id"New value: +"Reviewed pool/profile id. PancakeSwap V3: base-pancakeswap-v3-usdc-usdt-100, bnb-pancakeswap-v3-usdt-usdc-100, bnb-pancakeswap-v3-usdt-wbnb-100" - changed
Input schema / properties / venue / enumPrevious value: -[ - "base_uniswap_v3", - "base_aerodrome", - "base_pancakeswap_v3", - "base_quickswap_v2", - "base_venue_identity", - "monad_uniswap_v3", - "monad_hanji", - "solana_jupiter", - "hyperliquid_perp" -]New value: +[ + "base_uniswap_v3", + "base_aerodrome", + "base_pancakeswap_v3", + "bnb_pancakeswap_v3", + "base_quickswap_v2", + "base_venue_identity", + "monad_uniswap_v3", + "monad_hanji", + "solana_jupiter", + "hyperliquid_perp" +]
- Added
oracle_watch_window - Added
position_lifecycle - Changed
position_lifecycle_step1 field changed- changed
Input schema / properties / family / enumPrevious value: -[ - "base_perp", - "hyperliquid_perp", - "base_lending", - "monad_lending", - "multichain_evm_lending", - "solana_lending" -]New value: +[ + "base_perp", + "bnb_perp", + "hyperliquid_perp", + "solana_perp", + "base_lending", + "monad_lending", + "multichain_evm_lending", + "solana_lending" +]
- Changed
prepare_perp_order15 fields changed- added
Input schema / oneOfAdded value: +[ + { + "properties": { + "builder_fee": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "client_order_id": { + "pattern": "^0x[0-9a-fA-F]{32}$", + "type": "string" + }, + "expires_after_seconds": { + "maximum": 120, + "minimum": 5, + "type": "integer" + }, + "limit_price": { + "description": "Exact IOC limit price decimal string", + "minLength": 1, + "type": "string" + }, + "market": { + "enum": [ + "BTC", + "ETH", + "HYPE" + ], + "type": "string" + }, + "max_mark_oracle_deviation_bps": { + "maximum": 10000, + "minimum": 0, + "type": "number" + }, + "max_notional_usd": { + "maximum": 1000000000, + "minimum": 1, + "type": "number" + }, + "max_price_impact_bps": { + "maximum": 10000, + "minimum": 0, + "type": "number" + }, + "reduce_only": { + "type": "boolean" + }, + "require_full_fill": { + "type": "boolean" + }, + "side": { + "enum": [ + "buy", + "sell" + ], + "type": "string" + }, + "size": { + "description": "Exact base size decimal string", + "minLength": 1, + "type": "string" + }, + "venue": { + "const": "hyperliquid", + "description": "HyperCore perpetual venue", + "type": "string" + } + }, + "required": [ + "venue", + "market", + "side", + "size", + "limit_price", + "reduce_only", + "client_order_id", + "max_notional_usd", + "max_price_impact_bps", + "max_mark_oracle_deviation_bps" + ], + "type": "object" + }, + { + "properties": { + "account_id": { + "anyOf": [ + { + "pattern": "^[1-9][0-9]*$", + "type": "string" + }, + { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + } + ] + }, + "account_owner": { + "pattern": "^0x[0-9a-fA-F]{40}$", + "type": "string" + }, + "leverage": { + "exclusiveMinimum": 0, + "maximum": 100, + "type": "number" + }, + "limit_price": { + "minLength": 1, + "type": "string" + }, + "market": { + "enum": [ + "BTC", + "ETH", + "SOL", + "XRP", + "DOGE", + "PEPE" + ], + "type": "string" + }, + "max_slippage_bps": { + "maximum": 10000, + "minimum": 0, + "type": "integer" + }, + "order_type": { + "enum": [ + "market", + "limit" + ], + "type": "string" + }, + "quantity": { + "description": "Exact base-asset quantity decimal string", + "minLength": 1, + "type": "string" + }, + "settlement_strategy_id": { + "const": 0, + "type": "number" + }, + "side": { + "description": "buy maps to open_long, sell to open_short", + "enum": [ + "buy", + "sell" + ], + "type": "string" + }, + "valid_for_seconds": { + "maximum": 120, + "minimum": 5, + "type": "integer" + }, + "venue": { + "const": "synthetix-perps-v3-base", + "type": "string" + } + }, + "required": [ + "venue", + "market", + "side", + "quantity", + "leverage", + "max_slippage_bps", + "account_id", + "account_owner" + ], + "type": "object" + }, + { + "properties": { + "client_order_id": { + "pattern": "^[A-Za-z0-9_-]{1,36}$", + "type": "string" + }, + "leverage": { + "exclusiveMinimum": 0, + "maximum": 100, + "type": "number" + }, + "limit_price": { + "minLength": 1, + "type": "string" + }, + "market": { + "enum": [ + "BTC", + "ETH" + ], + "type": "string" + }, + "max_slippage_bps": { + "maximum": 10000, + "minimum": 0, + "type": "integer" + }, + "order_type": { + "enum": [ + "market", + "limit" + ], + "type": "string" + }, + "quantity": { + "description": "Exact base-asset quantity decimal string", + "minLength": 1, + "type": "string" + }, + "side": { + "description": "buy maps to open_long, sell to open_short", + "enum": [ + "buy", + "sell" + ], + "type": "string" + }, + "valid_for_seconds": { + "maximum": 120, + "minimum": 5, + "type": "integer" + }, + "venue": { + "const": "aster-perps-bnb-mainnet", + "type": "string" + } + }, + "required": [ + "venue", + "market", + "side", + "quantity", + "leverage", + "max_slippage_bps", + "client_order_id" + ], + "type": "object" + }, + { + "properties": { + "expires_after_seconds": { + "maximum": 300, + "minimum": 1, + "type": "integer" + }, + "margin_value_usd": { + "exclusiveMinimum": 0, + "type": "number" + }, + "market": { + "enum": [ + "SOL", + "BTC", + "ETH" + ], + "type": "string" + }, + "side": { + "description": "buy maps to open_long, sell to open_short", + "enum": [ + "buy", + "sell" + ], + "type": "string" + }, + "size_base": { + "minLength": 1, + "type": "string" + }, + "size_usd": { + "exclusiveMinimum": 0, + "type": "number" + }, + "user_index": { + "maximum": 65535, + "minimum": 0, + "type": "integer" + }, + "venue": { + "const": "solana_drift", + "type": "string" + }, + "wallet": { + "description": "Drift order authority / fee payer", + "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$", + "type": "string" + } + }, + "required": [ + "venue", + "market", + "side", + "size_usd", + "margin_value_usd", + "wallet" + ], + "type": "object" + } +] - removed
Input schema / properties / builder_feeRemoved value: -{ - "additionalProperties": {}, - "propertyNames": { - "type": "string" - }, - "type": "object" -} - removed
Input schema / properties / client_order_idRemoved value: -{ - "pattern": "^0x[0-9a-fA-F]{32}$", - "type": "string" -} - removed
Input schema / properties / expires_after_secondsRemoved value: -{ - "maximum": 120, - "minimum": 5, - "type": "integer" -} - removed
Input schema / properties / limit_priceRemoved value: -{ - "description": "Exact IOC limit price decimal string", - "minLength": 1, - "type": "string" -} - removed
Input schema / properties / marketRemoved value: -{ - "enum": [ - "BTC", - "ETH", - "HYPE" - ], - "type": "string" -} - removed
Input schema / properties / max_mark_oracle_deviation_bpsRemoved value: -{ - "maximum": 10000, - "minimum": 0, - "type": "number" -} - removed
Input schema / properties / max_notional_usdRemoved value: -{ - "maximum": 1000000000, - "minimum": 1, - "type": "number" -} - removed
Input schema / properties / max_price_impact_bpsRemoved value: -{ - "maximum": 10000, - "minimum": 0, - "type": "number" -} - removed
Input schema / properties / reduce_onlyRemoved value: -{ - "type": "boolean" -} - removed
Input schema / properties / require_full_fillRemoved value: -{ - "type": "boolean" -} - removed
Input schema / properties / sideRemoved value: -{ - "enum": [ - "buy", - "sell" - ], - "type": "string" -} - removed
Input schema / properties / sizeRemoved value: -{ - "description": "Exact base size decimal string", - "minLength": 1, - "type": "string" -} - removed
Input schema / properties / venueRemoved value: -{ - "const": "hyperliquid", - "description": "Only reviewed perp venue", - "type": "string" -} - removed
Input schema / requiredRemoved value: -[ - "venue", - "market", - "side", - "size", - "limit_price", - "reduce_only", - "client_order_id", - "max_notional_usd", - "max_price_impact_bps", - "max_mark_oracle_deviation_bps" -]
- Changed
prepare_swap3 fields changed- added
Input schema / properties / input_mintAdded value: +{ + "description": "Solana base58 mint sold; required for venue=solana_jupiter", + "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$", + "type": "string" +} - added
Input schema / properties / output_mintAdded value: +{ + "description": "Solana base58 mint bought; required for venue=solana_jupiter", + "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$", + "type": "string" +} - changed
Input schema / properties / venue / enumPrevious value: -[ - "base_aerodrome_slipstream", - "base_pancakeswap_v3", - "base_agent_swap", - "solana_loopscale_vault" -]New value: +[ + "base_aerodrome_slipstream", + "base_pancakeswap_v3", + "bnb_pancakeswap_v3", + "base_agent_swap", + "solana_loopscale_vault", + "solana_jupiter" +]
- Added
trade_guard - Added
trade_proof
92 tool updates
- Removed
agent_begin_trade - Removed
assess_rwa_evidence - Removed
base_lending_guard - Removed
base_lending_guard_exact_call - Removed
base_perp_guard - Removed
base_perp_guard_exact_call - Added
begin_trade_evidence - Removed
check_liquidation_risk - Removed
check_position_safety - Added
check_trade_safety - Removed
compare_oracle_deviation - Removed
execution_preflight - Removed
execution_receipt - Removed
get_aerodrome_slipstream_market - Removed
get_anomalies - Removed
get_base_dex_market - Removed
get_base_dex_venue_integrations - Removed
get_consensus_price - Removed
get_correlation - Removed
get_coverage - Removed
get_cross_chain_spreads - Removed
get_daily_report - Removed
get_feed_freshness - Removed
get_feed_health - Removed
get_feed_uptime - Removed
get_feeds - Removed
get_hanji_monad_market - Removed
get_hyperliquid_perp_market - Removed
get_incidents - Removed
get_latency - Added
get_market_quote - Removed
get_metrics - Removed
get_monad_dex_market - Changed
get_oracle_health16 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / categoryAdded value: +{ + "description": "Feed category filter", + "enum": [ + "crypto", + "stablecoin", + "forex", + "commodity", + "wrapped", + "lst" + ], + "type": "string" +} - added
Input schema / properties / chain_idAdded value: +{ + "description": "Chain filter", + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" +} - changed
Input schema / properties / date / descriptionPrevious value: -"Date in YYYY-MM-DD format, defaults to today"New value: +"Report date YYYY-MM-DD" - added
Input schema / properties / daysAdded value: +{ + "description": "Lookback days for rankings/trends", + "maximum": 365, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / fromAdded value: +{ + "description": "Start date YYYY-MM-DD", + "pattern": "^\\d{4}-\\d{2}-\\d{2}$", + "type": "string" +} - added
Input schema / properties / is_activeAdded value: +{ + "description": "Feed active-state filter, default true", + "type": "boolean" +} - added
Input schema / properties / limitAdded value: +{ + "description": "Maximum rows", + "maximum": 500, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / metricAdded value: +{ + "description": "Optional metric selector; defaults to the scope default", + "enum": [ + "health", + "uptime", + "exposure", + "peg", + "latency", + "anomalies", + "coverage", + "counts", + "report" + ], + "type": "string" +} - added
Input schema / properties / min_severityAdded value: +{ + "enum": [ + "low", + "medium", + "high", + "critical" + ], + "type": "string" +} - added
Input schema / properties / offsetAdded value: +{ + "description": "Pagination offset", + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" +} - added
Input schema / properties / periodAdded value: +{ + "description": "Period in hours or days", + "maximum": 8760, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / providerAdded value: +{ + "description": "Provider filter", + "type": "string" +} - added
Input schema / properties / scopeAdded value: +{ + "default": "ecosystem", + "description": "Which health surface to read", + "enum": [ + "ecosystem", + "feeds", + "feed", + "providers", + "provider", + "protocol", + "asset", + "incidents" + ], + "type": "string" +} - added
Input schema / properties / subjectAdded value: +{ + "description": "Feed UUID, provider, protocol, or asset symbol depending on scope", + "minLength": 1, + "type": "string" +} - added
Input schema / properties / toAdded value: +{ + "description": "End date YYYY-MM-DD", + "pattern": "^\\d{4}-\\d{2}-\\d{2}$", + "type": "string" +}
- Changed
get_oracle_price10 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / assetAdded value: +{ + "description": "Asset symbol, e.g. BTC, ETH", + "maxLength": 20, + "minLength": 1, + "type": "string" +} - changed
Input schema / properties / chain / descriptionPrevious value: -"Optional blockchain, e.g. ethereum, arbitrum, base"New value: +"Optional blockchain filter, e.g. base" - removed
Input schema / properties / chain / enumRemoved value: -[ - "ethereum", - "arbitrum", - "optimism", - "polygon", - "solana", - "avalanche", - "fantom", - "cronos", - "juno", - "cosmos", - "osmosis", - "bnb-chain", - "base", - "scroll", - "zksync", - "aptos", - "sui", - "gnosis", - "mantle", - "linea", - "celestia", - "injective", - "sei", - "tron", - "ton", - "near", - "aurora", - "celo", - "starknet", - "blast", - "cardano", - "polkadot", - "kava", - "moonbeam", - "moonriver", - "metis", - "starkex", - "stellar", - "flare", - "supra-chain", - "bandchain", - "monad" -] - removed
Input schema / properties / forceRefreshRemoved value: -{ - "description": "Force refresh from upstream instead of cache", - "type": "boolean" -} - added
Input schema / properties / force_refreshAdded value: +{ + "description": "Bypass cache and re-read upstream", + "type": "boolean" +} - changed
Input schema / properties / provider / descriptionPrevious value: -"Oracle provider name, e.g. chainlink, redstone, api3"New value: +"Oracle provider, e.g. chainlink, redstone, api3" - removed
Input schema / properties / provider / enumRemoved value: -[ - "chainlink", - "pyth", - "stork", - "chronicle", - "api3", - "redstone", - "dia", - "winklink", - "supra", - "twap", - "reflector", - "flare", - "band" -] - removed
Input schema / properties / symbolRemoved value: -{ - "description": "Asset symbol, e.g. BTC, ETH, BTC/USD", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "provider", - "symbol" -]New value: +[ + "provider", + "asset" +]
- Removed
get_oracle_prices_batch - Removed
get_pancakeswap_v3_market - Added
get_price_analytics - Removed
get_price_history - Removed
get_protocol_oracle_exposure - Removed
get_protocol_risk_params - Removed
get_protocols - Removed
get_provider_reputation - Removed
get_quickswap_v2_market - Removed
get_reputation_rankings - Removed
get_risk_summary - Removed
get_robinhood_rwa_context - Removed
get_robinhood_rwa_instrument - Removed
get_settlement_evidence - Removed
get_solana_dex_route - Removed
get_stablecoin_list - Removed
get_stablecoin_peg - Removed
get_symbols - Removed
get_wrapped_asset_peg - Removed
hyperliquid_perp_guard - Removed
hyperliquid_perp_guard_exact_call - Added
issue_execution_receipt - Removed
loopscale_vault_deposit - Removed
monad_lending_guard - Removed
monad_lending_guard_exact_call - Removed
multichain_evm_lending_guard - Removed
multichain_evm_lending_guard_exact_call - Changed
oracle_watch9 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - removed
Input schema / properties / chain / descriptionRemoved value: -"Optional blockchain filter" - removed
Input schema / properties / chain / enumRemoved value: -[ - "ethereum", - "arbitrum", - "optimism", - "polygon", - "solana", - "avalanche", - "fantom", - "cronos", - "juno", - "cosmos", - "osmosis", - "bnb-chain", - "base", - "scroll", - "zksync", - "aptos", - "sui", - "gnosis", - "mantle", - "linea", - "celestia", - "injective", - "sei", - "tron", - "ton", - "near", - "aurora", - "celo", - "starknet", - "blast", - "cardano", - "polkadot", - "kava", - "moonbeam", - "moonriver", - "metis", - "starkex", - "stellar", - "flare", - "supra-chain", - "bandchain", - "monad" -] - added
Input schema / properties / daysAdded value: +{ + "maximum": 90, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / intervalAdded value: +{ + "enum": [ + "30min", + "hourly", + "daily" + ], + "type": "string" +} - added
Input schema / properties / opAdded value: +{ + "default": "snapshot", + "enum": [ + "snapshot", + "history" + ], + "type": "string" +} - changed
Input schema / properties / symbol / descriptionPrevious value: -"Asset symbol, e.g. BTC, ETH"New value: +"Asset symbol to watch" - added
Input schema / properties / symbol / maxLengthAdded value: +20 - added
Input schema / properties / symbol / minLengthAdded value: +1
- Removed
oracle_watch_history - Changed
oracle_watch_window_begin6 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - removed
Input schema / properties / chain / descriptionRemoved value: -"Optional chain scope fixed for the coverage" - removed
Input schema / properties / chain / enumRemoved value: -[ - "ethereum", - "arbitrum", - "optimism", - "polygon", - "solana", - "avalanche", - "fantom", - "cronos", - "juno", - "cosmos", - "osmosis", - "bnb-chain", - "base", - "scroll", - "zksync", - "aptos", - "sui", - "gnosis", - "mantle", - "linea", - "celestia", - "injective", - "sei", - "tron", - "ton", - "near", - "aurora", - "celo", - "starknet", - "blast", - "cardano", - "polkadot", - "kava", - "moonbeam", - "moonriver", - "metis", - "starkex", - "stellar", - "flare", - "supra-chain", - "bandchain", - "monad" -] - changed
Input schema / properties / symbol / descriptionPrevious value: -"Asset monitored for the whole coverage, e.g. ETH"New value: +"Asset to monitor for the window" - added
Input schema / properties / symbol / maxLengthAdded value: +20 - added
Input schema / properties / symbol / minLengthAdded value: +1
- Removed
oracle_watch_window_close - Added
oracle_watch_window_control - Removed
oracle_watch_window_poll - Changed
position_lifecycle_begin6 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - removed
Input schema / properties / chain / descriptionRemoved value: -"Optional chain scope fixed for the coverage" - removed
Input schema / properties / chain / enumRemoved value: -[ - "ethereum", - "arbitrum", - "optimism", - "polygon", - "solana", - "avalanche", - "fantom", - "cronos", - "juno", - "cosmos", - "osmosis", - "bnb-chain", - "base", - "scroll", - "zksync", - "aptos", - "sui", - "gnosis", - "mantle", - "linea", - "celestia", - "injective", - "sei", - "tron", - "ton", - "near", - "aurora", - "celo", - "starknet", - "blast", - "cardano", - "polkadot", - "kava", - "moonbeam", - "moonriver", - "metis", - "starkex", - "stellar", - "flare", - "supra-chain", - "bandchain", - "monad" -] - changed
Input schema / properties / symbol / descriptionPrevious value: -"Asset monitored for the whole coverage, e.g. ETH"New value: +"Position subject for the lifecycle" - added
Input schema / properties / symbol / maxLengthAdded value: +20 - added
Input schema / properties / symbol / minLengthAdded value: +1
- Removed
position_lifecycle_close - Removed
position_lifecycle_guard - Removed
position_lifecycle_receipt - Added
position_lifecycle_step - Removed
pre_trade_safety_check - Removed
prepare_aerodrome_slipstream_swap - Removed
prepare_base_agent_swap_guard - Removed
prepare_hyperliquid_perp_order - Removed
prepare_pancakeswap_v3_swap - Added
prepare_perp_order - Added
prepare_swap - Removed
recommend_oracle_setup - Added
search_oracle_registry - Removed
settle_base_agent_swap_guard - Removed
settle_solana_swap_guard - Removed
solana_lending_guard - Removed
solana_perp_guard - Removed
solana_swap_guard - Removed
verify_base_agent_swap_guard_settlement - Added
verify_evidence - Removed
verify_execution_pair - Removed
verify_hyperliquid_perp_execution - Removed
verify_solana_swap_guard_settlement
3 tool updates
- Changed
get_pancakeswap_v3_market1 field changed- changed
Input schema / properties / profileId / enumPrevious value: -[ - "base-pancakeswap-v3-usdc-usdt-100", - "bnb-pancakeswap-v3-usdt-usdc-100", - "bnb-pancakeswap-v3-usdt-wbnb-100" -]New value: +[ + "base-pancakeswap-v3-usdc-usdt-100", + "bnb-pancakeswap-v3-usdt-usdc-100", + "bnb-pancakeswap-v3-usdt-wbnb-100", + "monad-pancakeswap-v3-wmon-usdc-500" +]
- Changed
prepare_base_agent_swap_guard1 field changed- changed
Input schema / properties / profileId / enumPrevious value: -[ - "base-aerodrome-slipstream-weth-usdc-cl100", - "base-aerodrome-slipstream-usdc-usdt-cl1", - "base-pancakeswap-v3-usdc-usdt-100", - "bnb-pancakeswap-v3-usdt-usdc-100", - "bnb-pancakeswap-v3-usdt-wbnb-100" -]New value: +[ + "base-aerodrome-slipstream-weth-usdc-cl100", + "base-aerodrome-slipstream-usdc-usdt-cl1", + "base-pancakeswap-v3-usdc-usdt-100", + "bnb-pancakeswap-v3-usdt-usdc-100", + "bnb-pancakeswap-v3-usdt-wbnb-100", + "monad-pancakeswap-v3-wmon-usdc-500" +]
- Changed
prepare_pancakeswap_v3_swap1 field changed- changed
Input schema / properties / profileId / enumPrevious value: -[ - "base-pancakeswap-v3-usdc-usdt-100", - "bnb-pancakeswap-v3-usdt-usdc-100", - "bnb-pancakeswap-v3-usdt-wbnb-100" -]New value: +[ + "base-pancakeswap-v3-usdc-usdt-100", + "bnb-pancakeswap-v3-usdt-usdc-100", + "bnb-pancakeswap-v3-usdt-wbnb-100", + "monad-pancakeswap-v3-wmon-usdc-500" +]
1 tool update
- Changed
solana_swap_guard2 fields changed- changed
Input schema / properties / guard / properties / direction / enumPrevious value: -[ - "usdc-to-usdt", - "usdt-to-usdc" -]New value: +[ + "usdc-to-usdt", + "usdt-to-usdc", + "usdc-to-sol", + "sol-to-usdc" +] - changed
Input schema / properties / guard / properties / profileId / enumPrevious value: -[ - "solana-orca-whirlpool-usdc-usdt-1" -]New value: +[ + "solana-orca-whirlpool-usdc-usdt-1", + "solana-orca-whirlpool-sol-usdc-1" +]
1 tool update
- Added
solana_perp_guard
1 tool update
- Added
get_settlement_evidence
10 tool updates
- Changed
get_pancakeswap_v3_market1 field changed- changed
Input schema / properties / profileId / enumPrevious value: -[ - "base-pancakeswap-v3-usdc-usdt-100", - "bnb-pancakeswap-v3-usdt-usdc-100" -]New value: +[ + "base-pancakeswap-v3-usdc-usdt-100", + "bnb-pancakeswap-v3-usdt-usdc-100", + "bnb-pancakeswap-v3-usdt-wbnb-100" +]
- Added
oracle_watch_window_begin - Added
oracle_watch_window_close - Added
oracle_watch_window_poll - Added
position_lifecycle_begin - Added
position_lifecycle_close - Added
position_lifecycle_guard - Added
position_lifecycle_receipt - Changed
prepare_base_agent_swap_guard1 field changed- changed
Input schema / properties / profileId / enumPrevious value: -[ - "base-aerodrome-slipstream-weth-usdc-cl100", - "base-aerodrome-slipstream-usdc-usdt-cl1", - "base-pancakeswap-v3-usdc-usdt-100", - "bnb-pancakeswap-v3-usdt-usdc-100" -]New value: +[ + "base-aerodrome-slipstream-weth-usdc-cl100", + "base-aerodrome-slipstream-usdc-usdt-cl1", + "base-pancakeswap-v3-usdc-usdt-100", + "bnb-pancakeswap-v3-usdt-usdc-100", + "bnb-pancakeswap-v3-usdt-wbnb-100" +]
- Changed
prepare_pancakeswap_v3_swap1 field changed- changed
Input schema / properties / profileId / enumPrevious value: -[ - "base-pancakeswap-v3-usdc-usdt-100", - "bnb-pancakeswap-v3-usdt-usdc-100" -]New value: +[ + "base-pancakeswap-v3-usdc-usdt-100", + "bnb-pancakeswap-v3-usdt-usdc-100", + "bnb-pancakeswap-v3-usdt-wbnb-100" +]
3 tool updates
- Added
settle_solana_swap_guard - Added
solana_swap_guard - Added
verify_solana_swap_guard_settlement
3 tool updates
- Changed
get_pancakeswap_v3_market2 fields changed- changed
Input schema / properties / profileId / descriptionPrevious value: -"Reviewed PancakeSwap V3 pool id; defaults to Base USDC/USDT 0.01%"New value: +"Reviewed PancakeSwap V3 pool id (Base or BNB Smart Chain); defaults to Base USDC/USDT 0.01%" - changed
Input schema / properties / profileId / enumPrevious value: -[ - "base-pancakeswap-v3-usdc-usdt-100" -]New value: +[ + "base-pancakeswap-v3-usdc-usdt-100", + "bnb-pancakeswap-v3-usdt-usdc-100" +]
- Changed
prepare_base_agent_swap_guard1 field changed- changed
Input schema / properties / profileId / enumPrevious value: -[ - "base-aerodrome-slipstream-weth-usdc-cl100", - "base-aerodrome-slipstream-usdc-usdt-cl1", - "base-pancakeswap-v3-usdc-usdt-100" -]New value: +[ + "base-aerodrome-slipstream-weth-usdc-cl100", + "base-aerodrome-slipstream-usdc-usdt-cl1", + "base-pancakeswap-v3-usdc-usdt-100", + "bnb-pancakeswap-v3-usdt-usdc-100" +]
- Changed
prepare_pancakeswap_v3_swap3 fields changed- changed
Input schema / properties / direction / descriptionPrevious value: -"Quote direction inside the reviewed pool: token0→token1 (USDC→USDT) or the reverse (USDT→USDC). Defaults to token0→token1."New value: +"Quote direction inside the reviewed pool, stated in its token0/token1 order (e.g. Base USDC/USDT: USDC→USDT; BNB USDT/USDC: USDT→USDC) or the reverse. Defaults to token0→token1." - changed
Input schema / properties / profileId / descriptionPrevious value: -"Reviewed PancakeSwap V3 pool id; defaults to Base USDC/USDT 0.01%"New value: +"Reviewed PancakeSwap V3 pool id (Base or BNB Smart Chain); defaults to Base USDC/USDT 0.01%" - changed
Input schema / properties / profileId / enumPrevious value: -[ - "base-pancakeswap-v3-usdc-usdt-100" -]New value: +[ + "base-pancakeswap-v3-usdc-usdt-100", + "bnb-pancakeswap-v3-usdt-usdc-100" +]
2 tool updates
- Added
hyperliquid_perp_guard - Added
hyperliquid_perp_guard_exact_call
2 tool updates
- Added
settle_base_agent_swap_guard - Added
verify_base_agent_swap_guard_settlement
7 tool updates
- Added
base_perp_guard - Added
base_perp_guard_exact_call - Changed
execution_preflight3 fields changed- changed
Input schema / properties / decisionInput / properties / reviewedAerodromeSlipstream / descriptionPrevious value: -"Optional strict reviewed-pool lane. Only WETH/USDC on Base through the reviewed Aerodrome Slipstream CL100 pool is admitted; unsupported routes fail closed."New value: +"Optional strict reviewed-pool lane. Admits Base WETH↔USDC through the Aerodrome Slipstream CL100 pool and Base USDC↔USDT through the CL1 stable pool, both directions; unsupported routes fail closed." - changed
Input schema / properties / decisionInput / properties / reviewedAerodromeSlipstream / properties / amountIn / descriptionPrevious value: -"Exact WETH amount for the reviewed Base Aerodrome Slipstream WETH/USDC CL100 quote"New value: +"Exact input amount for the reviewed Base Aerodrome Slipstream quote (WETH/USDC CL100 or USDC/USDT CL1, both directions)" - changed
Input schema / properties / decisionInput / properties / reviewedUniswapV3 / descriptionPrevious 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."New value: +"Optional strict reviewed-pool lane. Admits Monad MON/WMON→USDC and Base ETH/WETH→USDC through Uniswap V3, Base USDC↔USDT through PancakeSwap V3, and Base USDC↔USDT through the reviewed Uniswap V3 0.05% pool; other routes fail closed."
- Changed
get_aerodrome_slipstream_market1 field changed- changed
Input schema / properties / profileId / enumPrevious value: -[ - "base-aerodrome-slipstream-weth-usdc-cl100" -]New value: +[ + "base-aerodrome-slipstream-weth-usdc-cl100", + "base-aerodrome-slipstream-usdc-usdt-cl1" +]
- Changed
prepare_aerodrome_slipstream_swap5 fields changed- changed
Input schema / properties / amountIn / descriptionPrevious value: -"Exact WETH input amount; the tool never handles native ETH"New value: +"Exact input amount of the direction input token; the tool never handles native ETH" - added
Input schema / properties / directionAdded value: +{ + "description": "Quote direction inside the reviewed pool: token0→token1 (e.g. WETH→USDC, USDC→USDT) or the reverse (USDC→WETH, USDT→USDC). Defaults to token0→token1.", + "enum": [ + "token0-to-token1", + "token1-to-token0" + ], + "type": "string" +} - changed
Input schema / properties / profileId / enumPrevious value: -[ - "base-aerodrome-slipstream-weth-usdc-cl100" -]New value: +[ + "base-aerodrome-slipstream-weth-usdc-cl100", + "base-aerodrome-slipstream-usdc-usdt-cl1" +] - changed
Input schema / properties / recipient / descriptionPrevious value: -"USDC recipient encoded into the unsigned router transaction"New value: +"Output-token recipient encoded into the unsigned router transaction" - changed
Input schema / requiredPrevious value: -[ - "amountIn", - "recipient", - "deadlineUnixSeconds", - "maxSlippageBps" -]New value: +[ + "direction", + "amountIn", + "recipient", + "deadlineUnixSeconds", + "maxSlippageBps" +]
- Changed
prepare_base_agent_swap_guard3 fields changed- added
Input schema / properties / directionAdded value: +{ + "default": "token0-to-token1", + "enum": [ + "token0-to-token1", + "token1-to-token0" + ], + "type": "string" +} - changed
Input schema / properties / profileId / enumPrevious value: -[ - "base-aerodrome-slipstream-weth-usdc-cl100", - "base-pancakeswap-v3-usdc-usdt-100" -]New value: +[ + "base-aerodrome-slipstream-weth-usdc-cl100", + "base-aerodrome-slipstream-usdc-usdt-cl1", + "base-pancakeswap-v3-usdc-usdt-100" +] - changed
Input schema / requiredPrevious value: -[ - "profileId", - "amountIn", - "recipient", - "deadlineUnixSeconds", - "sourceDecisionPriceUsd", - "destinationDecisionPriceUsd", - "policy" -]New value: +[ + "profileId", + "direction", + "amountIn", + "recipient", + "deadlineUnixSeconds", + "sourceDecisionPriceUsd", + "destinationDecisionPriceUsd", + "policy" +]
- Changed
prepare_pancakeswap_v3_swap4 fields changed- changed
Input schema / properties / amountIn / descriptionPrevious value: -"Exact USDC input amount; the tool never handles native ETH or reverse direction"New value: +"Exact input amount of the direction input token; the tool never handles native ETH" - added
Input schema / properties / directionAdded value: +{ + "description": "Quote direction inside the reviewed pool: token0→token1 (USDC→USDT) or the reverse (USDT→USDC). Defaults to token0→token1.", + "enum": [ + "token0-to-token1", + "token1-to-token0" + ], + "type": "string" +} - changed
Input schema / properties / recipient / descriptionPrevious value: -"USDT recipient"New value: +"Output-token recipient" - changed
Input schema / requiredPrevious value: -[ - "amountIn", - "recipient", - "deadlineUnixSeconds", - "maxSlippageBps" -]New value: +[ + "direction", + "amountIn", + "recipient", + "deadlineUnixSeconds", + "maxSlippageBps" +]
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceRemote MCP server that lets AI assistants read tracked competitive intelligence — competitor news, reviews, website changes, social posts and ads — and act on it by managing projects, competitors, battle cards, reports and canvases. Every answer carries a source and a date, and write actions only publish when explicitly shared.MIT
- AlicenseCqualityCmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs112 npm29 PyPIMIT
- AlicenseAqualityDmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.1623 npm1MIT

industrylens-mcpofficial
AlicenseNot gradedqualityCmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.