Skip to main content
Glama

Server Details

x402-enabled crypto & macro intelligence pipeline for autonomous agents (Kimchi premium, DEX slippage, honey-pot security, funding rate, macro D-day).

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
91.4% over 22 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.3/5.0

Scored across 14 tools

Disambiguation4/5

Most tools occupy distinct resource/strategy niches and descriptions cross-reference alternatives, but there are close pairs: security.token_diagnostic wraps security.token_risk + security.contract_health_audit, and derivatives.funding_apr_matrix builds on derivatives.funding_rate, so an agent could reasonably select the wrong one without reading carefully.

Naming Consistency5/5

All 14 tools follow the same `domain.object/aspect` lowercase snake_case convention (arb.*, security.*, prediction.*, etc.), making the resource and purpose predictable. No camelCase or verb-style mixing exists.

Tool Count5/5

14 tools is well inside the ideal 3-15 range and the set spans roughly one to three tools per strategy/due-diligence category, so no category feels bloated. Each tool appears to serve a distinct workflow rather than duplicate functionality.

Completeness3/5

The pre-trade research surface (arbitrage spreads, funding, security, unlocks, Polymarket liquidity) is reasonably covered, but there is no general market-price/list/search tool and no discovery layer for tokens or prediction events. Execution/order management is absent and several categories are one-tool deep, so agents have workarounds but can hit dead ends.

Available Tools

14 tools
arb.spread_matrixA
Read-only
Inspect

Use this tool before executing a cross-venue arbitrage trade to check whether a global reference price (Coinbase spot, CoinGecko fallback - not a specific exchange orderbook) and a DEX pool price diverge enough to be worth trading after an assumed flat gas cost. Returns gross/net spread percentages and an is_profitable boolean - note net_spread_pct does NOT subtract the DEX pool's own swap fee (see pool_fee_pct), CEX trading fees, or slippage, so a spread that clears the threshold before those costs may not clear it after. Do not use for DEX-only liquidity depth checks or contract security. Paid in USDC on Base.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesTicker symbol, e.g. SUI, BTC, ETH.
networkNoGeckoTerminal network id, e.g. base, eth. Defaults to base.
pool_addressNoSpecific DEX pool contract address (optional if token_address is given).
token_addressNoToken contract address - the most liquid pool is auto-selected (optional if pool_address is given).
trade_size_usdNoHypothetical trade size in USD. Defaults to 1000.
min_spread_threshold_pctNoNet spread threshold (%) above which is_profitable is true. Defaults to 0.8.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noticeNo
symbolYes
networkYes
directionNo
data_sourceYes
generated_atYes
pool_addressNo
pool_fee_pctNoDEX pool's fee tier (e.g. 0.05 for 0.05%), parsed from the pool name. Informational only - net_spread_pct does not subtract it.
cex_price_usdNo
dex_price_usdNo
is_profitableYes
net_spread_pctNo
status_messageYes
trade_size_usdYes
gross_spread_pctNo
assumed_gas_cost_usdYes
min_spread_threshold_pctYes

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already mark this read-only, and the description adds substantial behavioral context: reference price source, assumed flat gas cost, and a clear warning that net_spread_pct excludes DEX swap fees, CEX fees, and slippage. It also discloses payment in USDC on Base, which is beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences carry the use case, key outputs, critical caveat, exclusions, and payment details. The critical profitability caveat is placed prominently, and every sentence earns its place.

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

Completeness5/5

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

The description is complete for a read-only screening tool: it covers inputs, outputs, cost assumptions, fee exclusions, and payment, while the output schema removes the need to describe return values in prose.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline of 3 applies. The description clarifies the overall model but does not add new meaning to individual parameters beyond the schema's own descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific purpose: checking whether global reference vs DEX pool price divergence is enough after gas costs, before executing a cross-venue arbitrage trade. It names the exact outputs (gross/net spread percentages, is_profitable) and distinguishes itself from DEX-only depth/contract checks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says when to use ('before executing a cross-venue arbitrage trade') and when not to use ('DEX-only liquidity depth checks or contract security'). The caveat about fees gives practical guidance on interpreting results correctly before acting.

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

calendar.macro_ddayA
Read-only
Inspect

Use this tool when an agent plans trading schedules around major US macroeconomic volatility, specifically days remaining until FOMC rate decisions, CPI prints, or NFP jobs reports. Zero-dependency static 2026 macro calendar with 100% uptime and no upstream failure risk. Do not use for real-time market price data or economic forecast consensus figures. No input parameters. Paid in USDC on Base.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
tagsYes
d_dayNo
noticeNo
event_nameNo
event_typeNo
data_sourceYes
descriptionNo
generated_atYes
impact_levelNo
event_datetimeNo
time_remainingNo
upcoming_eventsYes

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds useful behavioral context beyond that: it is a zero-dependency static calendar with no upstream failure risk, and it is paid in USDC on Base, which informs cost and reliability expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the primary use case and exclusions. It is a bit promotional with phrases like '100% uptime' and 'paid in USDC on Base,' but these add decision-relevant reliability and cost context without excessive length.

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

Completeness5/5

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

Given the tool has zero parameters, read-only annotations, and an output schema, the description covers all essential aspects: purpose, specific macro events, year scope, exclusions, and reliability/cost characteristics. Nothing critical is missing for an agent to select and invoke it correctly.

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

Parameters4/5

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

There are no input parameters, and the description explicitly confirms this with 'No input parameters.' Since there is nothing for the schema or description to elaborate on, the baseline of 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: it provides days remaining until major US macro events (FOMC, CPI, NFP). It clearly identifies the tool as a static 2026 macro calendar, which differentiates it from the finance, derivatives, and security sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use it: when planning trading schedules around major US macroeconomic volatility. It also explicitly states when not to use it: for real-time market price data or economic forecast consensus figures, which is clear exclusion guidance.

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

derivatives.funding_apr_matrixA
Read-only
Inspect

Use this tool to evaluate a spot+perpetual carry trade: annualizes the current perpetual funding rate into an APR, flags which side (SHORT or LONG perp) currently collects funding, and computes how many days of that funding income it takes to recoup an assumed round-trip trading cost. Pure calculation on top of funding_rate data - no extra upstream call. Do not use for the raw current funding rate alone (use derivatives.funding_rate) or for spot price data. Paid in USDC on Base.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesTicker symbol, e.g. BTC, ETH, or BTCUSDT.
assumed_round_trip_cost_pctNoCombined entry+exit trading fee percentage across both the spot and perpetual legs. Defaults to 0.2.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noticeNo
symbolYes
data_sourceYes
generated_atYes
breakeven_daysNo
periods_per_yearNo
annualized_rate_pctNo
funding_collector_sideNo
funding_interval_hoursNo
funding_rate_percentageNo
daily_funding_income_pctNo
assumed_round_trip_cost_pctYes

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds meaningful behavior beyond that: it performs a pure calculation on top of funding_rate data, has no extra upstream call, flags the funding-paying side, and is paid in USDC on Base. These details are not visible elsewhere.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense, front-loaded sentences cover the main action, exclusions, alternatives, and payment context with zero filler. Every sentence earns its place.

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

Completeness5/5

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

