{"data":{"name":"io.github.HASAVAGE/teardrop","title":null,"description":"Teardrop MCP gateway: paid tools for autonomous agents (x402, credits).","version":"1.0.0","websiteUrl":null,"repositoryUrl":"https://github.com/teardrop-ai/teardrop","remotes":[{"url":"https://api.teardrop.dev/tools/mcp","type":"streamable-http"}],"packages":[],"status":"active","isLatest":true,"publishedAt":"2026-10-13T04:36:00.210Z","updatedAt":"2026-10-13T04:36:00.210Z","source":"official-registry","verification":"official","confidence":100,"stars":null,"sources":[{"stars":null,"title":null,"source":"official-registry","sourceId":"io.github.HASAVAGE/teardrop","updatedAt":"2026-10-13T04:36:00.210Z","confidence":100,"websiteUrl":null,"description":"Teardrop MCP gateway: paid tools for autonomous agents (x402, credits).","verification":"official","repositoryUrl":"https://github.com/teardrop-ai/teardrop"}],"toolIndex":{"tools":[{"serverName":"io.github.HASAVAGE/teardrop","endpointFingerprint":"48ba02cc5d99f7ac024ac628e51bf03bf367217b518026b31117900caaa9d71d","name":"assess_counterparty_risk","title":"Assess Counterparty Risk","description":"Return a decision-ready counterparty-risk verdict for an EVM address before funds or authority are committed. The result branches to high_risk, caution, acceptable, or insufficient_data with the evidence needed for the calling agent to act.\n\nUse when: Delegate this check before sending funds, granting approvals, or interacting with an unknown EVM address when the caller needs a bounded risk decision.\n\nLimitations: Analytics and heuristic risk assessment; not a credit bureau, fraud guarantee, or legal endorsement. Relies on DeBank indexing and on-chain Aave/Compound contract states.\n\nAlternatives: get_wallet_approvals, get_liquidation_risk, get_wallet_positions","inputSchema":{"type":"object","properties":{"wallet_address":{"description":"EVM wallet address (0x-prefixed)","title":"Wallet Address","type":"string"},"chain_ids":{"default":["eth","base"],"description":"DeBank chain identifiers scoping approvals and history; positions and net worth remain all-chain.","items":{"type":"string"},"title":"Chain Ids","type":"array"}},"required":["wallet_address"],"title":"mcp_assess_counterparty_riskArguments"},"annotations":{"readOnlyHint":true},"definitionHash":"bf5853a36089a6e63891e29554300e895880333285ebd302404e4c3984c11ebe","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T14:46:27.370Z","metadataTrust":"untrusted"},{"serverName":"io.github.HASAVAGE/teardrop","endpointFingerprint":"48ba02cc5d99f7ac024ac628e51bf03bf367217b518026b31117900caaa9d71d","name":"assess_market_resolution","title":"Assess Market Resolution","description":"Return a decision-ready resolution-risk verdict for one Polymarket market before an agent trades, quotes, or forecasts it. The result branches to tradeable, ambiguous, avoid, or insufficient_data and names the resolution basis (price_feed, official_source, media_consensus, unspecified), UMA dispute state, rule-wording risks, and executability (liquidity, spread) so the calling agent can act without reading the full rules.\n\nUse when: Call once per market before placing, quoting, or forecasting a Polymarket position when the caller needs to know whether the rules and resolution state make the outcome well-defined. Repeat calls within two minutes return cached data.\n\nLimitations: Heuristic analysis of Polymarket rule wording and Gamma API state; not a probability forecast, legal advice, or a guarantee of how UMA voters resolve. Does not read order-book depth, event-level augmented negative-risk settings, or clarifications published off-platform.\n\nAlternatives: web_search, http_fetch","inputSchema":{"type":"object","properties":{"market":{"description":"Polymarket market slug (e.g. 'will-bitcoin-reach-150k-in-2026'), numeric Gamma market id, or a polymarket.com market URL (the last path segment is used).","title":"Market","type":"string"}},"required":["market"],"title":"mcp_assess_market_resolutionArguments"},"annotations":{"readOnlyHint":true},"definitionHash":"1cd833fa2d86edab52b87474a3b3c93cf8b4d3e3587fd4089f9111db2ea3cd0d","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T14:46:27.370Z","metadataTrust":"untrusted"},{"serverName":"io.github.HASAVAGE/teardrop","endpointFingerprint":"48ba02cc5d99f7ac024ac628e51bf03bf367217b518026b31117900caaa9d71d","name":"calculate","title":"Calculate","description":"Evaluate a safe arithmetic expression and return the numeric result. Supports +,-,*,/,**,%,sqrt,abs,round,floor,ceil,log,sin,cos,tan,pi,e. Use for derived figures (ratios, differences, percentages) that no tool output already provides.\n\nUse when: Use when an agent must derive a value that tool outputs do not already include, such as a ratio, spread, or percentage. Do not use to re-derive pre-computed fields like std_30d or dca_baseline_90d that get_token_price_historical returns.\n\nLimitations: Arithmetic only — no aggregation over tool history, no unit conversion, and no financial modeling beyond the listed functions. Errors return an error field rather than raising.\n\nAlternatives: get_token_price_historical, get_datetime","inputSchema":{"type":"object","properties":{"expression":{"description":"A safe arithmetic expression, e.g. '(3 + 4) * 2 / sqrt(9)'","maxLength":200,"title":"Expression","type":"string"}},"required":["expression"],"title":"mcp_calculateArguments"},"annotations":{"readOnlyHint":true},"definitionHash":"22ab3258dbd6d2de98b5134fe73e551f89ec378528a6c71c8cc07e00e5f5d3a7","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T14:46:27.370Z","metadataTrust":"untrusted"},{"serverName":"io.github.HASAVAGE/teardrop","endpointFingerprint":"48ba02cc5d99f7ac024ac628e51bf03bf367217b518026b31117900caaa9d71d","name":"convert_currency","title":"Convert Currency","description":"Convert an amount between fiat currencies (USD, EUR, GBP) and crypto assets (BTC, ETH, USDC, SOL) and return the converted amount plus the exchange rate used.\n\nUse when: Use when an amount must be expressed in a different currency than the source data — for example converting a USD portfolio value into EUR, or a fiat amount into its crypto equivalent. For prices only, get_token_price returns the rate directly without a second call.\n\nLimitations: Spot-rate conversion at request time; no historical or forward rates, and no slippage or fee modeling. Actual swap execution differs — use get_dex_quote for executable on-chain quotes.\n\nAlternatives: get_token_price, get_dex_quote","inputSchema":{"type":"object","properties":{"amount":{"description":"Amount to convert","exclusiveMinimum":0,"title":"Amount","type":"number"},"from_currency":{"description":"Source currency (e.g. 'ETH', 'USD', 'BTC')","maxLength":20,"minLength":1,"title":"From Currency","type":"string"},"to_currency":{"description":"Target currency (e.g. 'USD', 'EUR', 'BTC')","maxLength":20,"minLength":1,"title":"To Currency","type":"string"}},"required":["amount","from_currency","to_currency"],"title":"mcp_convert_currencyArguments"},"annotations":{"readOnlyHint":true},"definitionHash":"3cf6da47dc4804c978db676894f50c8fabc96032d848344c516fb7355aa0dadd","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T14:46:27.370Z","metadataTrust":"untrusted"},{"serverName":"io.github.HASAVAGE/teardrop","endpointFingerprint":"48ba02cc5d99f7ac024ac628e51bf03bf367217b518026b31117900caaa9d71d","name":"count_text_stats","title":"Count Text Stats","description":"Return word, character, sentence, and paragraph counts plus average words per sentence for a given text, for length checks and content sizing decisions.\n\nUse when: Use when output length must be validated or reported — e.g. verifying a summary meets a length contract or comparing document sizes. Do not use for semantic summarization; it counts only.\n\nLimitations: Pure counting on the provided text — no language detection, no reading-level or sentiment analysis, and no retrieval of external content.\n\nAlternatives: web_search, http_fetch","inputSchema":{"type":"object","properties":{"text":{"description":"Text to summarize","maxLength":10000,"title":"Text","type":"string"}},"required":["text"],"title":"mcp_count_text_statsArguments"},"annotations":{"readOnlyHint":true},"definitionHash":"7a4ca8f6a318d08211cf19679a2bc2db21963b96cc9e9b538cf273241532101f","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T14:46:27.370Z","metadataTrust":"untrusted"},{"serverName":"io.github.HASAVAGE/teardrop","endpointFingerprint":"48ba02cc5d99f7ac024ac628e51bf03bf367217b518026b31117900caaa9d71d","name":"decode_transaction","title":"Decode Transaction","description":"Decode a transaction's calldata into a human-readable function name and arguments, and return transaction status (1=success, 0=revert), gas used, and block number. Uses a supplied ABI when provided, otherwise 4byte.directory. Supports Ethereum mainnet and Base.\n\nUse when: Use when one known transaction must be explained — what function was called, with what arguments, and whether it succeeded. For wallet-wide activity patterns use get_wallet_history instead.\n\nLimitations: 4byte.directory matching can be ambiguous or absent for custom contracts; supply an ABI for precise decoding. One transaction per call; Ethereum mainnet and Base only.\n\nAlternatives: get_transaction, get_wallet_history","inputSchema":{"type":"object","properties":{"tx_hash":{"description":"Transaction hash (0x… 64 hex chars)","title":"Tx Hash","type":"string"},"chain_id":{"default":1,"description":"Chain ID (1=Ethereum, 8453=Base)","title":"Chain Id","type":"integer"},"abi_json":{"anyOf":[{"maxLength":65536,"type":"string"},{"type":"null"}],"default":null,"description":"Optional ABI JSON array for decoding. If omitted, 4byte.directory is used.","title":"Abi Json"}},"required":["tx_hash"],"title":"mcp_decode_transactionArguments"},"annotations":{"readOnlyHint":true},"definitionHash":"0416534dc2e25bcc75c656b1502d830a7c6598f36fe943fc35df258045f33777","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T14:46:27.370Z","metadataTrust":"untrusted"},{"serverName":"io.github.HASAVAGE/teardrop","endpointFingerprint":"48ba02cc5d99f7ac024ac628e51bf03bf367217b518026b31117900caaa9d71d","name":"delegate_to_agent","title":"Delegate To Agent","description":"Delegate a task to a remote A2A-compliant agent: discover its capabilities via its agent card, send it a message, handle payment, and return the result. Use only when no local platform tool can fulfil the request.\n\nUse when: Use when a task requires specialist capabilities beyond the local tool set. Call discover_agents first when the remote agent URL is unknown. Do not retry unchanged after error_type=advertised_price_exceeds_cap; pick another result or adjust the cap.\n\nLimitations: Requires an allowlisted remote URL and sufficient delegation budget; the remote agent's price and capability claims are read from its card and are not independently verified. Involves real payment.\n\nAlternatives: discover_agents, web_search","inputSchema":{"type":"object","properties":{"agent_url":{"description":"Base URL of the remote A2A agent (e.g. https://agent.example.com)","maxLength":2000,"minLength":10,"title":"Agent Url","type":"string"},"task_description":{"description":"Natural language description of the task to delegate","maxLength":4096,"minLength":1,"title":"Task Description","type":"string"},"task_type":{"default":"general","description":"Broad task class for routing telemetry; never include user data or task text.","enum":["general","research","analysis","data_retrieval","coding","transaction","automation"],"title":"Task Type","type":"string"}},"required":["agent_url","task_description"],"title":"mcp_delegate_to_agentArguments"},"annotations":{"readOnlyHint":false,"idempotentHint":false,"openWorldHint":true},"definitionHash":"54a1173fd497939de86f835e68ec0f437d2c4f7ab349988d1f27fbd18d9192d8","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T14:46:27.370Z","metadataTrust":"untrusted"},{"serverName":"io.github.HASAVAGE/teardrop","endpointFingerprint":"48ba02cc5d99f7ac024ac628e51bf03bf367217b518026b31117900caaa9d71d","name":"discover_agents","title":"Discover Agents","description":"Find opt-in remote A2A agents, published tool capabilities, endpoints, and public reputation status.\n\nUse when: Use before delegate_to_agent when a specialist agent is needed but its URL is unknown.\n\nLimitations: Discovery is read-only and does not add an agent to the org allowlist; delegate_to_agent remains authoritative.\n\nAlternatives: delegate_to_agent","inputSchema":{"type":"object","properties":{"q":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Optional search across agent name, organization slug, or published tool name","title":"Q"},"limit":{"default":20,"description":"Maximum number of agents to return","maximum":50,"minimum":1,"title":"Limit","type":"integer"}},"title":"mcp_discover_agentsArguments"},"annotations":{"readOnlyHint":true},"definitionHash":"154a6373bdfb11d62299beee50cee0b0809c29a7144d51c01de16b97dd589975","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T14:46:27.370Z","metadataTrust":"untrusted"},{"serverName":"io.github.HASAVAGE/teardrop","endpointFingerprint":"48ba02cc5d99f7ac024ac628e51bf03bf367217b518026b31117900caaa9d71d","name":"get_block","title":"Get Block","description":"Get block details (timestamp, gas used, base fee, miner, transaction count) for an Ethereum or Base block by number, hash, or 'latest'. Use to anchor events to a point in chain time.\n\nUse when: Use when a question depends on when a block occurred, how full it was, or its base fee — for example dating a transaction or checking congestion at a specific height. For current fee levels use get_gas_price instead.\n\nLimitations: One block per call; Ethereum mainnet and Base only. Historical base fee data depends on RPC node retention for older heights.\n\nAlternatives: get_transaction, get_gas_price","inputSchema":{"type":"object","properties":{"block_identifier":{"default":"latest","description":"Block number, block hash, or 'latest'/'earliest'/'pending'","title":"Block Identifier","type":"string"},"chain_id":{"default":1,"description":"Chain ID (1=Ethereum, 8453=Base)","title":"Chain Id","type":"integer"}},"title":"mcp_get_blockArguments"},"annotations":{"readOnlyHint":true},"definitionHash":"187d3c803ff2c39416310c85168c6822c879ec9e993ccd90f382bb84e6bea7eb","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T14:46:27.370Z","metadataTrust":"untrusted"},{"serverName":"io.github.HASAVAGE/teardrop","endpointFingerprint":"48ba02cc5d99f7ac024ac628e51bf03bf367217b518026b31117900caaa9d71d","name":"get_chain_metrics","title":"Get Chain Metrics","description":"Compare blockchain ecosystem health via DeFiLlama: current TVL, 7/30-day TVL change, and aggregate fee activity. Pass chains such as ['Ethereum', 'Arbitrum', 'Solana'] for a focused comparison, or omit chains to inspect the highest-TVL ecosystems.\n\nUse when: Use for ecosystem-level comparisons — which chains are growing, where fee activity concentrates, or how a chain's TVL trended. For a single protocol's economics use get_protocol_tvl instead.\n\nLimitations: Third-party DeFiLlama analytics; historical and fee fields fail open (null) for uncovered chains. Not a real-time measure of chain throughput or security.\n\nAlternatives: get_protocol_tvl, get_dex_volume","inputSchema":{"type":"object","properties":{"chains":{"anyOf":[{"items":{"type":"string"},"maxItems":50,"type":"array"},{"type":"null"}],"default":null,"description":"Optional chain names to compare, such as ['Ethereum', 'Arbitrum', 'Solana']. When omitted, return the highest-TVL chains up to limit.","title":"Chains"},"days":{"default":30,"description":"Lookback window used when selecting the historical TVL points to inspect.","maximum":365,"minimum":7,"title":"Days","type":"integer"},"limit":{"default":20,"description":"Maximum number of chain rows to return when the result is not explicitly filtered.","maximum":50,"minimum":1,"title":"Limit","type":"integer"}},"title":"mcp_get_chain_metricsArguments"},"annotations":{"readOnlyHint":true},"definitionHash":"a43b5fe41816a2f7eb2c38d511228699aa3da2b6fb3344c83cc956c247b308dd","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T14:46:27.370Z","metadataTrust":"untrusted"},{"serverName":"io.github.HASAVAGE/teardrop","endpointFingerprint":"48ba02cc5d99f7ac024ac628e51bf03bf367217b518026b31117900caaa9d71d","name":"get_datetime","title":"Get Datetime","description":"Return the current UTC date and time as a formatted string and ISO 8601 timestamp, for grounding time-relative reasoning in the actual clock rather than training-data assumptions.\n\nUse when: Use when a task must anchor on the current date or time — computing ages, windows, deadlines, or 'as of today' context. The runtime context block already states the date, so call this only when a specific strftime format or a precise timestamp is needed.\n\nLimitations: UTC only — no timezone conversion. An unsupported strftime format silently falls back to the default format instead of erroring.\n\nAlternatives: calculate, get_block","inputSchema":{"type":"object","properties":{"format":{"default":"%Y-%m-%d %H:%M:%S UTC","description":"strftime format string for the output","maxLength":100,"title":"Format","type":"string"}},"title":"mcp_get_datetimeArguments"},"annotations":{"readOnlyHint":true},"definitionHash":"f7f7f2b88550b5c0b3f831d6875b297f3ab12018fec1df52ebf857c8778d62ba","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T14:46:27.370Z","metadataTrust":"untrusted"},{"serverName":"io.github.HASAVAGE/teardrop","endpointFingerprint":"48ba02cc5d99f7ac024ac628e51bf03bf367217b518026b31117900caaa9d71d","name":"get_defi_positions","title":"Get Defi Positions","description":"Block-accurate DeFi positions for a wallet across Aave v3, Compound v3, Uniswap v3 LP, and Lido on Ethereum or Base. Returns Aave account health (collateral, debt, health factor, LTV) with per-reserve breakdown, Compound v3 market positions, Uniswap v3 LP positions by token ID, and on Ethereum the Lido stETH/wstETH balances with the current wstETH-to-stETH equivalent. Per-protocol failures are isolated — other protocols still return.\n\nUse when: Use when a block-accurate single-wallet protocol snapshot is needed, including health factor and LP position detail. For broad all-chain discovery or net worth across many protocols use get_wallet_positions instead.\n\nLimitations: On-chain RPC view of four protocol families on Ethereum and Base only; does not discover wallets' unknown or long-tail protocol positions. Compound v3 reports only a boolean liquidation flag — never state a numeric Compound health factor. Errors list which protocols were unavailable.\n\nAlternatives: get_wallet_positions, get_liquidation_risk, get_wallet_portfolio","inputSchema":{"type":"object","properties":{"wallet_address":{"description":"Wallet address (0x…)","title":"Wallet Address","type":"string"},"chain_id":{"default":1,"description":"Chain ID (1=Ethereum, 8453=Base)","title":"Chain Id","type":"integer"}},"required":["wallet_address"],"title":"mcp_get_defi_positionsArguments"},"annotations":{"readOnlyHint":true},"definitionHash":"6d15253fc393a78c9dd09c65b59ca3d0d328b574bd0cc3844fa955d1a84fb304","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T14:46:27.370Z","metadataTrust":"untrusted"},{"serverName":"io.github.HASAVAGE/teardrop","endpointFingerprint":"48ba02cc5d99f7ac024ac628e51bf03bf367217b518026b31117900caaa9d71d","name":"get_dex_quote","title":"Get Dex Quote","description":"Get the best Uniswap v3 swap quote on Ethereum (chain_id=1) or Base (chain_id=8453) via direct on-chain QuoterV2 calls. Queries all four fee tiers (100/500/3000/10000 bps) in parallel and returns the tier with the highest output amount, along with per-tier breakdown. Inputs are raw uint256 amounts and EIP-55 checksummed addresses; native ETH is not quoted directly — pass the WETH address. Returns no_liquidity=true when no pool exists for the pair. Point-in-time quote at the returned block_number; do not cache.\n\nUse when: Choose when you need a best-execution Uniswap v3 swap quote on Ethereum or Base before executing a trade — e.g. price impact, output amount, or route selection.\n\nLimitations: Quotes raw uint256 amounts with EIP-55 checksummed addresses only; native ETH is not quoted directly (pass WETH). Point-in-time at the returned block_number — do not cache.\n\nAlternatives: get_token_price, get_dex_volume","inputSchema":{"type":"object","properties":{"token_in":{"description":"EIP-55 checksummed address of the token being sold. For native ETH, pass the WETH address (Ethereum: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; Base: 0x4200000000000000000000000000000000000006).","title":"Token In","type":"string"},"token_out":{"description":"EIP-55 checksummed address of the token being bought.","title":"Token Out","type":"string"},"amount_in":{"description":"Input amount in RAW uint256 units (e.g. '1000000' for 1 USDC, '1000000000000000000' for 1 WETH). Must be > 0 and < 2^128. Common token decimals: WETH/ETH/DAI/wstETH/cbETH/weETH 18, WBTC/cbBTC 8, USDC/USDT 6. Do not call read_contract to look up decimals — use these values directly.","title":"Amount In","type":"string"},"chain_id":{"default":1,"description":"1 = Ethereum mainnet, 8453 = Base mainnet. Other chains unsupported.","title":"Chain Id","type":"integer"}},"required":["token_in","token_out","amount_in"],"title":"mcp_get_dex_quoteArguments"},"annotations":{"readOnlyHint":true},"definitionHash":"cc88cbdb086b2570dd0f0e7f1e7a6005a17b6e14db0bab36bbcef554c8ef3660","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T14:46:27.370Z","metadataTrust":"untrusted"},{"serverName":"io.github.HASAVAGE/teardrop","endpointFingerprint":"48ba02cc5d99f7ac024ac628e51bf03bf367217b518026b31117900caaa9d71d","name":"get_dex_volume","title":"Get Dex Volume","description":"Compare decentralized exchange activity via DeFiLlama: 24h/7d/30-day volume, period-over-period changes, and each protocol's share of reported global 24-hour DEX volume. Filter by protocol and rank by a 1-, 7-, or 30-day lookback window.\n\nUse when: Use for landscape questions — which DEXs dominate volume, how activity shifted week-over-week, or a specific protocol's relative share. For executable swap pricing use get_dex_quote instead.\n\nLimitations: Third-party DeFiLlama reporting, not on-chain truth; coverage gaps understate smaller protocols. 24-hour share is computed against the unfiltered global total, so filtered results retain landscape context.\n\nAlternatives: get_dex_quote, get_chain_metrics","inputSchema":{"type":"object","properties":{"protocols":{"anyOf":[{"items":{"type":"string"},"maxItems":50,"type":"array"},{"type":"null"}],"default":null,"description":"Optional protocol names or DeFiLlama slugs, such as ['uniswap-v3', 'curve-dex']. When omitted, return the largest DEX protocols.","title":"Protocols"},"lookback_days":{"default":30,"description":"Window used to rank the returned protocols: 1, 7, or 30 days (nearest supported window is used).","maximum":30,"minimum":1,"title":"Lookback Days","type":"integer"},"limit":{"default":20,"description":"Maximum number of DEX protocols to return.","maximum":50,"minimum":1,"title":"Limit","type":"integer"}},"title":"mcp_get_dex_volumeArguments"},"annotations":{"readOnlyHint":true},"definitionHash":"31605e37433f7a1d8e3ca1132a60ed987cd1d34d584bd596b6addb6da46ab721","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T14:46:27.370Z","metadataTrust":"untrusted"},{"serverName":"io.github.HASAVAGE/teardrop","endpointFingerprint":"48ba02cc5d99f7ac024ac628e51bf03bf367217b518026b31117900caaa9d71d","name":"get_erc20_balance","title":"Get Erc20 Balance","description":"Get the exact on-chain ERC-20 balance of a wallet for one token contract, normalized by decimals and returned with the token's symbol. Use for a precise single-token check.\n\nUse when: Use when a specific token contract's balance must be verified block-accurately — e.g. confirming funds before an approval or transfer. For a multi-asset portfolio view use get_wallet_portfolio instead.\n\nLimitations: One token contract per call on Ethereum or Base; the contract address is required, so unknown tokens cannot be looked up by symbol. Returns raw balance data only — no USD valuation.\n\nAlternatives: get_wallet_portfolio, get_eth_balance","inputSchema":{"type":"object","properties":{"wallet_address":{"description":"Wallet address (0x…)","title":"Wallet Address","type":"string"},"token_address":{"description":"ERC-20 token contract address (0x…)","title":"Token Address","type":"string"},"chain_id":{"default":1,"description":"Chain ID (1=Ethereum, 8453=Base)","title":"Chain Id","type":"integer"}},"required":["wallet_address","token_address"],"title":"mcp_get_erc20_balanceArguments"},"annotations":{"readOnlyHint":true},"definitionHash":"c9244ab904aa09a064ae68edf6e9c245574c81f19bd64b410ab1e45ddcd5c397","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T14:46:27.370Z","metadataTrust":"untrusted"},{"serverName":"io.github.HASAVAGE/teardrop","endpointFingerprint":"48ba02cc5d99f7ac024ac628e51bf03bf367217b518026b31117900caaa9d71d","name":"get_eth_balance","title":"Get Eth Balance","description":"Get the exact on-chain native ETH balance of an address on Ethereum or Base, in wei and ether. get_wallet_portfolio already includes native ETH in its holdings — call this only for a standalone balance without a portfolio scan.\n\nUse when: Use when a wallet's gas-availability or standalone ETH amount must be verified block-accurately. Do not call after or alongside get_wallet_portfolio — the holdings list already includes native ETH.\n\nLimitations: Native ETH only; ERC-20 balances require get_erc20_balance. Requires an EIP-55 checksummed address. Ethereum mainnet and Base only.\n\nAlternatives: get_wallet_portfolio, get_erc20_balance","inputSchema":{"type":"object","properties":{"address":{"description":"Ethereum address (0x…)","title":"Address","type":"string"},"chain_id":{"default":1,"description":"Chain ID (1=Ethereum, 8453=Base)","title":"Chain Id","type":"integer"}},"required":["address"],"title":"mcp_get_eth_balanceArguments"},"annotations":{"readOnlyHint":true},"definitionHash":"de391218aded50d9447a96a5e0316c682d5bdbc10844d2ee29aca32c9351b5b2","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T14:46:27.370Z","metadataTrust":"untrusted"},{"serverName":"io.github.HASAVAGE/teardrop","endpointFingerprint":"48ba02cc5d99f7ac024ac628e51bf03bf367217b518026b31117900caaa9d71d","name":"get_gas_price","title":"Get Gas Price","description":"Get current EIP-1559 gas fees on Ethereum or Base: base fee, priority fee, next-block base fee estimate, and congestion (gas_used_ratio >0.5 busy, >0.9 very congested). Optional USD estimates cover a simple transfer and a swap-like transaction. Cached 10 seconds per chain.\n\nUse when: Use before advising a transaction — to time execution, size a gas budget, or judge congestion. Call once per decision; the 10-second cache makes rapid re-calls pointless.\n\nLimitations: Point-in-time estimate that changes every block; USD figures are rough heuristics at 21k/150k gas, not an execution quote. Ethereum mainnet and Base only.\n\nAlternatives: get_block, get_dex_quote","inputSchema":{"type":"object","properties":{"chain_id":{"default":1,"description":"Chain ID (1=Ethereum, 8453=Base)","title":"Chain Id","type":"integer"},"include_usd_estimate":{"default":false,"description":"If true, include ETH spot price and rough USD cost estimates for a simple transfer (21k gas) and a swap-like transaction (150k gas).","title":"Include Usd Estimate","type":"boolean"}},"title":"mcp_get_gas_priceArguments"},"annotations":{"readOnlyHint":true},"definitionHash":"091907fe569eb5cfd186b933d45253a9f4e09f8dc60e6dd1c1399262a52820fd","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T14:46:27.370Z","metadataTrust":"untrusted"},{"serverName":"io.github.HASAVAGE/teardrop","endpointFingerprint":"48ba02cc5d99f7ac024ac628e51bf03bf367217b518026b31117900caaa9d71d","name":"get_lending_rates","title":"Get Lending Rates","description":"Get current on-chain lending supply/borrow APYs for Aave v3 reserves and Compound v3 markets on Ethereum or Base, with per-asset snapshots and Compound utilization. Use for protocol-specific yield comparisons such as USDC on Aave vs Compound.\n\nUse when: Use for protocol-specific lending-rate questions (e.g. 'Aave vs Compound USDC rates'). Prefer over get_yield_rates when the protocols are known; use get_yield_rates for broad pool discovery across many protocols. Do not fall back to web_search when this returns errors — report them.\n\nLimitations: On-chain snapshots of Aave v3 and Compound v3 on Ethereum and Base only; not a multi-protocol yield aggregator. Rates are point-in-time and change per block. Returns an errors list — report each unavailable protocol explicitly and treat empty rates with empty errors as transient RPC unavailability.\n\nAlternatives: get_yield_rates, get_defi_positions, get_liquidation_risk","inputSchema":{"type":"object","properties":{"protocol":{"default":"all","description":"Protocol to query: 'aave-v3', 'compound-v3', or 'all'.","enum":["all","aave-v3","compound-v3"],"title":"Protocol","type":"string"},"chain_id":{"default":1,"description":"Chain ID (1=Ethereum, 8453=Base).","title":"Chain Id","type":"integer"},"assets":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Optional asset-symbol filter (e.g., ['USDC','DAI']). Case-insensitive. Max 20 symbols.","title":"Assets"}},"title":"mcp_get_lending_ratesArguments"},"annotations":{"readOnlyHint":true},"definitionHash":"83f2d6af0d687f1fd544fdf5847cad7fa302102faa6338e76153875ace2efef4","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T14:46:27.370Z","metadataTrust":"untrusted"},{"serverName":"io.github.HASAVAGE/teardrop","endpointFingerprint":"48ba02cc5d99f7ac024ac628e51bf03bf367217b518026b31117900caaa9d71d","name":"get_liquidation_risk","title":"Get Liquidation Risk","description":"Assess DeFi liquidation risk for up to 50 wallets across Aave v3 and Compound v3 on Ethereum or Base. Returns per-wallet health factor, tiered risk classification (liquidatable, critical, warning, caution, healthy, no_debt), and an overall_tier aggregate. Per-protocol failures are isolated — one protocol's RPC error does not blank the other's result.\n\nUse when: Use for multi-wallet batch risk assessment (2+ wallets). For a single-wallet DeFi analysis use get_defi_positions, which already includes risk metrics. Use assess_counterparty_risk when the question is counterparty trust rather than position health.\n\nLimitations: View-only scan of Aave v3 and Compound v3 on Ethereum and Base with hardcoded market addresses; not a liquidation simulation or guarantee. Compound v3 exposes only a boolean liquidation flag — no numeric health factor. Duplicate wallet addresses are silently removed.\n\nAlternatives: get_defi_positions, assess_counterparty_risk, get_wallet_positions","inputSchema":{"type":"object","properties":{"wallet_addresses":{"description":"Wallet addresses to assess (max 50; duplicates are silently removed).","items":{"type":"string"},"minItems":1,"title":"Wallet Addresses","type":"array"},"chain_id":{"default":1,"description":"Chain ID (1=Ethereum, 8453=Base)","title":"Chain Id","type":"integer"}},"required":["wallet_addresses"],"title":"mcp_get_liquidation_riskArguments"},"annotations":{"readOnlyHint":true},"definitionHash":"d54d018c0c57627fe2cdb78d0331643cc231098dfc976772e40b49fb6eb5cf71","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T14:46:27.370Z","metadataTrust":"untrusted"},{"serverName":"io.github.HASAVAGE/teardrop","endpointFingerprint":"48ba02cc5d99f7ac024ac628e51bf03bf367217b518026b31117900caaa9d71d","name":"get_protocol_tvl","title":"Get Protocol Tvl","description":"Get Total Value Locked for one or many DeFi protocols from DeFiLlama: current USD TVL, 7/30-day change, fees and revenue when reported, per-chain breakdown, and optional daily historical series. Batch multiple protocols via protocols=[...] — batch responses return one compact economic summary per protocol; single-protocol calls add chain and historical detail. Supports 3,000+ protocols; use DeFiLlama slugs ('aave-v3', 'uniswap-v3'); common aliases are auto-corrected.\n\nUse when: Use for protocol-level economic questions — size, growth, fees, or revenue of a specific protocol. For 2+ protocols always batch in one call rather than calling per-protocol. Pass include_historical=true with days when a trend is needed; without it the response is a current TVL scalar. For ecosystem-level chain comparisons use get_chain_metrics instead.\n\nLimitations: Third-party DeFiLlama analytics, not on-chain truth. Upstream revenue failures surface as revenue_error_type and null economic fields are data gaps — never fabricate values for them.\n\nAlternatives: get_chain_metrics, get_yield_rates, get_dex_volume","inputSchema":{"type":"object","properties":{"protocol":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"DeFiLlama protocol slug (e.g. 'aave-v3', 'uniswap-v3', 'curve-dex'). Use lowercase with hyphens as shown on DeFiLlama. Tip: 'aave' works for the combined Aave TVL; 'aave-v3' for V3 only. Optional when using batch mode via protocols=[...].","title":"Protocol"},"protocols":{"default":[],"description":"Optional batch mode: list of DeFiLlama protocol slugs. When provided, the tool returns one TVL result object per protocol.","items":{"type":"string"},"title":"Protocols","type":"array"},"include_historical":{"default":false,"description":"If true, return a daily historical TVL series for the requested window.","title":"Include Historical","type":"boolean"},"days":{"default":30,"description":"Lookback window in days for the historical series (only used when include_historical=True).","maximum":365,"minimum":1,"title":"Days","type":"integer"}},"title":"mcp_get_protocol_tvlArguments"},"annotations":{"readOnlyHint":true},"definitionHash":"084f04125a84f0acaf123b556690cd07710dae57dc8e2e78b00237d0ebfd2bd8","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T14:46:27.370Z","metadataTrust":"untrusted"},{"serverName":"io.github.HASAVAGE/teardrop","endpointFingerprint":"48ba02cc5d99f7ac024ac628e51bf03bf367217b518026b31117900caaa9d71d","name":"get_token_approvals","title":"Get Token Approvals","description":"Block-accurate audit of ERC-20 allowances for a wallet across curated DeFi spenders (Uniswap, Aave, Compound, 1inch, 0x, OpenSea) on Ethereum or Base. Flags unlimited approvals by risk level (high=unknown spender, medium=trusted protocol, low=bounded). Use before swaps or after security incidents to detect active exploit vectors.\n\nUse when: Use for a free, block-accurate Ethereum/Base check of an address's exposure to the curated spender list. For broad all-chain spender discovery, hacked/abandoned flags, or NFT-adjacent exposure use get_wallet_approvals instead.\n\nLimitations: Covers only the tracked-asset registry and curated spenders — untracked tokens and custom spenders are excluded. Does not inspect NFT approvals or off-chain Permit2 sub-permits. An error field marks results as incomplete rather than clean.\n\nAlternatives: get_wallet_approvals, assess_counterparty_risk","inputSchema":{"type":"object","properties":{"wallet_address":{"description":"Wallet address (0x…)","title":"Wallet Address","type":"string"},"chain_id":{"default":1,"description":"Chain ID (1=Ethereum, 8453=Base)","title":"Chain Id","type":"integer"},"tokens":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Token contract addresses to check (max 50). Defaults to the platform tracked token list.","title":"Tokens"},"spenders":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Spender contract addresses to check (max 20). Defaults to the curated DeFi protocol list.","title":"Spenders"}},"required":["wallet_address"],"title":"mcp_get_token_approvalsArguments"},"annotations":{"readOnlyHint":true},"definitionHash":"71c3beb2ec9ff8eaa18840348a672b91d8bbf6bfcad19b58dd27b5678b262a51","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T14:46:27.370Z","metadataTrust":"untrusted"},{"serverName":"io.github.HASAVAGE/teardrop","endpointFingerprint":"48ba02cc5d99f7ac024ac628e51bf03bf367217b518026b31117900caaa9d71d","name":"get_token_price","title":"Get Token Price","description":"Get current price, 24h change, market cap, FDV, and volume for one or more crypto tokens. Accepts ticker symbols, full names, or CoinGecko IDs; unknown symbols resolve automatically. Batch up to 50 tokens. Reuse price_usd/value_usd already returned by get_wallet_portfolio instead of re-calling.\n\nUse when: Use for spot pricing of named tokens — including batched multi-token queries. Do not call for tokens whose price get_wallet_portfolio already returned, or for address-only unknown tokens (report them as unrecognized). For historical windows use get_token_price_historical.\n\nLimitations: CoinGecko spot data; point-in-time and not an executable swap quote. Bare 0x addresses are not resolvable and should be treated as unknown tokens.\n\nAlternatives: get_token_price_historical, get_wallet_portfolio, get_dex_quote","inputSchema":{"type":"object","properties":{"tokens":{"description":"Token symbols or CoinGecko IDs (e.g. ['BTC', 'ETH', 'SOL'])","items":{"type":"string"},"maxItems":50,"minItems":1,"title":"Tokens","type":"array"},"vs_currency":{"default":"usd","description":"Quote currency (usd, eur, gbp, btc, eth)","title":"Vs Currency","type":"string"}},"required":["tokens"],"title":"mcp_get_token_priceArguments"},"annotations":{"readOnlyHint":true},"definitionHash":"74ea8f94187a9c2c448396bb9e0b117b3f25f1f684f2fb35dfcace2bced1ae69","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T14:46:27.370Z","metadataTrust":"untrusted"},{"serverName":"io.github.HASAVAGE/teardrop","endpointFingerprint":"48ba02cc5d99f7ac024ac628e51bf03bf367217b518026b31117900caaa9d71d","name":"get_token_price_historical","title":"Get Token Price Historical","description":"Get historical crypto prices over a 1–365 day window: period statistics (start, end, % change, high, low), a downsampled daily series, high_30d, std_30d, and dca_baseline_90d. Use for period comparisons and trend analysis; prefer over web_search for time-comparative financial queries. Pass stats_only=true when the daily series is unnecessary.\n\nUse when: Use for time-comparative financial questions — month-over-month, YTD, volatility, or DCA baselines. Prefer over web_search for such queries. Use the pre-computed stats directly; do not re-derive them with calculate.\n\nLimitations: Daily granularity (downsampled), max 365-day window, CoinGecko coverage only. Check dca_baseline_90d_partial before relying on the baseline — incomplete history yields a partial baseline.\n\nAlternatives: get_token_price, web_search","inputSchema":{"type":"object","properties":{"tokens":{"description":"Token symbols or CoinGecko IDs (e.g. ['BTC', 'ETH']). Max 10 per call.","items":{"type":"string"},"maxItems":10,"minItems":1,"title":"Tokens","type":"array"},"days":{"default":30,"description":"Lookback window in days (1–365). 1=5-min granularity, 2-90=hourly, 91+=daily.","maximum":365,"minimum":1,"title":"Days","type":"integer"},"vs_currency":{"default":"usd","description":"Quote currency (usd, eur, gbp, btc, eth). Lowercase 3–10 letters.","pattern":"^[a-z]{3,10}$","title":"Vs Currency","type":"string"},"stats_only":{"default":false,"description":"If true, omit the daily price series and return period stats plus precomputed 30-day high/volatility and 90-day DCA baseline metrics.","title":"Stats Only","type":"boolean"}},"required":["tokens"],"title":"mcp_get_token_price_historicalArguments"},"annotations":{"readOnlyHint":true},"definitionHash":"c7522b3cbfea8f9052e1e280b6c1e9eb283c6d73bd46115e2aea0d04032317d6","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T14:46:27.370Z","metadataTrust":"untrusted"},{"serverName":"io.github.HASAVAGE/teardrop","endpointFingerprint":"48ba02cc5d99f7ac024ac628e51bf03bf367217b518026b31117900caaa9d71d","name":"get_transaction","title":"Get Transaction","description":"Get details and receipt for one Ethereum or Base transaction by hash: bounded calldata, normalized event logs, transaction index, and receipt-derived effective gas price and fee when available. Use to verify a specific transaction's status and outcome.\n\nUse when: Use when one known transaction must be verified — status, logs, gas paid, or execution outcome. To understand what the calldata means use decode_transaction; for wallet-wide activity use get_wallet_history.\n\nLimitations: One transaction hash per call on Ethereum or Base; pending transactions may not resolve yet. Calldata is returned bounded, not decoded — use decode_transaction for semantic decoding.\n\nAlternatives: decode_transaction, get_block, get_wallet_history","inputSchema":{"type":"object","properties":{"tx_hash":{"description":"Transaction hash (0x…)","title":"Tx Hash","type":"string"},"chain_id":{"default":1,"description":"Chain ID (1=Ethereum, 8453=Base)","title":"Chain Id","type":"integer"}},"required":["tx_hash"],"title":"mcp_get_transactionArguments"},"annotations":{"readOnlyHint":true},"definitionHash":"73ac6ba3082c959ff71883fbb4f4efd004974c2939a0bf941314a27aa62de3c7","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T14:46:27.370Z","metadataTrust":"untrusted"},{"serverName":"io.github.HASAVAGE/teardrop","endpointFingerprint":"48ba02cc5d99f7ac024ac628e51bf03bf367217b518026b31117900caaa9d71d","name":"get_wallet_approvals","title":"Get Wallet Approvals","description":"Inspect a wallet's current ERC-20 token authorization exposure on one DeBank-supported chain. Returns discovered spenders, USD exposure, protocol attribution, and hacked or abandoned protocol flags. This is broader than the curated block-accurate get_token_approvals tool.\n\nUse when: Use when broad spender discovery or cross-chain security screening is needed. Call once per chain because DeBank requires a chain_id. Use get_token_approvals for a free, block-accurate Ethereum or Base scan of curated tokens and spenders.\n\nLimitations: The result is third-party analytics and may be stale. It covers token approvals only, not NFT approvals or off-chain Permit2 sub-permits; each chain consumes a separate billable provider call.\n\nAlternatives: get_token_approvals","inputSchema":{"type":"object","properties":{"wallet_address":{"description":"EVM wallet address (0x-prefixed)","title":"Wallet Address","type":"string"},"chain_id":{"description":"DeBank chain identifier, for example eth, arb, or base","title":"Chain Id","type":"string"}},"required":["wallet_address","chain_id"],"title":"mcp_get_wallet_approvalsArguments"},"annotations":{"readOnlyHint":true},"definitionHash":"fd8f9504fe149ea1af6c8089b6d2a2d0a56ee54d6269df80d61a40171b616ffa","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-01T14:46:27.370Z","metadataTrust":"untrusted"}],"endpoints":[{"endpointFingerprint":"48ba02cc5d99f7ac024ac628e51bf03bf367217b518026b31117900caaa9d71d","protocol":"streamable-http","status":"indexed","toolCount":36,"observedAt":"2026-11-01T14:46:27.370Z"}],"authentication":"unknown"},"connectionConfigurations":{"status":"ready","authentication":"not embedded","clients":{"Claude Desktop":{"mcpServers":{"io.github.HASAVAGE/teardrop":{"url":"https://api.teardrop.dev/tools/mcp"}}},"Cursor":{"mcpServers":{"io.github.HASAVAGE/teardrop":{"url":"https://api.teardrop.dev/tools/mcp"}}},"VS Code":{"servers":{"io.github.HASAVAGE/teardrop":{"type":"http","url":"https://api.teardrop.dev/tools/mcp"}}}}},"resourceType":"mcp-server","callable":true,"runtime":{"callable":true,"protocols":["mcp"]},"interfaces":[{"protocol":"mcp","transport":"streamable-http","url":"https://api.teardrop.dev/tools/mcp"}],"profile":{"apiVersion":"1","schemaVersion":"1","id":"mcp-server:io.github.HASAVAGE%2Fteardrop","resourceType":"mcp-server","canonicalUrl":"https://www.agentsjunction.com/api/v1/servers/io.github.HASAVAGE%2Fteardrop","name":"io.github.HASAVAGE/teardrop","description":"Teardrop MCP gateway: paid tools for autonomous agents (x402, credits).","interfaces":[{"protocol":"mcp","transport":"streamable-http","url":"https://api.teardrop.dev/tools/mcp"}],"capabilities":[],"identity":{"source":"official-registry","websiteUrl":null,"repositoryUrl":"https://github.com/teardrop-ai/teardrop","version":"1.0.0"},"verification":{"state":"official","confidence":100},"operations":{"resourceType":"mcp-server","name":"io.github.HASAVAGE/teardrop","status":"online","lastCheckedAt":"2026-11-03T18:18:07.325Z","lastSuccessfulCheck":"2026-11-03T18:18:07.325Z","latencyMs":167,"consecutiveFailures":0,"isStale":false,"checks":{"endpointReachable":true,"protocolValid":true,"agentCardValid":null,"mcpHandshakeValid":true},"lastSeen":null,"lastSuccessfulInteraction":null,"lastHealthCheck":"2026-11-03T18:18:07.325Z","source":{"type":"health-check","url":null},"observedAt":"2026-11-03T18:18:07.325Z"},"security":null,"timestamps":{"createdAt":"2026-10-13T04:36:00.210Z","updatedAt":"2026-10-13T04:36:00.210Z","observedAt":"2026-11-03T18:18:07.325Z"},"compatibility":{"serverVersion":"1.0.0","protocolVersions":[{"protocol":"mcp","version":null}]}}}}