Servidor MCP

cleartrace

com.cleartracedata/cleartrace
Cripto y Web3 Datos y analítica Público y accesible MCP 2025-11-25

Qué hace este MCP

Analyzes on-chain DEX execution, slippage, reverts, MEV, gas prices, transaction routing, and frontend attribution.

attribution
Cross-frontend volume attribution
Which frontend, router or interface originated on-chain DEX volume, aggregated per contract per chain. This is the dataset ClearTrace exists for: it names the venue behind volume that block explorers leave as an anonymous contract. THE VOLUME COLUMNS ARE TWO DIFFERENT KINDS AND MUST NOT BE SUMMED TOGETHER. `direct_volume_usd`, `aggregator_volume_usd`, `proxy_volume_usd` and `aggregator_partner_volume_usd` partition `total_volume_usd` between them. `calldata_suffix_volume_usd` and `erc20_fee_volume_usd` are OVERLAYS: they re-describe dollars already counted in the first group, seen through a different attribution vector. A suffix figure larger than the total is therefore correct and is not a bug. Adding an overlay to a partition column double-counts. Volumes refresh weekly and are dated to the Monday of their window, so present them as a week's volume and never as today's.
Esquema de entrada
{'type': 'object', 'title': 'attributionArguments', 'properties': {'chain': {'type': 'string', 'title': 'Chain', 'default': None, 'description': 'One of: ethereum, base, arbitrum, optimism. Omit for all four; an unrecognised value is not an error and falls back rather than failing, so pass one of the four or nothing.'}, 'limit': {'type': 'integer', 'title': 'Limit', 'default': 20, 'description': 'Rows to return, 1-100, default 20. Values outside that range are clamped, not rejected. The ceiling is deliberately low because results land in a context window, where a large page evicts the conversation.'}, 'project': {'type': 'string', 'title': 'Project', 'default': None, 'description': "Frontend or router key to filter to, e.g. 'uniswap', 'oneinch'. Omit for every attributed venue. This is the machine key, not a display name."}}}
contract_attribution
Attribution and label for one address
What ClearTrace knows about a single contract or wallet address: its per-chain volume split across the four attribution vectors, plus any label resolved for it. Most useful on the ANONYMOUS routers and proxies that aggregate views leave unnamed -- that is the differentiated question this answers. Known, named protocol contracts are often keyed by name rather than address upstream and may return nothing here, so an empty result for a famous router is not evidence the address is obscure. An address that resolves to no label is reported with a null label. Report that as 'not identified', which is what it means: these are genuinely anonymous deployments, and guessing an operator from volume or deployer alone has been wrong before.
Esquema de entrada
{'type': 'object', 'title': 'contract_attributionArguments', 'required': ['address'], 'properties': {'chain': {'type': 'string', 'title': 'Chain', 'default': None, 'description': "One of: ethereum, base, arbitrum, optimism. Omit to return the address's split across all four, which is usually what you want, since the same deployment often appears on several."}, 'address': {'type': 'string', 'title': 'Address', 'description': 'A single contract or wallet address, 0x-prefixed hex. Case-insensitive; checksummed or lowercase both work. One address per call.'}}}
execution_benchmarks
DEX and aggregator execution benchmark
Rank DEXs and aggregators by realized execution quality: median slippage against a minute-level off-chain reference price (Dune prices.usd, an interpolated 5-minute exchange-aggregate feed and not a VWAP), expressed as a score of 0-100 (higher means less slippage). This score measures SLIPPAGE ONLY. Revert rates and MEV exposure are tracked as separate metrics and are deliberately not folded in, so do not present this as an overall 'best execution' ranking -- a venue can score well here and fail often, and the caller has to ask `revert_rates` to find that out. Execution quality is not uniform across chains: pass a chain for a single-chain ranking, or 'all' for the blended cross-chain rollup, and do not describe the blend as if it were one chain's result.
Esquema de entrada
{'type': 'object', 'title': 'execution_benchmarksArguments', 'properties': {'chain': {'type': 'string', 'title': 'Chain', 'default': 'all', 'description': "One of: ethereum, base, arbitrum, optimism, or 'all' (the default) for the blended cross-chain rollup. Do not describe the blend as one chain's result."}, 'limit': {'type': 'integer', 'title': 'Limit', 'default': 20, 'description': 'Rows to return, 1-100, default 20. Values outside that range are clamped, not rejected. The ceiling is deliberately low because results land in a context window, where a large page evicts the conversation.'}}}
explain_transaction
Explain one transaction's routing and origin
Classify a single transaction against the attribution engine: which frontend or router originated the trade and by which evidence, the pools it touched, any fee recipients, and whether it was sandwiched. Confidence is per-vector and is reported per result -- a calldata suffix is strong evidence a specific frontend tagged the swap, while a fee recipient is indirect evidence and is never rated high. Pass that qualification through instead of stating the frontend flatly. `estimated_volume_usd` (only with price=true) is a best-effort spot price on the dominant leg. It is an approximation for orientation and must never be quoted as a settlement figure. Fee amounts are exact raw token integers with no decimals or pricing applied. deep=true costs more upstream credits; leave it off unless a shallow classification came back unattributed.
Esquema de entrada
{'type': 'object', 'title': 'explain_transactionArguments', 'required': ['tx_hash'], 'properties': {'deep': {'type': 'boolean', 'title': 'Deep', 'default': False, 'description': 'Run the deeper classification pass. Slower. Worth setting only when the default pass came back unattributed.'}, 'chain': {'type': 'string', 'title': 'Chain', 'default': 'ethereum', 'description': "One of: ethereum, base, arbitrum, optimism. Defaults to ethereum, and an unrecognised value falls back to ethereum rather than failing, so pass the transaction's actual chain explicitly."}, 'price': {'type': 'boolean', 'title': 'Price', 'default': False, 'description': 'Include price and value context alongside the routing classification.'}, 'tx_hash': {'type': 'string', 'title': 'Tx Hash', 'description': 'The transaction hash, 0x-prefixed hex. Must exist on `chain`: this does not search the other chains, so a hash from the wrong chain returns nothing rather than an error.'}}}
gas_prices
Live gas prices per chain
Current gas price on each supported chain, from RPC. On the L2s (Base, Arbitrum, Optimism) this is the EXECUTION gas price only and excludes the L1 data availability fee, which is a real and sometimes dominant part of an L2 transaction's cost. Any cost estimate built from this figure on an L2 is a lower bound and should be labelled as one; comparing an L2 'cost' against Ethereum's on this basis overstates the L2's advantage.
Esquema de entrada
{'type': 'object', 'title': 'gas_pricesArguments', 'properties': {}}
request_api_key
Get a free ClearTrace API key
Mint a free API key that multiplies this server's rate limits by 10x. Requires an email address. The key changes LIMITS ONLY. Every figure served here is public and identical with or without one, there is no paid tier, and no data is gated behind it -- so present this as raising a ceiling, never as unlocking content. Ask the user before submitting their email; do not invent an address to satisfy the argument. The key is returned once and cannot be shown again, so surface it to the user verbatim.
Esquema de entrada
{'type': 'object', 'title': 'request_api_keyArguments', 'required': ['email'], 'properties': {'name': {'type': 'string', 'title': 'Name', 'default': None, 'description': "Optional. The user's name."}, 'email': {'type': 'string', 'title': 'Email', 'description': "The user's own email address. ASK THEM FOR IT; never invent one to satisfy this argument. The key is mailed nowhere and returned once in the response, so this is a lead record, not a delivery channel."}, 'company': {'type': 'string', 'title': 'Company', 'default': None, 'description': 'Optional. Where they work.'}, 'use_case': {'type': 'string', 'title': 'Use Case', 'default': None, 'description': 'Optional, one line on what they are building. The single most useful field here.'}}}
revert_rates
On-chain transaction revert rates
The share of a venue's routing transactions that fail on-chain, per chain. Reported separately from slippage because reliability and price are different questions. DO NOT RANK ACROSS EXECUTION MODELS. A revert rate measures reliability only where the failing transaction is the user's own -- a 'router' venue, where the user signs and submits the swap. On a batch-auction or intent venue a solver settles, and an order that cannot be filled never becomes a transaction at all, so its on-chain revert rate is structurally near zero no matter how well or badly it fills. Sorting every venue by revert rate puts those at the top and means nothing. `comparable_only` (the default) returns only the rows that may legitimately be ranked against each other. Read `user_revert_rate_pct` when present: the headline rate on some cells stays inflated by address-rotating spam senders that no per-sender filter separates cleanly, and the user-only figure is the measured genuine-user experience. Each row carries its `execution_model` and a `revert_comparable` flag; quote them.
Esquema de entrada
{'type': 'object', 'title': 'revert_ratesArguments', 'properties': {'chain': {'type': 'string', 'title': 'Chain', 'default': None, 'description': 'One of: ethereum, base, arbitrum, optimism. Omit for all four; an unrecognised value is not an error and falls back rather than failing, so pass one of the four or nothing.'}, 'limit': {'type': 'integer', 'title': 'Limit', 'default': 20, 'description': 'Rows to return, 1-100, default 20. Values outside that range are clamped, not rejected. The ceiling is deliberately low because results land in a context window, where a large page evicts the conversation.'}, 'project': {'type': 'string', 'title': 'Project', 'default': None, 'description': "Venue key to filter to, e.g. 'uniswap', 'oneinch'. Omit for every venue. Match the `project` value returned by this or `attribution`; it is not a display name."}, 'comparable_only': {'type': 'boolean', 'title': 'Comparable Only', 'default': True, 'description': 'Default true, and leave it true unless you know why not. It restricts rows to venues whose execution model makes a revert rate comparable at all. Setting it false returns batch-auction and intent venues whose near-zero on-chain revert rate is structural, not a reliability signal, and ranking those against routers is the error this flag exists to prevent.'}}}
Modificado
execution_benchmarks
27 de September de 2026 a las 02:52
Añadido
request_api_key
17 de September de 2026 a las 12:34
Añadido
gas_prices
17 de September de 2026 a las 12:34
Añadido
explain_transaction
17 de September de 2026 a las 12:34
Añadido
contract_attribution
17 de September de 2026 a las 12:34
Añadido
attribution
17 de September de 2026 a las 12:34
Añadido
revert_rates
17 de September de 2026 a las 12:34
Añadido
execution_benchmarks
17 de September de 2026 a las 12:34