For a two-parameter calculation tool with an output schema, the description covers purpose, usage boundaries, computation behavior, and payment context. Nothing needed for correct invocation is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already fully documents both parameters. The description contextualizes assumed_round_trip_cost_pct as the cost recouped by funding income, but it does not add new parameter-level details beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'evaluate a spot+perpetual carry trade' and enumerates three concrete outputs: annualized APR, funding side, and days to recoup cost. It also explicitly distinguishes itself from the sibling tool derivatives.funding_rate, making its purpose clear without needing to open schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Contains explicit routing guidance: 'Do not use for the raw current funding rate alone (use derivatives.funding_rate) or for spot price data.' It also clarifies this is a pure calculation with no extra upstream call, which tells the agent exactly when this tool is appropriate versus alternatives.

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

derivatives.funding_rateA
Read-only
Inspect

Use this tool when analyzing perpetual futures funding rates, long/short market sentiment crowding, or timing hedging strategies before settlement periods. Aggregates Bybit (primary) and Binance (fallback) perpetual funding rates, plus mark_price/index_price (both paths) and open_interest_usd (Bybit path only - null on the Binance fallback). Do not use for spot market volume or token security checks. Paid in USDC on Base.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesTicker symbol, e.g. BTC, ETH, or BTCUSDT.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noticeNo
symbolYes
mark_priceNoPerpetual futures mark price at lookup time. Populated on both the Bybit and Binance paths.
data_sourceYes
index_priceNoUnderlying spot index price feeding the perpetual's funding calculation. Populated on both the Bybit and Binance paths.
funding_rateNo
generated_atYes
predicted_rateNo
next_funding_timeNo
open_interest_usdNoTotal open interest in USD notional. Only available via the Bybit path - always null on the Binance fallback, since Binance's premiumIndex endpoint does not report open interest.
funding_interval_hoursNo
funding_rate_percentageNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds real behavioral value beyond that: Bybit primary with Binance fallback, open_interest_usd only existing on the Bybit path and null on Binance, and payment currency on Base. This gives a useful, non-obvious operational picture.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences carry a use case, data source behavior, exclusions, and payment context with no filler. The structure front-loads the most decision-relevant information and then gives data path details. Slightly dense, but efficient.

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

Completeness4/5

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

For a simple one-parameter tool with read-only annotations and an output schema, the description captures the key behaviors, source paths, and nullability caveat. It is sufficiently complete for an agent to decide whether to call it and understand the response shape, though it does not explain symbol normalization beyond the schema examples.

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

Parameters3/5

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

Schema description coverage is 100% and includes examples like 'BTC, ETH, or BTCUSDT,' so the schema already documents the single parameter fully. The tool description adds context about what symbol relates to but does not add much beyond the schema, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a clear use case ('analyzing perpetual futures funding rates, long/short market sentiment crowding, or timing hedging strategies before settlement periods') and explicitly states the resource: Bybit/Binance perpetual funding rates plus mark_price/index_price and open_interest_usd. It also names what it is not for ('spot market volume or token security checks'), distinguishing it from unrelated sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use instructions tied to concrete market conditions, and explicit negative guidance for spot volume and token security. It does not name any specific sibling tool to switch to, so routing is slightly weaker than the highest bar, but the exclusions are clear.

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

derivatives.whale_position_auditA
Read-only
Inspect

