Tools Reference

The DeFiStream MCP server exposes 12 tools — 5 protocol query builders and 7 utility tools.


Typical workflow

An agent will usually follow this pattern:

  1. Discover — Call supported_networks or supported_events to verify a protocol/network combination is valid
  2. Build — Use a query builder to construct the query path
  3. Check cost (optional) — Call calculate_cost to preview the block cost before executing
  4. Execute — Pass the query path to execute_query (for inline CSV results) or download_query_as_link (for CSV/Parquet download links)

Query Builders

Each builder returns a query path string. Pass it to execute_query or download_query_as_link to get results.

erc20_query_builder

Build queries for ERC-20 token events (USDT, USDC, WETH, DAI, etc.).

ParameterTypeRequiredDescription
event_typestringYesEvent type (e.g. "transfer")
networkstringYesNetwork identifier (e.g. "ETH", "ARB", "BASE")
tokenstringYesToken symbol, comma-separated symbols, or contract address
decimalsintNoToken decimals (required when using a custom contract address)
senderstringNoFilter by sender address (comma-separated for multiple)
receiverstringNoFilter by receiver address (comma-separated for multiple)
involvingstringNoFilter by any involved address
min_amountnumberNoMinimum transfer amount
max_amountnumberNoMaximum transfer amount

Plus all common parameters.

native_token_query_builder

Build queries for native blockchain token transfers (ETH, MATIC, BNB, etc.).

ParameterTypeRequiredDescription
event_typestringYesEvent type (e.g. "transfer")
networkstringYesNetwork identifier
senderstringNoFilter by sender address
receiverstringNoFilter by receiver address
involvingstringNoFilter by any involved address
min_amountnumberNoMinimum transfer amount
max_amountnumberNoMaximum transfer amount

Plus all common parameters.

aave_query_builder

Build queries for AAVE V3 lending protocol events.

ParameterTypeRequiredDescription
event_typestringYes"deposit", "withdraw", "borrow", "repay", "flashloan", or "liquidation"
networkstringYesNetwork identifier
eth_market_typestringNoAAVE market type on ETH: "Core", "Prime", or "EtherFi"
involvingstringNoFilter by any involved address

Plus all common parameters.

uniswap_query_builder

Build queries for Uniswap V3 DEX events.

ParameterTypeRequiredDescription
event_typestringYes"swap", "deposit", "withdraw", or "collect"
networkstringYesNetwork identifier
symbol0stringYesFirst token symbol in the pool (e.g. "WETH")
symbol1stringYesSecond token symbol in the pool (e.g. "USDC")
feeintYesPool fee tier: 100, 500, 3000, or 10000
involvingstringNoFilter by any involved address

Plus all common parameters.

lido_query_builder

Build queries for Lido liquid staking events.

ParameterTypeRequiredDescription
event_typestringYes"deposit", "withdrawal_request", "withdrawal_claimed", "l2_deposit", or "l2_withdrawal_request"
networkstringYesNetwork identifier (e.g. "ETH", "ARB", "BASE", "OP")
involvingstringNoFilter by any involved address

Plus all common parameters.


Common Parameters

These parameters are shared across all query builders:

ParameterTypeDefaultDescription
block_startintStarting block number
block_endintEnding block number
sincestringStart time (ISO 8601 or Unix timestamp)
untilstringEnd time (ISO 8601 or Unix timestamp)
verboseboolfalseInclude all metadata fields (tx_hash, log_index, etc.)
with_valueboolfalseEnrich events with USD value data
aggregateboolfalseReturn aggregated results instead of raw events
group_bystring"time"Bucket grouping — "time" or "block_number" (aggregate only)
periodstring"1h"Bucket size, e.g. "1h", "1d", "30m" for time; "1000" for blocks (aggregate only)
involving_labelstringFilter by entity label substring (e.g. "Binance")
involving_categorystringFilter by address category (e.g. "exchange")
sender_labelstringFilter sender by label
sender_categorystringFilter sender by category
receiver_labelstringFilter receiver by label
receiver_categorystringFilter receiver by category

Note: Use either block ranges (block_start/block_end) or time ranges (since/until), not both.


Utility Tools

supported_networks

Get the list of supported blockchain networks for a protocol.

supported_networks(protocol: string)

protocol values: erc20, native_token, aave, uniswap, lido

supported_events

Get the list of supported event types for a protocol.

supported_events(protocol: string)

base_url

Get the DeFiStream API base URL. Combine with a query path from any builder to form the full API URL.

base_url()

execute_query

Execute a query and return CSV results directly. Best for small to medium result sets.

execute_query(query: string, api_key: string)
ParameterTypeDefaultDescription
querystringQuery path from a query builder
api_keystringYour DeFiStream API key

calculate_cost

Calculate the cost of a query before executing it (dry-run). Returns the block cost, your remaining quota, and a breakdown. Does not deduct from your quota.

calculate_cost(query: string, api_key: string)
ParameterTypeDefaultDescription
querystringQuery path from a query builder
api_keystringYour DeFiStream API key

Get a shareable download link for query results. Supports unlimited block ranges. Links expire in 1 hour.

download_query_as_link(query: string, api_key: string, file_format?: string)
ParameterTypeDefaultDescription
querystringQuery path from a query builder
api_keystringYour DeFiStream API key
file_formatstring"csv"Output format: "csv" or "parquet"

query_local_execution_guide

Get code snippets for executing a query locally (curl, Python, JavaScript, and the Python client library).

query_local_execution_guide(query: string)