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
- 31.7% over 82 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 16 tools
Most tools map to distinct lifecycle stages: registry lookup, quote/market read, safety gate, unsigned preparation, execution receipt, and verification. The main residual overlap is among oracle reads (get_oracle_price, oracle_watch, get_price_analytics, get_oracle_health), which are distinguishable but require close reading.
Names are predominantly consistent snake_case verb_noun patterns such as get_, check_, prepare_, issue_, search_, and verify_. Minor deviations like oracle_watch and the *_begin/*_control bundle patterns are predictable but keep it from perfect consistency.
At 16 tools, the set is slightly above the ideal compact range but justified by the multi-stage oracle, safety, execution, and verification workflow. The watch and lifecycle bundle tools add surface area, but each appears to earn a distinct role.
The surface covers oracle discovery, pricing/analytics/health, pre-trade safety, unsigned transaction preparation, execution receipts, verification, and monitoring bundles. Minor gaps remain around direct submission/cancellation or broader portfolio/account state, but these seem intentionally out of scope.
Available Tools
16 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.
| Name | Required | Description | Default |
|---|---|---|---|
| asset | Yes | Source asset sold | |
| action | Yes | ||
| chain_id | Yes | Execution chain id | |
| 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 disclose meaningful behavior: it produces signed attestations, issues verdicts, and constrains tolerance to a fixed 50 bps band. It does not disclose authorization requirements, whether the handle is single-use or idempotent, whether state persists on the server, or failure modes, which matter for a signing/certification 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?
Three sentences, front-loaded with the core action, then usage constraints, then return payload. The return-value enumeration is dense but every item is load-bearing given there is no output schema, and no sentence is 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?
Given 10 params, a nested object, no annotations, and no output schema, the description compensates well by enumerating the returned identifiers, hashes, asset ids, rate, band, verdicts, and attestations. The remaining gap is operational: no explanation of the action enum semantics, the optional provider/protocol inputs, or how verdicts should be interpreted.
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?
It adds real meaning for a few inputs: asset fields are returned as CAIP-19 ids and max_slippage_bps is described as a pre-committed tolerance fixed at 50, beyond the schema's const. But at 50% schema coverage with 10 params, it leaves the action enum, amount_usd, providers, protocol_id, source_group_count, and the nested decision_input quote shape essentially undocumented.
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 action and resource: certify a swap/DeFi intent and open a verifiable pre-trade evidence handle. It also states what the tool is NOT ("not trade authorization") and positions it temporally before execution, which separates it from prepare_swap and issue_execution_receipt in the sibling set.
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 trigger conditions ("when a principal needs a signed pre-trade handle to bind an execution receipt later") and explicit exclusions ("do not use it as trade authorization and do not call it after the trade"). It stops short of naming a concrete alternative sibling such as check_trade_safety for safety checks or issue_execution_receipt for the post-trade step, leaving that mapping implicit.
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 issue_execution_receipt) and do not treat its ALLOW as principal authorization. Returns a verdict (ALLOW/CAUTION/DANGER/BLOCK), reason codes, oracle evidence and a signed attestation or decision when the family supports one.
| 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?
No annotations are provided, so the description carries the full burden. It discloses the return payload (verdict with ALLOW/CAUTION/DANGER/BLOCK, reason codes, oracle evidence, signed attestation) and the important caveat that ALLOW is not principal authorization. It does not state whether the call is read-only, whether it records evidence, or what its cost or rate limits are.
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 text is front-loaded with purpose, then timing, exclusions, and the return shape. Four dense sentences all earn their place, though the laundry list of venues and chains in sentence one is slightly heavy.
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, 32-parameter, polymorphic tool with nested objects and no output schema, and the description does cover the return values and the pre-trade gate's role. However, because it does not map the `action` values to the required parameter subsets (position, order, borrows, collaterals, market/side), an agent must infer this from the schema alone.
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 56%, so half the parameters rely on the description. The description adds real meaning only for `guard` (a family-native exact-call payload) and `mode`, and it does not explain which parameters each `action` enum value requires. That mapping is the main thing an agent needs, yet it is missing, so the baseline 3 applies.
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: a pre-trade oracle safety gate. It names the covered action families (swaps, lending, perps, vault deposits, stress tests) and the chains (Base, Monad, EVM, Solana, Hyperliquid), which is enough for an agent to tell it apart from sibling tools such as get_oracle_price or prepare_swap.
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 timing ('immediately before an agent trades or signs'), an explicit exclusion ('do not use it after execution'), names the alternative to use instead (issue_execution_receipt), and warns that its ALLOW result is not principal authorization.
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.
| 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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full disclosure burden. It states the tool is a read ('Read one reviewed venue market'), scopes it to 'reviewed venues', and describes what is returned, but says nothing about quote staleness, caching, auth or permission prerequisites, or failure behavior for unsupported venue/market combinations — meaningful gaps for a pre-trade data source.
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 front-loaded sentences with the core action first, followed by usage and boundaries, then return values. It is slightly dense and repeats 'reviewed' four times, but no sentence is 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 4-parameter read tool with full schema coverage and no output schema, the description supplies the trigger, the scope limits, and a summary of what comes back. Only the relationship among the overlapping venue/market/profile parameters and the freshness of the quote context remain unaddressed.
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 100%, so venue, market, venues, and profile_id are already documented, and the enums constrain values. The description adds only contextual framing ('reviewed profile ids', 'market id') and does not clarify how the plural 'venues' array relates to the singular 'venue' parameter or when profile_id is required — the one genuinely ambiguous interaction a caller would want explained.
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 — 'Read one reviewed venue market' — and enumerates the payload (pool/market metadata, pinned quote context, venue constraints) plus the supported chains, which distinguishes it from price-only siblings like get_oracle_price. The only softness is the tension between the tool name 'get_market_quote' and the description's emphasis on returning a market record rather than a standalone quote.
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 both a positive trigger ('Use it before preparing or gating a trade when the agent needs the reviewed profile or market id') and a negative boundary ('Do not use it as execution authorization or for prices outside the reviewed venues'). It does not explicitly name the sibling to use instead for execution or for non-reviewed prices, so routing is implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_oracle_healthAInspect
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.
| 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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the behavioral burden. 'Read' and 'Returns the matching health rows, verdicts, counts and timestamps' establish read-only semantics and a rough return shape, which is valuable given there is no output schema. However, for a 15-parameter tool it says nothing about permissions, data freshness/caching, result ordering, or how limit/offset interact, which an agent needs to call it confidently.
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, then usage, then return shape — a sound ordering with no filler. The middle sentence is a long enumeration of question types, which is dense but each item maps to a real metric in the schema, so it earns its place; minor trim possible.
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 15-parameter, annotation-free tool with no output schema, the description covers purpose, alternatives, scope selection and return contents, which is most of what is needed. Remaining gaps are pagination guidance (limit/offset behavior) and the ambiguous 'period' semantics, which the description could have resolved.
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 93%, so the schema already documents nearly every parameter and the baseline of 3 applies. The description adds scope-selection framing ('the selected scope') and the notion of matching 'rows, verdicts, counts and timestamps', but does not resolve genuine ambiguities the schema leaves — notably the 'period' unit ('hours or days') and how 'metric' defaults interact with 'scope'.
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 and resource ('Read oracle ecosystem, feed, provider, protocol or asset health') and enumerates the distinct surfaces covered, which maps directly onto the scope enum. It also explicitly names the two siblings it is not (get_oracle_price, check_trade_safety), so an agent can separate it from adjacent tools 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 invocation context concretely — freshness, uptime, latency, anomaly, coverage, peg, exposure, incident and daily-report questions, and the framing 'before trusting a price or a protocol'. It then gives explicit exclusions with named alternatives for each ('Do not use it for a price quote (get_oracle_price) or for a trade gate (check_trade_safety)'), leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_oracle_priceAInspect
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.
| 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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well: it discloses the cache dimension ("fresh or cached"), that results expose cache status and a source timestamp, and enumerates the returned fields including confidence/decimals. It stops short of describing error behavior, rate limits, or what happens when an asset is unsupported by a provider, which keeps it from 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?
Three sentences, front-loaded with the core action, then usage boundaries, then return shape. Every sentence earns its place with no restating of the tool name or 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 4-param read tool with no annotations and no output schema, the description supplies purpose, exclusions, an alternative, and an explicit list of returned fields. The remaining gap is failure-mode coverage (unknown provider, unsupported asset/chain combination), which is a minor omission for a read-only lookup.
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 100%, so all four parameters including force_refresh and chain are already documented in the schema. The description reinforces the single-provider semantics of "provider" and the cache concept behind force_refresh, but adds no syntax, format, or edge-case detail beyond the structured fields; baseline 3 applies.
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 precise verb and scoped resource: "Read the current price one oracle provider reports for one asset." It immediately narrows the scope to a single provider, which distinguishes it from the cross-provider sibling get_price_analytics named later.
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 an explicit positive case ("a single fresh or cached provider read ... when a route quote needs a reference price") and explicit exclusions (cross-provider consensus, historical series, deviation/risk analytics) with the correct alternative tool named. Nothing 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_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.
| 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 filter | |
| 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 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?
No annotations are provided, so the description carries the full behavioral burden. It discloses the intended analytical nature and return contents, but does not state permissions, rate limits, latency, data freshness, force_refresh behavior, failure modes, or an explicit read-only guarantee. For a 13-parameter analytics tool, those omissions are a meaningful but not fatal gap.
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 description is three sentences with no wasted phrasing. Purpose, usage/exclusion, and return information are front-loaded in a logical order, and the dense enumeration in the first sentence is justified by the tool's broad analytical surface.
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 selection criteria, sibling alternatives, and the return shape, which is important because no output schema exists. Given the high schema coverage, it is largely complete for a complex 13-parameter tool, though it leaves out operational constraints and some parameter interaction details.
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 92%, so the schema already documents most parameters and sets the baseline at 3. The description adds conceptual grouping around consensus, history, spreads, deviation, correlation, and risk, but it does not clarify key interactions such as metric overriding mode, first-asset behavior for some modes, provider requirements for risk, or force_refresh semantics beyond what the schema already provides.
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 verb and resource: 'Run multi-oracle price analytics,' then enumerates consensus, batch reads, historical series, cross-chain spreads, deviation, correlation, and risk summary. It also explicitly distinguishes the tool from get_oracle_price and get_oracle_health, so an agent can identify its scope 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?
It gives explicit when-to-use guidance: 'when one price is not enough' and the caller needs to 'compare, stress or trend oracle data.' It also gives explicit when-not-to-use guidance by naming get_oracle_price for single-provider spot reads and get_oracle_health for feed uptime.
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.
| 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 does substantial work: it discloses the return shape (signed receipt, FAITHFUL/DEVIATED/NOT_EXECUTED/UNDETERMINED verdicts, price delta, binding ids, verify URL) and warns the verdict is not authorization to act. It does not state auth requirements, idempotency/replay behavior, or whether a receipt is persisted on failure — gaps for a signing 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?
Front-loaded with the core action, then conditions, then return values — a sensible ordering in three sentences. The 'Use it only after the trade settled. Do not use it before execution' pair is mildly redundant, and the parenthetical '(or settlement status)' is a hedge that could be stated more crisply.
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?
Five parameters with nested objects, one enum, no output schema — the description compensates well by enumerating the returned fields and verdict values. It is still thin on the provenance of the 'pre-trade handle' and the 'signed guard decision', which an agent needs in order to assemble valid inputs across a multi-step flow.
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 60% and the schema already documents receipt/decision as mode-conditional and signature as a Solana signature. The description adds the mapping of modes to their inputs (pre-trade handle plus settlement transaction vs. guarded swap), but contributes no format, shape, or constraint detail for the nested receipt/decision objects beyond what the schema states.
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+resource pair — 'issue a signed execution-price receipt' — and names both operating modes (receipt from a pre-trade handle + settlement tx, or settle a guarded Base/Solana swap). An agent can tell this is a post-execution close-out tool distinct from prepare_swap or check_trade_safety 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?
It gives an explicit gate — 'Use it only after the trade settled. Do not use it before execution' — plus a negative constraint that the verdict is not principal authorization. What's missing is naming the upstream sibling (e.g. prepare_swap / begin_trade_evidence) that produces the pre-trade handle, so the agent must infer which tool precedes it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
oracle_watchAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| op | No | snapshot | |
| days | No | ||
| chain | No | ||
| symbol | Yes | Asset symbol to watch | |
| interval | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the burden itself. It labels the operation as a read, discloses the response payload ("current trust signal ... with provider participation and freshness"), and clarifies the snapshot-versus-history behavior, but it says nothing about rate limits, cost, or authentication for a data-fetching tool that sells adjacent windows.
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: capability first, usage scope second, exclusion and alternative third. No restatement of the name, no filler, and the most decision-relevant information is front-loaded.
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, so the description must describe returns, and it does name the trust signal plus provider participation and freshness. The remaining gap is the three undocumented optional parameters, which matters because `days` and `interval` drive what the history mode actually returns.
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%, with just `symbol` documented, so the description needs to compensate. It does explain the `op` distinction between snapshot and history and hints at the history series, but `days`, `interval`, and `chain` are left entirely unexplained, and `chain` is 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?
The description opens with a specific verb and resource: "Read one oracle-trust snapshot or historical series for an asset." It also explicitly separates the tool from its closest sibling, oracle_watch_window_begin, so an agent can choose between them without inspecting 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 states both the positive case ("a one-off check of whether a symbol is currently trustworthy or how its recent history looks") and the exclusion ("Do not use it for continuous monitoring"), then names the alternative tool to use instead. That is the full 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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | ||
| 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 call is a purchase that charges credits, that the control token is one-time and must never be shared, that re-purchasing the same window is discouraged, and what the response contains. It does not state funding/payment prerequisites, whether a failed or duplicate purchase is refunded, or what happens if the token is lost, which is the main remaining gap for a paid mutation.
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 the return, then the usage condition, the prohibitions, and the response shape. Every sentence carries distinct information with no restatement of the name.
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 paid mutation with no annotations and no output schema, the description covers purpose, cost, return fields, and token hygiene. The omissions are the undocumented 'chain' parameter and the lack of any statement about payment source or failure/refund 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?
Only 'symbol' is documented in the schema (50% coverage), and the description adds no parameter-level meaning at all beyond the phrase 'for one asset'. The 'chain' parameter is undocumented in both the schema and the description, so an agent gets no guidance on whether chain is required, defaults, or which values are accepted.
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: 'Buy a 24h Oracle Watch window for one asset and return the one-time control token.' It immediately distinguishes the tool from the per-snapshot sibling by contrasting 'poll throughout a window' with 'paying per snapshot', so an agent can differentiate it from oracle_watch and oracle_watch_window_control 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 when-to-use condition ('an agent will poll throughout a window instead of paying per snapshot') and an explicit when-not ('Do not use it repeatedly for the same window'). The alternative is described functionally rather than named, so the agent must infer that oracle_watch is the pay-per-snapshot path and that oracle_watch_window_control is the follow-up for an existing window.
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).
| 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 burden and does well: it discloses the credit model (poll is zero extra credits after purchase), the one-time token constraint, and that close destroys the window's usability for future polls. It does not cover failure behavior (e.g. polling a token after close, expired tokens) or latency, which keeps it below 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 short sentences, front-loaded with the verb+resource and followed by cost, precondition, and exclusions. Slightly redundant: the return values are stated twice ("Poll returns a fresh signal... close returns the complete window summary and the final signal" then "Returns the signal (poll) or the combined summary (close)").
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, so the description must describe returns, and it does for both operations. With no annotations it also supplies the safety/lifecycle context (one-time token, no reuse, zero-credit polling). Only error and expiry behavior is left unstated for what is a token-gated two-mode tool.
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 itself explains only op and window_token. The description adds real meaning beyond that: the token is one-time, poll costs no extra credits while close finalizes the window, and window_id is implicitly the purchased window identifier. The op enum semantics are largely restated rather than extended.
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 pair of verbs (poll/close) against a named resource (an already purchased Oracle Watch window) plus the credential used (one-time oww_ token). It is clearly distinguishable from oracle_watch_window_begin (purchase) and oracle_watch (one-off snapshot).
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 names the required precondition ("only with a window token from oracle_watch_window_begin"), names the sibling to avoid and why ("Do not use it for a one-off snapshot (oracle_watch)"), and adds a lifecycle rule ("never reuse a token after close"). When, when-not, and alternatives are all covered.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | ||
| 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 disclosure burden and does well: it reveals the prepaid 24h window, one-time token semantics, that credits are charged, and a don't-share security rule. It stops short of stating what happens to unused credits or whether the bundle expires mid-flow.
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 followed by usage boundary, exclusion, security rule, and return fields — nothing 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 token-issuing mutation tool with no annotations and no output schema, it covers cost, lifetime, returns, and safety. The remaining gap is the unexplained chain parameter and failure/expiry edge 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 coverage is only 50%, and the description clarifies that symbol is the 'position subject' but says nothing about the chain parameter or accepted symbol formats. It adds partial meaning over the schema rather than fully compensating for the undocumented chain field.
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 ('Buy a 24h Position Lifecycle bundle for one position subject') plus the one-time return value, which lets an agent separate it from position_lifecycle_step and check_trade_safety 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 names the when ('agent needs guard, execution-receipt and close steps inside one prepaid window') and the when-not with the alternative to use instead ('single guard -> check_trade_safety'), plus a security constraint on the token.
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.
| 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, the description carries the full burden and does disclose meaningful behavior: guard and receipt are free inside the bundle (credit implications), the lifecycle_token is one-time, and it must not be reused after close (a mutation side effect). It does not state whether close itself costs credits, whether close invalidates lifecycle_id, or what errors occur on token misuse — notable gaps for a stateful mutation 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?
Front-loaded with the core action and op enumeration, then cost, then return, then constraints — a sensible order. The sentences are dense and multi-clause, but nearly every clause carries information; there is little 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?
No output schema and no annotations, so the description must cover everything, and it does state what is returned ('guard verdict, signed receipt, or the combined lifecycle summary'). Still missing are which parameters apply to which op (e.g. family for guard, receipt for receipt), the purpose of `transaction`, and lifecycle state behavior after close — substantial gaps for a 7-parameter, nested-object tool.
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 partially: it defines the three op values and the one-time nature of lifecycle_token, and implies lifecycle_id identifies the bundle. However, `family` (enum of six families, presumably required for guard), `params`, `receipt`, and especially `transaction` (which has no schema description at all) are never explained in the description, so several parameters remain opaque.
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 ('Run one step inside a purchased Position Lifecycle bundle') and enumerates the three operations with one-line meanings: guard as a family-specific safety assessment, receipt as a signed execution receipt, close as a combined summary. It is clearly distinct from position_lifecycle_begin, but it does not distinguish guard from the sibling check_trade_safety, leaving one obvious overlap unresolved.
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 preconditions and exclusions are given: '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'. What is missing is routing guidance for an agent that wants a safety assessment without a purchased bundle, i.e. no statement to use check_trade_safety instead.
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 Hyperliquid BTC/ETH/HYPE perpetual IOC order envelope for local wallet signing. Use it when an agent has decided on market, side, size and limit price and needs reviewed lot/tick, impact and mark-oracle checks. Do not use it to create a nonce, sign, or submit an order. Returns the short-expiry unsigned exchange envelope and the validated bounds when every gate passes.
| Name | Required | Description | Default |
|---|---|---|---|
| side | Yes | ||
| size | Yes | Exact base size decimal string | |
| venue | Yes | Only reviewed perp venue | |
| market | Yes | ||
| builder_fee | No | ||
| limit_price | Yes | Exact IOC limit price decimal string | |
| reduce_only | Yes | ||
| client_order_id | Yes | ||
| max_notional_usd | Yes | ||
| require_full_fill | No | ||
| max_price_impact_bps | Yes | ||
| expires_after_seconds | No | ||
| max_mark_oracle_deviation_bps | Yes |
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 that the output is unsigned and short-expiry, that no sign/submit side effects occur, and that bounded validation gates (lot/tick, impact, mark-oracle) must all pass. It stops short of describing what happens when a gate fails (error shape) or any permission/auth requirements, so it is strong but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose and immediately followed by the usage boundary and the return contract. The long middle sentence is dense but each clause (preconditions, three named gate types) earns its place; no redundant restatement of the tool name.
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 tool is complex (13 params, 10 required, nested builder_fee object, no annotations, no output schema), and the description covers the return payload in one line. However, it omits gate-failure behavior, defaults for optional params like expires_after_seconds and require_full_fill, and any explanation of the notional/impact cap semantics that an agent must set correctly.
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 23% across 13 parameters, so the description must compensate and largely does not. It names market, side, size, and limit price and gestures at impact and mark-oracle thresholds, but leaves max_notional_usd, reduce_only, require_full_fill, client_order_id, expires_after_seconds, and builder_fee with no added meaning, defaults, or interaction rules.
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 gives a specific verb plus a precisely scoped resource: an 'unsigned Hyperliquid BTC/ETH/HYPE perpetual IOC order envelope for local wallet signing'. Venue, instrument set, order type, and the non-signing boundary are all stated, which cleanly separates it from siblings like prepare_swap and issue_execution_receipt.
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 the exact precondition for use ('when an agent has decided on market, side, size and limit price and needs reviewed lot/tick, impact and mark-oracle checks') and explicitly excludes three adjacent actions: nonce creation, signing, and submission. Nothing about when to call or when not to call 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.
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.
| 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 | ||
| profile_id | No | ||
| loan_symbol | No | ||
| 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 zero annotations, the description carries the burden and does disclose key behavior: it produces unsigned calldata only, never signs or submits, requires a reviewed pool and policy, and returns to/value/calldata plus quote and an optional signed decision. It does not cover operational traits an agent would want — whether repeated calls are idempotent, whether a safety gate must be called first in a specific order, or authorization/wallet-binding requirements.
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, each doing distinct work: capability and venue scope first, then the use condition, then the exclusions, then the return contract. No restatement of the title and no filler; the return-value sentence is necessary because no output schema exists.
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?
Given 18 parameters, four heterogeneous venues, nested policy object, no annotations and no output schema, the description covers the purpose and return contract well but is incomplete on the two things that most affect correct invocation: which parameters each venue requires and how this tool sequences with the safety-gate and evidence siblings.
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 11% on 18 parameters, so the description must compensate and largely does not: it adds no per-parameter meaning beyond the venue names and a vague reference to a 'reviewed pool and policy'. Critically, it never explains that parameters are venue-dependent (vault/loan_symbol/principal_amount/collateral_* for Loopscale, direction/min_lp_amount for the V3-style venues, max_slippage_bps/deadline_unix_seconds generally), leaving the agent to guess which of the 18 fields apply to its chosen venue.
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 (prepare) and a specific artifact (unsigned, reviewed swap calldata), then enumerates the four supported venues by name (Aerodrome Slipstream, PancakeSwap V3, agent swap guard, Loopscale vault). An agent can distinguish this from quote, safety-check, and receipt siblings immediately; output is described as a calldata envelope for local signing.
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 ('user wants an executable transaction bound to a reviewed pool and policy') and explicit when-not ('do not use it to sign, submit or route arbitrary calldata', 'do not skip the matching safety gate'), which implicitly routes to the safety-gate sibling. What is missing is naming the concrete alternatives for the adjacent cases (get_market_quote for pricing only, check_trade_safety for gating, issue_execution_receipt for recording), so the agent must infer those routes.
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.
| 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 carries the full behavioral burden. It does disclose the return shape ("matching registry rows or one lookup record, with ids and reviewed metadata"), which is genuinely useful, but it never states that the call is read-only and side-effect free, nor how limit/offset pagination behaves or what happens when a lookup finds nothing.
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 short sentences, each doing distinct work: scope, intended use, exclusion, and return shape. The most decision-relevant content (what it searches and the id-discovery purpose) is front-loaded with no filler or restated title.
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 eight-parameter, one-required discovery tool with no output schema, the description covers scope, purpose, exclusions, and the rough return shape well enough to call it correctly. The remaining gap is that applicability of filters by kind (chain_id only for feeds, verify_onchain only for RWA lookups) is left entirely to the schema.
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 schema already documents all eight parameters and the enum values for kind and category, making 3 the baseline. The description adds only that results may be "one lookup record" versus multiple rows, and it does not explain that filters such as chain_id, category, and is_active are kind-conditional.
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 it covers, enumerating them (symbols, feeds, protocols, stablecoins, protocol risk parameters, RWA instruments/context, settlement-evidence packs, setup recommendations). It also names what it is not ("Do not use it to read live prices or health"), which separates it cleanly from get_oracle_price, get_oracle_health, and the prepare/verify siblings.
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 use case — discover the exact ids that a price, safety or execution tool expects — which routes the agent here as a first step before calling check_trade_safety or get_oracle_price. It also gives an explicit exclusion ("Do not use it to read live prices or health"), so both the when and the when-not are 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.
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.
| 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?
With no annotations, the description carries the full burden, and it does disclose that this is a non-authorizing, non-risk-assessment check and describes the response payload (valid/invalid, closed-loop or settlement status, binding assertions, machine-readable reasons). It leaves unstated whether verification has any side effects (e.g. recording a verification), any auth/permission requirements, or limits on evidence size — relevant for a tool ingesting large nested objects.
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 scope first, then the use case, then the exclusions and return shape. No filler and nothing redundant with the title or schema.
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 summarizes the return payload, and it clearly fences off the sibling risk/trading tools, which covers a lot of ground. However, for a nine-parameter, four-variant, nested-object tool with no annotations and zero schema descriptions, the definition never explains the per-kind parameter contract, leaving a real gap an agent must guess around.
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 nine parameters, including five free-form nested objects (settlement, expected_order, execution_receipt, pre_trade_attestation, destination_pre_trade_attestation), so the description must compensate and largely does not. It never says which parameters belong to which `kind` — e.g. that execution_pair needs expected_order + execution_receipt + pre_trade_attestation while hyperliquid_perp needs user + order_id — nor what shape the attestation objects must take. Only a loose mapping is inferable from the enumerated artifact names.
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 (verify) and resource (signed evidence) and then enumerates exactly the four artifact classes that match the `kind` enum: pre-trade/execution pair, Base agent-swap settlement, Solana swap settlement, Hyperliquid order/fill record. This lets an agent distinguish it from siblings like issue_execution_receipt (produces evidence) or check_trade_safety (assesses risk) 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 trigger ('when a third party needs to check binding and signatures before trusting a claim') and two explicit exclusions ('do not use it to re-assess oracle risk or to authorize trading'), which implicitly routes to the oracle_* and begin_trade_evidence/check_trade_safety families. It stops short of naming the alternative tools, so the agent must infer the routing from function descriptions.
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.
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" +]
1 tool update
- Added
prepare_base_agent_swap_guard
2 tool updates
- Changed
prepare_hyperliquid_perp_order1 field changed- added
Input schema / properties / builderFeeAdded value: +{ + "additionalProperties": false, + "properties": { + "builder": { + "pattern": "^0x[0-9a-fA-F]{40}$", + "type": "string" + }, + "feeTenthsOfBasisPoint": { + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "maximumFeeTenthsOfBasisPoint": { + "maximum": 100, + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "builder", + "feeTenthsOfBasisPoint" + ], + "type": "object" +}
- Changed
verify_hyperliquid_perp_execution1 field changed- added
Input schema / properties / expectedOrder / properties / builderFeeAdded value: +{ + "additionalProperties": false, + "properties": { + "builder": { + "pattern": "^0x[0-9a-fA-F]{40}$", + "type": "string" + }, + "feeTenthsOfBasisPoint": { + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "maximumFeeTenthsOfBasisPoint": { + "maximum": 100, + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "builder", + "feeTenthsOfBasisPoint" + ], + "type": "object" +}
2 tool updates
- Added
get_hanji_monad_market - Added
get_quickswap_v2_market
4 tool updates
- Added
loopscale_vault_deposit - Added
multichain_evm_lending_guard - Added
multichain_evm_lending_guard_exact_call - Changed
solana_lending_guard2 fields changed- added
Input schema / properties / guard / properties / assetMintAdded value: +{ + "type": "string" +} - changed
Input schema / properties / guard / properties / protocolId / enumPrevious value: -[ - "kamino-lend", - "marginfi-v2" -]New value: +[ + "kamino-lend", + "marginfi-v2", + "jupiter-lend-earn", + "save-lend", + "loopscale-vault" +]
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 gradedqualityBmaintenanceBrowse 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.