Use this tool to audit a Hyperliquid wallet address you already know: every open perpetual position with side, size, leverage, max_leverage, unrealized PnL, return_on_equity_pct, liquidation price, and distance-to-liquidation percentage (max_leverage and return_on_equity_pct are Hyperliquid's own reported fields, not derived by this tool). This does not discover or rank 'smart money' wallets - Hyperliquid's public API has no leaderboard or large-trader disclosure endpoint, so it only audits an address you supply. risk_flags (HIGH_LEVERAGE, NEAR_LIQUIDATION) come from fixed numeric thresholds only. Do not use for spot price data or any exchange other than Hyperliquid. Paid in USDC on Base.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesHyperliquid/EVM wallet address to audit (0x...).

Output Schema

ParametersJSON Schema
NameRequiredDescription
noticeNo
positionsYes
risk_flagsYes
data_sourceYes
generated_atYes
wallet_addressYes
margin_usage_pctNo
withdrawable_usdNo
account_value_usdNo
open_position_countYes
total_margin_used_usdNo
total_notional_position_usdNo

TDQS

A4.4/5.0
Behavior4/5

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

The annotations already declare readOnlyHint=true and destructiveHint=false, and the description reinforces this by using 'audit' and describing read-only data retrieval. It adds value by clarifying that risk_flags come from fixed numeric thresholds (not heuristics), that max_leverage and return_on_equity_pct are Hyperliquid's own reported fields, and that the service is paid in USDC on Base. These details go beyond the annotations and give the agent a fuller picture of the tool's behavior and cost implications.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is information-dense and well-structured, front-loading the core purpose ('Use this tool to audit a Hyperliquid wallet address') before diving into details. Every sentence contributes meaning: it lists output fields, clarifies provenance, states exclusions, mentions the lack of a leaderboard, and notes payment. While it is relatively long, the complexity of the tool justifies the length, and there is no redundant filler.

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

Completeness5/5

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

Given that the tool has a single parameter, a clear output schema (as indicated by 'Has output schema: true'), and read-only annotations, the description covers all the essential context an agent needs: what the tool does, what it returns, its limitations, what it does not do, and the cost model. It fully equips an agent to decide when and how to invoke it correctly.

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

Parameters3/5

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

The schema coverage is 100% for the single parameter, and the schema already describes it as 'Hyperliquid/EVM wallet address to audit (0x...).' The description adds minimal additional semantic value beyond the schema, such as confirming the address must be one the user already knows. Since the schema does the heavy lifting, a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('audit'), the resource ('Hyperliquid wallet address'), and enumerates exactly what is returned (side, size, leverage, etc.). It also explicitly distinguishes itself from discovering or ranking smart money wallets, which differentiates it from potential sibling tools. The phrase 'you already know' clarifies that it only audits a supplied address, leaving no ambiguity about its function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states when to use it ('audit a Hyperliquid wallet address you already know') and when not to ('Do not use for spot price data or any exchange other than Hyperliquid'). It also explains that it cannot discover smart money wallets because Hyperliquid's API has no such endpoint, preventing misuse. These explicit exclusions and context make the usage boundaries crystal clear.

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

dex.liquidity_slippageA
Read-only
Inspect

Use this tool to calculate expected DEX price slippage, pool liquidity depth, and optimal routing before executing an on-chain token swap. GeckoTerminal-backed pool analytics with constant-product slippage estimation for the requested trade_size_usd, plus a slippage_tiers array with the same estimate at fixed $1,000/$5,000/$10,000 sizes so an agent can gauge depth at a glance without extra calls. Do not use for centralized exchange (CEX) orderbooks or contract risk analysis. Paid in USDC on Base.

ParametersJSON Schema
NameRequiredDescriptionDefault
networkNoGeckoTerminal network id, e.g. base, eth. Defaults to base.
pool_addressNoSpecific DEX pool contract address (optional if token_address is given).
token_addressNoToken contract address - the most liquid pool is auto-selected (optional if pool_address is given).
trade_size_usdYesHypothetical trade size in USD to estimate slippage for.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noticeNo
networkYes
pool_nameNo
data_sourceYes
generated_atYes
pool_addressNo
pool_fee_pctNoSwap fee tier of the selected pool, parsed from pool_name. Disclosed for reference only - not subtracted from the slippage estimate.
liquidity_usdNo
token_addressNo
slippage_tiersNo
trade_size_usdYes
volume_24h_usdNo
price_impact_modelYes
quote_token_symbolNoParsed from pool_name (e.g. 'USDC' from 'WETH / USDC 0.05%').
assumed_gas_cost_usdNoFlat per-swap gas estimate for this network, not a live gas quote.
estimated_slippage_pctNo
quote_token_is_stablecoinNoIf false or null, this pool isn't USD-quoted - an extra hop is needed to reach USD, not accounted for in the slippage estimate.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows it is a safe read operation. The description adds valuable behavioral context: it's GeckoTerminal-backed, uses constant-product slippage estimation, and includes a slippage_tiers array for quick depth assessment without extra calls. It also mentions the payment requirement. This exceeds the baseline set by annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no wasted words. The first sentence states the core purpose, and the second adds key details (GeckoTerminal-backed, slippage tiers, exclusions, payment) in a compact manner. It is front-loaded and each clause earns its place.

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

Completeness4/5

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

The presence of an output schema covers return values, and the description explicitly mentions the slippage_tiers output array. It also notes the cost and exclusions. It does not mention network defaults or how pool/token selection works, but those are covered in the schema. For a tool with multiple parameters and a clear purpose, this is nearly complete, missing only minor edge-case details.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters are fully documented in the schema. The description does not add any parameter-specific semantics beyond referencing trade_size_usd in the main text. Per the rubric, a baseline of 3 is correct when the schema carries the full parameter documentation burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool calculates DEX price slippage, pool liquidity depth, and optimal routing, naming the specific resource (GeckoTerminal-backed pool analytics) and action. It differentiates from CEX tools by explicitly saying 'Do not use for centralized exchange (CEX) orderbooks,' which distinguishes it from any potential sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides explicit when-to-use guidance ('before executing an on-chain token swap') and explicit exclusions ('Do not use for centralized exchange (CEX) orderbooks or contract risk analysis'). It also notes a cost implication ('Paid in USDC on Base'), which helps agents decide whether to invoke it. This is strong usage direction.

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

market.kimchi_alertA
Read-only
Inspect

Use this tool when evaluating Korean exchange price premiums, the 'kimchi premium', Upbit price gaps vs a global reference price, cross-border crypto arbitrage, or sudden Korea-specific price anomalies. Real-time Upbit vs Coinbase spot (CoinGecko fallback) - NOT a live Binance orderbook, despite the legacy binance_price_usdt field name kept for backward compatibility - with reverse-premium and surge alerts. Do not use for general USD spot prices or on-chain DEX swaps. Paid in USDC on Base (free while KIMCHI_ALERT_ENABLED=false).

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolNoCrypto ticker symbol to check, e.g. BTC, ETH, SOL. Defaults to BTC.

Output Schema

ParametersJSON Schema
NameRequiredDescription
alertsYes
noticeNo
symbolYes
thresholdsYes
generated_atYes
upbit_price_krwYes
cex_price_sourceNo
binance_price_usdtYesLegacy field name kept for backward compatibility - NOT a live Binance price, see notice/cex_price_source.
kimchi_premium_pctYes
usdkrw_rate_estimateYes
premium_change_1h_pctYes
cex_reference_price_usdtNoSame value as binance_price_usdt under an honestly-named field.

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only state readOnlyHint and destructiveHint. The description goes far beyond that by disclosing the real-time data sources (Upbit vs Coinbase with CoinGecko fallback), explicitly warning it is NOT a live Binance orderbook despite the legacy field name, mentioning reverse-premium and surge alerts, and stating the payment model (USDC on Base, free while flag is false). This is rich behavioral context that helps the agent set expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but efficient, using multiple clauses to pack critical information without fluff. It leads with the usage context, then details data source, alerts, and payment. It is slightly long but every sentence contributes value, and the structure is logical.

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

Completeness5/5

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

Given the tool's complexity (arbitrage, multiple alerts, payment, data sources), the description covers all essential aspects: when to use, data sources, fallback, exclusions, and cost. An output schema exists, so return-value details are not needed. Nothing an agent requires to decide whether to call it and what to expect is missing.

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

Parameters3/5

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

The only parameter (symbol) has full schema coverage (100%) with its own description, so the baseline is 3. The tool description adds only a default value (BTC) but no additional semantic nuance beyond what the schema provides. It does not explain symbol format or edge cases, but the schema covers it adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a precise verb-resource pair: 'evaluating Korean exchange price premiums,' and enumerates specific use cases (kimchi premium, Upbit vs global reference, arbitrage, Korea-specific anomalies). It explicitly distinguishes itself from a Binance orderbook and general spot prices, which differentiates it from siblings like arb.spread_matrix or derivatives.funding_rate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear when-to-use guidance ('Use this tool when evaluating...') and explicit exclusions ('Do not use for general USD spot prices or on-chain DEX swaps'). It does not name a specific alternative tool, but the when-not cases are stated unambiguously, which is sufficient for routing.

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

prediction.exit_capacity_auditA
Read-only
Inspect

Walk a single Polymarket outcome's live order book to determine how much of a given position size can actually be filled right now, at what average price, and with how much price impact versus the best quote - a live snapshot, not historical liquidity. Also returns book_snapshot_time (the book's own reported timestamp) and Polymarket's own tick_size/min_order_size for this market (null if the book response didn't include them). Accepts either a raw token_id or a market_slug (+ outcome) to resolve it automatically - exact slug only, no fuzzy keyword search. Do not use for multi-outcome basket arbitrage detection (use prediction.neg_risk_arbitrage instead). Paid in USDC on Base.

ParametersJSON Schema
NameRequiredDescriptionDefault
sideNo"sell" (default) or "buy".
outcomeNo"yes" (default) or "no" - which side to resolve when using market_slug.
token_idNoThe outcome's CLOB token_id / asset_id, if already known.
market_slugNoExact Polymarket market slug, used to resolve token_id automatically.
position_size_sharesYesNumber of outcome shares to sell (or buy). Must be positive.

Output Schema

ParametersJSON Schema
NameRequiredDescription
sideYes
noticeNo
token_idYes
tick_sizeNoPolymarket's own reported minimum price increment for this market. Null if the book response didn't include it.
best_quoteNo
executableYes
data_sourceYes
market_slugNo
generated_atYes
avg_exit_priceNo
min_order_sizeNoPolymarket's own reported minimum order size for this market. Null if the book response didn't include it.
price_impact_pctNo
book_snapshot_timeNoThe order book's own reported snapshot timestamp, so you can judge how fresh this read is.
position_size_sharesYes
max_executable_sharesYes

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description adds valuable behavioral context: it is a live snapshot (not historical), it returns book_snapshot_time and tick_size/min_order_size, and it notes payment in USDC on Base. There is no contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is moderately long but every sentence earns its place: purpose, scope, return fields, input modes, and an explicit exclusion. It is front-loaded with the main purpose and structured logically, with no filler or redundancy.

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

Completeness5/5

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

Given the tool's complexity (5 parameters, resolution logic, live snapshot behavior) and the presence of an output schema, the description is remarkably complete. It covers input alternatives, output fields, edge cases (null tick_size), and the key limitation (no fuzzy slug matching). Nothing an agent needs to invoke it correctly is missing.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds meaning beyond the schema by explaining the relationship between market_slug and token_id (automatic resolution) and clarifying that outcome is only used with market_slug. This goes beyond simple parameter definitions and helps an agent understand how to pass inputs correctly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (walk/audit) and resource (single Polymarket outcome's live order book) and precisely defines what it returns (fillable size, average price, price impact vs best quote). It explicitly contrasts with a sibling tool (prediction.neg_risk_arbitrage) for multi-outcome basket arbitrage, making its scope unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly explains when to use: for a live liquidity snapshot of a single outcome, and explicitly says 'Do not use for multi-outcome basket arbitrage detection (use prediction.neg_risk_arbitrage instead)'. It also specifies input modes (raw token_id or exact market_slug) and the exact-slug requirement, giving an agent full decision context.

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

prediction.neg_risk_arbitrageA
Read-only
Inspect

Detect basket arbitrage in a Polymarket neg-risk (mutually-exclusive, multi-outcome) event - a full YES basket across all outcomes always settles to exactly $1, so a basket price away from $1 (after costs) is a near risk-free edge. Also returns buy/sell_basket_capacity_shares, the actual liquidity-bottleneck size executable right now, so this isn't just a top-of-book mirage - note *_capacity_notional_usd still prices that size at top-of-book (optimistic), so use *_capacity_vwap_notional_usd for the realistic fill cost. Also returns oldest_book_snapshot_time, the staleness bottleneck across all legs. Polymarket only. Do not use for binary Yes/No markets (no basket to arbitrage) or for Kalshi (its Data ToS forbids this use). Paid in USDC on Base.

ParametersJSON Schema
NameRequiredDescriptionDefault
event_slugYesPolymarket event slug, from the event's URL on polymarket.com.
max_slippage_pctNoHow far past each leg's best price to walk the book when sizing capacity. Defaults to 1.0.
min_net_edge_pctNoMinimum net edge (%) required to flag arbitrage_viable: true. Defaults to 1.0.
assumed_round_trip_cost_pctNoGas + fees + slippage buffer, as a percentage of $1 basket notional. Defaults to 1.5.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noticeNo
event_slugYes
data_sourceYes
opportunityYes
generated_atYes
num_outcomesYes
basket_ask_sumNo
basket_bid_sumNo
arbitrage_viableYes
buy_basket_net_edge_usdNo
sell_basket_net_edge_usdNo
buy_basket_gross_edge_usdNo
oldest_book_snapshot_timeNoThe oldest of each leg's own order-book snapshot timestamp - the staleness bottleneck across all legs, since the whole basket calculation is only as fresh as its stalest leg. Null if no leg reported a timestamp.
buy_basket_capacity_sharesYes
sell_basket_gross_edge_usdNo
assumed_round_trip_cost_pctYes
sell_basket_capacity_sharesYes
buy_basket_capacity_notional_usdNo
sell_basket_capacity_notional_usdNo
buy_basket_capacity_vwap_notional_usdNoVolume-weighted price of filling buy_basket_capacity_shares by walking the order book depth, instead of pricing it at top-of-book like buy_basket_capacity_notional_usd does - more realistic actual fill cost.
sell_basket_capacity_vwap_notional_usdNo

TDQS

A4.6/5.0
Behavior4/5

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

The annotations declare readOnlyHint=true and destructiveHint=false, so the agent knows it's a safe, read-only operation. The description goes beyond annotations by explaining the practical caveats: the capacity notional is priced at top-of-book (optimistic), so the agent should use vwap notional for realistic fill cost; and the oldest_book_snapshot_time indicates staleness bottleneck. This is valuable operational context that helps the agent interpret results correctly and avoid misusing the data. Slightly not a 5 because it doesn't disclose the exact return format, but the output schema exists and the caveats are rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is moderately concise but informational. It front-loads the core purpose in the first sentence, then adds critical caveats about capacity pricing and staleness, and ends with platform restrictions. It is longer than ideal but every sentence adds value—no filler. The structure is logical: purpose → outputs with caveats → usage restriction. It earns a 4 rather than a 5 because it is somewhat dense and could be split into more digestible parts, but it is not verbose.

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

Completeness5/5

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

Given the tool's complexity (4 parameters, output schema, varying market types), the description is complete. It explains the core arbitrage concept, tells the agent precisely when to use it and when not, and clarifies the meaning of key outputs (capacity, vwap, staleness). The output schema likely details return fields, so the description doesn't need to repeat that. The platform restrictions (Polymarket, no Kalshi) are essential for correct usage, and they are included. The description is fully adequate for an agent to call the tool correctly.

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

Parameters4/5

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

The input schema already has 100% description coverage, with each parameter (event_slug, max_slippage_pct, min_net_edge_pct, assumed_round_trip_cost_pct) clearly described. The description adds extra semantic meaning by explaining the context of these parameters: e.g., max_slippage_pct is for 'sizing capacity' and min_net_edge_pct relates to flagging 'arbitrage_viable', and assumed_round_trip_cost_pct is a buffer. This goes beyond the schema's generic descriptions, adding operational insight (e.g., these are all percentages relative to basket notional).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: detects basket arbitrage in Polymarket neg-risk events. It specifies the resource (basket of all outcomes in a mutually-exclusive market), the verb (detect), and the key mechanism (full YES basket settles to $1, so deviation from $1 is an edge). It also distinguishes itself from many siblings: it explicitly notes 'Polymarket only' and 'Do not use for binary Yes/No markets' or Kalshi, which differentiates it from other prediction-market or security tools in the list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use the tool: for Polymarket neg-risk events with multiple outcomes where a full YES basket can be constructed. It also states when NOT to use it: for binary Yes/No markets (no basket to arbitrage) and for Kalshi (Data ToS forbids it). This is clear, specific guidance that helps an agent select the right tool without needing to infer from context. It also hints at how to use the results (using vwap notional for realistic fills).

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

security.contract_health_auditA
Read-only
Inspect

Use this tool to check whether a token's liquidity pool is locked, burned, or freely held by a single wallet before trusting its liquidity - a rug-pull signal that security.token_risk does not cover. Reuses the same GoPlus data as token_risk (no extra upstream call) and rolls it up into a liquidity_health category (LOCKED/PARTIALLY_LOCKED/UNLOCKED/NO_LP_DATA). Does not include any qualitative 'suspicious transaction' judgment - only GoPlus's own lock/burn numbers. Do not use for honeypot or tax checks (use security.token_risk) or market price data. Paid in USDC on Base.

ParametersJSON Schema
NameRequiredDescriptionDefault
chain_idYesEVM chain id, e.g. 8453 for Base.
contract_addressYesToken contract address (0x...).

Output Schema

ParametersJSON Schema
NameRequiredDescription
noticeNo
chain_idYes
risk_flagsYes
token_nameNo
data_sourceYes
generated_atYes
token_symbolNo
lp_burned_pctNo
lp_locked_pctNo
lp_holder_countNo
lp_total_supplyNo
contract_addressYes
liquidity_healthYes
top_unlocked_holder_pctNo

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, but the description adds valuable behavioral context: it reuses GoPlus data without an extra upstream call, outputs only GoPlus's lock/burn numbers with no qualitative judgment, and is paid in USDC on Base. These details go beyond the structured fields and enrich the agent's understanding of side effects and constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose in the first sentence, followed by relevant technical details, exclusions, and cost. Every sentence contributes unique information with no fluff or repetition, making it efficient and easy to scan.

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

Completeness5/5

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

With an output schema present and read-only annotations, the description covers the essential context: purpose, input semantics, data source, output category, exclusions, and payment. It is fully self-contained for an agent to select and invoke the tool correctly, especially given the sibling differentiation.

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

Parameters3/5

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

Input schema coverage is 100%, with both chain_id and contract_address clearly described. The description does not add parameter-specific meaning beyond the schema, which is acceptable given the high schema coverage; the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: checking whether a token's liquidity pool is locked, burned, or held by a single wallet, and categorizes it as a rug-pull signal. It explicitly distinguishes itself from sibling security.token_risk by noting that token_risk does not cover this check, making the specific resource and verb unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use guidance ('before trusting its liquidity') and exclusion criteria ('Do not use for honeypot or tax checks (use security.token_risk) or market price data'). Names the alternative tool and the conditions that route to it, leaving no ambiguity for the agent.

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

security.token_diagnosticA
Read-only
Inspect

Use this tool right before buying or swapping an unfamiliar token when you need a single-call combined security check: runs security.token_risk and security.contract_health_audit in parallel against the same GoPlus data and returns both, plus a deduped union of risk_flags and a plain risk_flags_count. Deliberately does not compute a composite score or letter grade - every field is copied unchanged from the two underlying tools. Cheaper than calling both separately. Do not use for token unlock/vesting risk (use unlocks.dump_risk) or if you only need one of the two checks (call that tool directly and pay less). Paid in USDC on Base.

ParametersJSON Schema
NameRequiredDescriptionDefault
chain_idYesEVM chain id, e.g. 8453 for Base.
contract_addressYesToken contract address (0x...).

Output Schema

ParametersJSON Schema
NameRequiredDescription
noticeNo
chain_idYes
risk_flagsYes
token_nameNo
buy_tax_pctNo
is_honeypotNo
is_mintableNo
checks_totalYes
data_sourcesYes
generated_atYes
holder_countNo
sell_tax_pctNo
token_symbolNo
lp_burned_pctNo
lp_locked_pctNo
is_open_sourceNo
owner_renouncedNo
checks_completedYes
contract_addressYes
liquidity_healthYes
risk_flags_countYes
top_unlocked_holder_pctNo

TDQS

A4.6/5.0
Behavior5/5

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

Discloses significant behavior beyond annotations: runs in parallel, returns both underlying results, dedupes risk_flags, provides risk_flags_count, deliberately does not compute composite score, copies fields unchanged, cheaper than separate calls, and mentions payment in USDC on Base. No contradiction with readOnlyHint/destructiveHint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is thorough but not wasteful; every sentence contributes value (purpose, behavior, exclusions, cost). It's front-loaded with the primary use case. However, it is slightly long for a tool description, though justified given the composite nature.

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

Completeness5/5

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

With an output schema present, return structure is covered. The description covers behavior, cost implications, exclusions, and payment details, making it complete for an agent to decide when to use it and what to expect. No critical missing context.

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

Parameters3/5

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

Schema description coverage is 100%, so both chain_id and contract_address are already well-documented in the schema. The description adds no additional parameter semantics beyond the schema, only implicit reference via the composite nature. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb 'runs... combined security check' and resource 'token_diagnostic'. It clearly distinguishes from siblings by naming the two underlying tools (security.token_risk and security.contract_health_audit) and explains it returns both plus deduped flags, making its unique function obvious.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use: 'right before buying or swapping an unfamiliar token... when you need a single-call combined security check'. Provides clear exclusions: 'Do not use for token unlock/vesting risk (use unlocks.dump_risk) or if you only need one of the two checks (call that tool directly and pay less).' Names alternatives directly.

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

security.token_riskA
Read-only
Inspect

Use this tool before executing any on-chain swap to verify if an ERC-20 contract is a honeypot, rug-pull risk, or has malicious buy/sell taxes and mintability backdoors. GoPlus/Honeypot.is-backed security audit for a given contract address - beyond is_honeypot, also surfaces individual GoPlus risk signals (cannot_buy, cannot_sell_all, hidden_owner, transfer_pausable, selfdestruct, is_blacklisted, slippage_modifiable, owner_percent) into risk_flags, plus is_proxy/trading_cooldown as informational-only fields (not flagged, since both are common in legitimate contracts). All of these are null when the Honeypot.is fallback path is used. Do not use for market price discovery or liquidity depth. Paid in USDC on Base.

ParametersJSON Schema
NameRequiredDescriptionDefault
chain_idYesEVM chain id, e.g. 8453 for Base.
contract_addressYesToken contract address (0x...).

Output Schema

ParametersJSON Schema
NameRequiredDescription
noticeNo
chain_idYes
is_proxyNoGoPlus-only, null on Honeypot.is fallback. Informational only - does not feed risk_flags.
is_in_dexNo
cannot_buyNoGoPlus-only, null on Honeypot.is fallback. Feeds risk_flags.
risk_flagsYes
risk_levelYes
token_nameNo
buy_tax_pctNo
data_sourceYes
is_honeypotNo
is_mintableNo
generated_atYes
hidden_ownerNoGoPlus-only, null on Honeypot.is fallback. Feeds risk_flags.
holder_countNo
selfdestructNoGoPlus-only, null on Honeypot.is fallback. Feeds risk_flags.
sell_tax_pctNo
token_symbolNo
owner_addressNo
owner_percentNoOwner's % of total supply, GoPlus-only. Feeds 'high_owner_concentration' risk_flag at >=50%.
is_blacklistedNoGoPlus-only, null on Honeypot.is fallback. Feeds risk_flags.
is_open_sourceNo
cannot_sell_allNoGoPlus-only, null on Honeypot.is fallback. Feeds risk_flags.
owner_renouncedNo
contract_addressYes
trading_cooldownNoGoPlus-only, null on Honeypot.is fallback. Informational only - does not feed risk_flags.
transfer_pausableNoGoPlus-only, null on Honeypot.is fallback. Feeds risk_flags.
slippage_modifiableNoGoPlus-only, null on Honeypot.is fallback. Feeds risk_flags.

TDQS

A4.1/5.0
Behavior5/5

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

Beyond the readOnlyHint and destructiveHint annotations, the description discloses substantial behavioral details: which GoPlus signals are surfaced as risk_flags, that is_proxy/trading_cooldown are informational-only, that fields become null on the Honeypot.is fallback path, and that there is a cost model ('Paid in USDC on Base'). This is far more transparency than the annotations alone could provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but dense, and each clause adds useful information: usage timing, source, risk signals, fallback behavior, exclusions, and payment. It is front-loaded with the core purpose and then layers supporting details, so it is structured effectively despite its length.

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

Completeness5/5

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

Given that the schema fully documents the two parameters and an output schema is present, the description covers the remaining context: when to use it, what signals to expect, fallback behavior, and cost. Nothing necessary for an agent needs to correctly invoke the tool is missing.

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

Parameters3/5

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

Both parameters are already fully described in the input schema with clear descriptions and an example (chain_id, contract_address). The tool description does not add much parameter-level meaning beyond restating that the contract address is an ERC-20 token, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: verify if an ERC-20 contract is a honeypot, rug-pull risk, or has malicious taxes/mintability backdoors, using GoPlus/Honeypot.is. It is specific and actionable, and the mention of 'beyond is_honeypot' and individual risk signals helps characterize its scope. It does not explicitly differentiate itself from sibling security tools like security.contract_health_audit or security.token_diagnostic.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear when-to-use instruction: 'Use this tool before executing any on-chain swap' and also provides a when-not-to-use constraint: 'Do not use for market price discovery or liquidity depth.' However, it does not name any alternative sibling tools or explain when one of those should be chosen instead.

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

tools.ai_markdownA
Read-only
Inspect

Use this tool when an agent needs to parse clean webpage article content without wasting context tokens on ads, scripts, navigation, and HTML boilerplate, or when summarizing a specific URL. Converts any URL into clean Markdown optimized for LLM context windows. Do not use for raw API endpoints or binary files (PDF/images). Paid in USDC on Base.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesFull http(s) URL of the webpage to convert to Markdown.

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlYes
titleYes
markdownYes
char_countYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already mark the tool as read-only and non-destructive, and the description adds genuinely useful behavioral context beyond that: it converts pages to Markdown, filters boilerplate, and crucially discloses that the tool is paid in USDC on Base. The payment disclosure is important for an agent deciding whether invocation has cost implications. No contradiction with annotations exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact: three sentences cover use case, output, exclusions, and payment. It is front-loaded with the primary trigger condition. Minor redundancy exists between 'without wasting context tokens on... boilerplate' and 'optimized for LLM context windows', but no sentence is wasted.

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

Completeness4/5

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

The description provides enough context for an agent to select and invoke the tool correctly: purpose, target URLs, exclusions, parameter format, and cost. The presence of an output schema means return-value documentation is handled elsewhere. It does not discuss rate limits or edge cases like JavaScript-heavy or authenticated pages, but this is not a critical gap for a simple single-URL converter.

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

Parameters3/5

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

With only one parameter and 100% schema description coverage, the schema already documents the url parameter thoroughly ('Full http(s) URL of the webpage to convert to Markdown'). The tool description restates the general conversion behavior but adds little new parameter-level detail beyond the schema. A baseline score of 3 is appropriate because the schema carries the burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verbs ('parse', 'converts') and clearly identifies the resource: any URL becomes clean Markdown optimized for LLM context windows. The explicit mention of stripping ads, scripts, navigation, and boilerplate distinguishes it clearly from generic fetchers or URL tools. There is no ambiguity about what the tool accomplishes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use the tool: for parsing clean webpage article content or preparing a URL for summarization. It also gives clear negative guidance by warning against raw API endpoints and binary files such as PDFs and images. These when/when-not signals are sufficient, especially since none of the sibling tools overlap with this functionality.

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

unlocks.dump_riskA
Read-only
Inspect

Use this tool to evaluate token unlock/vesting supply overhang risk before taking mid-to-long term positions - returns tokens whose currently-locked or unlock-eligible supply exceeds a materiality threshold, each with a computed risk_level (LOW/MEDIUM/HIGH). Default data source (on-chain Sablier vesting, the current configuration - no DropsTab key set) does NOT classify VC/team vs. other holders (is_insider_vc_team is always null) and does NOT provide exact unlock timing (days_until_unlock is always null, timing_precision='pending_schema_verification') - it only reports the currently-locked supply ratio. It does report vesting_deposit_amount/vesting_withdrawn_amount (Sablier's own depositAmount/withdrawnAmount, aggregated across streams) and vesting_progress_pct (withdrawn/deposit * 100), showing how far along the vesting schedule already is. Treat a null value as 'unknown', never as 'no risk'. Always check the response's coverage_notice field. Do not use for intra-day slippage or real-time transaction simulation. Paid in USDC on Base (free while DUMP_RISK_ENABLED=false).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
noticeNo
unlocksYes
data_sourceNo
window_daysNo
generated_atYes
coverage_noticeNo
protocols_scannedYes
supply_pct_thresholdYes

TDQS

A4.3/5.0
Behavior5/5

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

Beyond the readOnly/destructive annotations, the description discloses default data source configuration, null-field semantics, missing classification/timing limitations, vesting progress fields, and cost/payment behavior. It also clarifies that null means 'unknown', not 'no risk', which is essential for correct interpretation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense and front-loaded with the core purpose, and the later caveats are materially important to avoid misinterpretation. It is longer than minimal, but almost every clause adds safety or correctness context; only the payment detail is somewhat secondary.

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

Completeness5/5

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

For a no-parameter tool with an output schema, the description is remarkably complete: it covers use cases, exclusions, data-source limitations, null semantics, required response-field checks, and cost. An agent has enough context to select and invoke this tool correctly without further inference.

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

Parameters4/5

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

The input schema has no parameters principal, so there is little for the description to add. Per the zero-parameter baseline this is adequate, since no parameter meanings need clarification.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('evaluate') and resource ('token unlock/vesting supply overhang risk'), and specifies that it returns tokens with risk_level. It also delimits the use case to mid-to-long term positions, but it does not explicitly name sibling alternatives, so it earns a 4 rather than 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear when-to-use context ('before taking mid-to-long term positions') and explicit when-not-to-use guidance ('Do not use for intra-day slippage or real-time transaction simulation'). It also instructs the agent to check coverage_notice, but it does not point to alternative sibling tools for those excluded use cases.

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.

  1. 7 tool updates
    • Changedarb.spread_matrix1 field changed
      • addedOutput schema / properties / pool_fee_pct
        Added value: +{
        +  "description": "DEX pool's fee tier (e.g. 0.05 for 0.05%), parsed from the pool name. Informational only - net_spread_pct does not subtract it.",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
    • Changedderivatives.funding_rate3 fields changed
      • addedOutput schema / properties / index_price
        Added value: +{
        +  "description": "Underlying spot index price feeding the perpetual's funding calculation. Populated on both the Bybit and Binance paths.",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / mark_price
        Added value: +{
        +  "description": "Perpetual futures mark price at lookup time. Populated on both the Bybit and Binance paths.",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / open_interest_usd
        Added value: +{
        +  "description": "Total open interest in USD notional. Only available via the Bybit path - always null on the Binance fallback, since Binance's premiumIndex endpoint does not report open interest.",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
    • Changedderivatives.whale_position_audit2 fields changed
      • addedOutput schema / properties / positions / items / properties / max_leverage
        Added value: +{
        +  "description": "Hyperliquid's own reported leverage ceiling for this asset/account setting - not the leverage actually in use.",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / positions / items / properties / return_on_equity_pct
        Added value: +{
        +  "description": "Hyperliquid's own reported ROE for this position, as a percentage - not derived by this tool.",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
    • Changedprediction.exit_capacity_audit3 fields changed
      • addedOutput schema / properties / book_snapshot_time
        Added value: +{
        +  "anyOf": [
        +    {
        +      "properties": {
        +        "kst": {
        +          "type": "string"
        +        },
        +        "utc": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "utc",
        +        "kst"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "The order book's own reported snapshot timestamp, so you can judge how fresh this read is."
        +}
      • addedOutput schema / properties / min_order_size
        Added value: +{
        +  "description": "Polymarket's own reported minimum order size for this market. Null if the book response didn't include it.",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / tick_size
        Added value: +{
        +  "description": "Polymarket's own reported minimum price increment for this market. Null if the book response didn't include it.",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
    • Changedprediction.neg_risk_arbitrage3 fields changed
      • addedOutput schema / properties / buy_basket_capacity_vwap_notional_usd
        Added value: +{
        +  "description": "Volume-weighted price of filling buy_basket_capacity_shares by walking the order book depth, instead of pricing it at top-of-book like buy_basket_capacity_notional_usd does - more realistic actual fill cost.",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / oldest_book_snapshot_time
        Added value: +{
        +  "anyOf": [
        +    {
        +      "properties": {
        +        "kst": {
        +          "type": "string"
        +        },
        +        "utc": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "utc",
        +        "kst"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "The oldest of each leg's own order-book snapshot timestamp - the staleness bottleneck across all legs, since the whole basket calculation is only as fresh as its stalest leg. Null if no leg reported a timestamp."
        +}
      • addedOutput schema / properties / sell_basket_capacity_vwap_notional_usd
        Added value: +{
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
    • Changedsecurity.token_risk10 fields changed
      • addedOutput schema / properties / cannot_buy
        Added value: +{
        +  "description": "GoPlus-only, null on Honeypot.is fallback. Feeds risk_flags.",
        +  "type": [
        +    "boolean",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / cannot_sell_all
        Added value: +{
        +  "description": "GoPlus-only, null on Honeypot.is fallback. Feeds risk_flags.",
        +  "type": [
        +    "boolean",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / hidden_owner
        Added value: +{
        +  "description": "GoPlus-only, null on Honeypot.is fallback. Feeds risk_flags.",
        +  "type": [
        +    "boolean",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / is_blacklisted
        Added value: +{
        +  "description": "GoPlus-only, null on Honeypot.is fallback. Feeds risk_flags.",
        +  "type": [
        +    "boolean",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / is_proxy
        Added value: +{
        +  "description": "GoPlus-only, null on Honeypot.is fallback. Informational only - does not feed risk_flags.",
        +  "type": [
        +    "boolean",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / owner_percent
        Added value: +{
        +  "description": "Owner's % of total supply, GoPlus-only. Feeds 'high_owner_concentration' risk_flag at >=50%.",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / selfdestruct
        Added value: +{
        +  "description": "GoPlus-only, null on Honeypot.is fallback. Feeds risk_flags.",
        +  "type": [
        +    "boolean",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / slippage_modifiable
        Added value: +{
        +  "description": "GoPlus-only, null on Honeypot.is fallback. Feeds risk_flags.",
        +  "type": [
        +    "boolean",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / trading_cooldown
        Added value: +{
        +  "description": "GoPlus-only, null on Honeypot.is fallback. Informational only - does not feed risk_flags.",
        +  "type": [
        +    "boolean",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / transfer_pausable
        Added value: +{
        +  "description": "GoPlus-only, null on Honeypot.is fallback. Feeds risk_flags.",
        +  "type": [
        +    "boolean",
        +    "null"
        +  ]
        +}
    • Changedunlocks.dump_risk3 fields changed
      • addedOutput schema / properties / unlocks / items / properties / vesting_deposit_amount
        Added value: +{
        +  "description": "On-chain-only field (Sablier's depositAmount, aggregated across streams). Total amount originally scheduled to vest. Null on the DropsTab path and when unavailable.",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / unlocks / items / properties / vesting_progress_pct
        Added value: +{
        +  "description": "On-chain-only field: vesting_withdrawn_amount / vesting_deposit_amount * 100 - how far along the vesting schedule already is. Null on the DropsTab path and when deposit data wasn't available.",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / unlocks / items / properties / vesting_withdrawn_amount
        Added value: +{
        +  "description": "On-chain-only field (Sablier's withdrawnAmount, aggregated across streams). Amount already claimed/withdrawn so far. Null on the DropsTab path and when unavailable.",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
  2. 2 tool updates
    • Changeddex.liquidity_slippage4 fields changed
      • addedOutput schema / properties / assumed_gas_cost_usd
        Added value: +{
        +  "description": "Flat per-swap gas estimate for this network, not a live gas quote.",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / pool_fee_pct
        Added value: +{
        +  "description": "Swap fee tier of the selected pool, parsed from pool_name. Disclosed for reference only - not subtracted from the slippage estimate.",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / quote_token_is_stablecoin
        Added value: +{
        +  "description": "If false or null, this pool isn't USD-quoted - an extra hop is needed to reach USD, not accounted for in the slippage estimate.",
        +  "type": [
        +    "boolean",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / quote_token_symbol
        Added value: +{
        +  "description": "Parsed from pool_name (e.g. 'USDC' from 'WETH / USDC 0.05%').",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
    • Changedmarket.kimchi_alert4 fields changed
      • addedOutput schema / properties / binance_price_usdt / description
        Added value: +"Legacy field name kept for backward compatibility - NOT a live Binance price, see notice/cex_price_source."
      • addedOutput schema / properties / cex_price_source
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / cex_reference_price_usdt
        Added value: +{
        +  "description": "Same value as binance_price_usdt under an honestly-named field.",
        +  "type": "number"
        +}
      • addedOutput schema / properties / notice
        Added value: +{
        +  "type": "string"
        +}
  3. 21 tool updates
    • Removedai_markdown
    • Addedarb.spread_matrix
    • Addedcalendar.macro_dday
    • Addedderivatives.funding_apr_matrix
    • Addedderivatives.funding_rate
    • Addedderivatives.whale_position_audit
    • Removeddex_liquidity_slippage
    • Addeddex.liquidity_slippage
    • Removeddump_risk
    • Removedfunding_rate
    • Removedkimchi_alert
    • Removedmacro_dday
    • Addedmarket.kimchi_alert
    • Addedprediction.exit_capacity_audit
    • Addedprediction.neg_risk_arbitrage
    • Addedsecurity.contract_health_audit
    • Addedsecurity.token_diagnostic
    • Addedsecurity.token_risk
    • Removedtoken_risk
    • Addedtools.ai_markdown
    • Addedunlocks.dump_risk
  4. 7 tool updates
    • Changedai_markdown1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "char_count": {
        +      "type": "integer"
        +    },
        +    "markdown": {
        +      "type": "string"
        +    },
        +    "title": {
        +      "type": "string"
        +    },
        +    "url": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "url",
        +    "title",
        +    "markdown",
        +    "char_count"
        +  ],
        +  "type": "object"
        +}
    • Changeddex_liquidity_slippage1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "data_source": {
        +      "type": "string"
        +    },
        +    "estimated_slippage_pct": {
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "generated_at": {
        +      "properties": {
        +        "kst": {
        +          "type": "string"
        +        },
        +        "utc": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "utc",
        +        "kst"
        +      ],
        +      "type": "object"
        +    },
        +    "liquidity_usd": {
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "network": {
        +      "type": "string"
        +    },
        +    "notice": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "pool_address": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "pool_name": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "price_impact_model": {
        +      "type": "string"
        +    },
        +    "token_address": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "trade_size_usd": {
        +      "type": "number"
        +    },
        +    "volume_24h_usd": {
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    }
        +  },
        +  "required": [
        +    "generated_at",
        +    "network",
        +    "trade_size_usd",
        +    "price_impact_model",
        +    "data_source"
        +  ],
        +  "type": "object"
        +}
    • Changeddump_risk1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "count": {
        +      "type": "integer"
        +    },
        +    "coverage_notice": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "data_source": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "generated_at": {
        +      "properties": {
        +        "kst": {
        +          "type": "string"
        +        },
        +        "utc": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "utc",
        +        "kst"
        +      ],
        +      "type": "object"
        +    },
        +    "notice": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "protocols_scanned": {
        +      "type": "integer"
        +    },
        +    "supply_pct_threshold": {
        +      "type": "number"
        +    },
        +    "unlocks": {
        +      "items": {
        +        "properties": {
        +          "category": {
        +            "type": "string"
        +          },
        +          "data_source": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "days_until_unlock": {
        +            "type": [
        +              "number",
        +              "null"
        +            ]
        +          },
        +          "is_insider_vc_team": {
        +            "type": [
        +              "boolean",
        +              "null"
        +            ]
        +          },
        +          "onchain_contract": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "risk_level": {
        +            "type": "string"
        +          },
        +          "timing_precision": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "token": {
        +            "type": "string"
        +          },
        +          "unlock_amount": {
        +            "type": [
        +              "number",
        +              "null"
        +            ]
        +          },
        +          "unlock_date_utc": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "unlock_supply_pct": {
        +            "type": "number"
        +          },
        +          "volume_impact_pct": {
        +            "type": [
        +              "number",
        +              "null"
        +            ]
        +          }
        +        },
        +        "required": [
        +          "token",
        +          "unlock_supply_pct",
        +          "category",
        +          "risk_level"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "window_days": {
        +      "type": [
        +        "integer",
        +        "null"
        +      ]
        +    }
        +  },
        +  "required": [
        +    "generated_at",
        +    "supply_pct_threshold",
        +    "protocols_scanned",
        +    "count",
        +    "unlocks"
        +  ],
        +  "type": "object"
        +}
    • Changedfunding_rate1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "data_source": {
        +      "type": "string"
        +    },
        +    "funding_interval_hours": {
        +      "type": [
        +        "integer",
        +        "null"
        +      ]
        +    },
        +    "funding_rate": {
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "funding_rate_percentage": {
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "generated_at": {
        +      "properties": {
        +        "kst": {
        +          "type": "string"
        +        },
        +        "utc": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "utc",
        +        "kst"
        +      ],
        +      "type": "object"
        +    },
        +    "next_funding_time": {
        +      "anyOf": [
        +        {
        +          "properties": {
        +            "kst": {
        +              "type": "string"
        +            },
        +            "utc": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "utc",
        +            "kst"
        +          ],
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "notice": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "predicted_rate": {
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "symbol": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "generated_at",
        +    "symbol",
        +    "data_source"
        +  ],
        +  "type": "object"
        +}
    • Changedkimchi_alert1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "alerts": {
        +      "properties": {
        +        "premium_surge_1h": {
        +          "type": "boolean"
        +        },
        +        "reverse_premium": {
        +          "type": "boolean"
        +        }
        +      },
        +      "required": [
        +        "reverse_premium",
        +        "premium_surge_1h"
        +      ],
        +      "type": "object"
        +    },
        +    "binance_price_usdt": {
        +      "type": "number"
        +    },
        +    "generated_at": {
        +      "properties": {
        +        "kst": {
        +          "type": "string"
        +        },
        +        "utc": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "utc",
        +        "kst"
        +      ],
        +      "type": "object"
        +    },
        +    "kimchi_premium_pct": {
        +      "type": "number"
        +    },
        +    "premium_change_1h_pct": {
        +      "type": "number"
        +    },
        +    "symbol": {
        +      "type": "string"
        +    },
        +    "thresholds": {
        +      "properties": {
        +        "reverse_premium_pct": {
        +          "type": "number"
        +        },
        +        "surge_1h_pct": {
        +          "type": "number"
        +        }
        +      },
        +      "required": [
        +        "reverse_premium_pct",
        +        "surge_1h_pct"
        +      ],
        +      "type": "object"
        +    },
        +    "upbit_price_krw": {
        +      "type": "number"
        +    },
        +    "usdkrw_rate_estimate": {
        +      "type": "number"
        +    }
        +  },
        +  "required": [
        +    "generated_at",
        +    "symbol",
        +    "upbit_price_krw",
        +    "binance_price_usdt",
        +    "usdkrw_rate_estimate",
        +    "kimchi_premium_pct",
        +    "premium_change_1h_pct",
        +    "alerts",
        +    "thresholds"
        +  ],
        +  "type": "object"
        +}
    • Changedmacro_dday1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "d_day": {
        +      "type": [
        +        "integer",
        +        "null"
        +      ]
        +    },
        +    "data_source": {
        +      "type": "string"
        +    },
        +    "description": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "event_datetime": {
        +      "anyOf": [
        +        {
        +          "properties": {
        +            "kst": {
        +              "type": "string"
        +            },
        +            "utc": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "utc",
        +            "kst"
        +          ],
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "event_name": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "event_type": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "generated_at": {
        +      "properties": {
        +        "kst": {
        +          "type": "string"
        +        },
        +        "utc": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "utc",
        +        "kst"
        +      ],
        +      "type": "object"
        +    },
        +    "impact_level": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "notice": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "tags": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "time_remaining": {
        +      "anyOf": [
        +        {
        +          "properties": {
        +            "days": {
        +              "type": "integer"
        +            },
        +            "hours": {
        +              "type": "integer"
        +            },
        +            "minutes": {
        +              "type": "integer"
        +            }
        +          },
        +          "required": [
        +            "days",
        +            "hours",
        +            "minutes"
        +          ],
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "upcoming_events": {
        +      "items": {
        +        "properties": {
        +          "event_datetime": {
        +            "properties": {
        +              "kst": {
        +                "type": "string"
        +              },
        +              "utc": {
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "utc",
        +              "kst"
        +            ],
        +            "type": "object"
        +          },
        +          "event_name": {
        +            "type": "string"
        +          },
        +          "event_type": {
        +            "type": "string"
        +          },
        +          "impact_level": {
        +            "type": "string"
        +          },
        +          "tags": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          }
        +        },
        +        "required": [
        +          "event_name",
        +          "event_type",
        +          "event_datetime",
        +          "impact_level"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "generated_at",
        +    "tags",
        +    "upcoming_events",
        +    "data_source"
        +  ],
        +  "type": "object"
        +}
    • Changedtoken_risk1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "buy_tax_pct": {
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "chain_id": {
        +      "type": "integer"
        +    },
        +    "contract_address": {
        +      "type": "string"
        +    },
        +    "data_source": {
        +      "type": "string"
        +    },
        +    "generated_at": {
        +      "properties": {
        +        "kst": {
        +          "type": "string"
        +        },
        +        "utc": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "utc",
        +        "kst"
        +      ],
        +      "type": "object"
        +    },
        +    "holder_count": {
        +      "type": [
        +        "integer",
        +        "null"
        +      ]
        +    },
        +    "is_honeypot": {
        +      "type": [
        +        "boolean",
        +        "null"
        +      ]
        +    },
        +    "is_in_dex": {
        +      "type": [
        +        "boolean",
        +        "null"
        +      ]
        +    },
        +    "is_mintable": {
        +      "type": [
        +        "boolean",
        +        "null"
        +      ]
        +    },
        +    "is_open_source": {
        +      "type": [
        +        "boolean",
        +        "null"
        +      ]
        +    },
        +    "notice": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "owner_address": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "owner_renounced": {
        +      "type": [
        +        "boolean",
        +        "null"
        +      ]
        +    },
        +    "risk_flags": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "risk_level": {
        +      "type": "string"
        +    },
        +    "sell_tax_pct": {
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "token_name": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "token_symbol": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    }
        +  },
        +  "required": [
        +    "generated_at",
        +    "chain_id",
        +    "contract_address",
        +    "risk_level",
        +    "risk_flags",
        +    "data_source"
        +  ],
        +  "type": "object"
        +}
  5. 7 tool updates
    • First observedai_markdown
    • First observeddex_liquidity_slippage
    • First observeddump_risk
    • First observedfunding_rate
    • First observedkimchi_alert
    • First observedmacro_dday
    • First observedtoken_risk

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables 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.
    16
    7 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables tracking competitor websites, changelogs, blog feeds, and pricing pages with meaningful diffs, classification, and Markdown digests via MCP tools for listing, adding, removing competitors, running checks, and retrieving digests or changes.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources