recon-crypto-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| RPC_BATCH | No | Opt into JSON-RPC batching: set to '1' to enable (off by default) | |
| RPC_API_KEY | No | API key for the RPC provider | |
| RPC_PROVIDER | No | RPC provider type: 'infura' or 'alchemy' | |
| ONEINCH_API_KEY | No | 1inch API key for swap quote comparison | |
| POLYGON_RPC_URL | No | Custom RPC endpoint for Polygon | |
| ARBITRUM_RPC_URL | No | Custom RPC endpoint for Arbitrum | |
| ETHEREUM_RPC_URL | No | Custom RPC endpoint for Ethereum | |
| ETHERSCAN_API_KEY | No | Etherscan API key for contract verification lookups | |
| RECON_FEEDBACK_ENDPOINT | No | Optional HTTPS URL for request_capability to POST directly (requires proxy auth) | |
| RECON_ALLOW_INSECURE_RPC | No | Opt out of https/private-IP check on RPC URLs: set to '1' to allow (only for local forks) | |
| WALLETCONNECT_PROJECT_ID | No | WalletConnect Cloud project ID required for Ledger Live signing |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_lending_positions | Fetch all Aave V3 lending/borrowing positions for a wallet. Returns collateral, debt (both in USD and per-asset), health factor, LTV, and liquidation threshold across Ethereum and Arbitrum. |
| get_lp_positions | Fetch all Uniswap V3 liquidity-provider positions for a wallet. Returns token pair, current token amounts, fee tier, in-range status, uncollected fees (lower bound), and an approximate impermanent-loss estimate. |
| get_health_alerts | Check for Aave V3 lending positions approaching liquidation. Returns positions whose health factor is below the given threshold (default 1.5). |
| simulate_position_change | Simulate the effect of adding or removing collateral, or borrowing/repaying debt on an Aave V3 position. Returns the projected health factor and collateral/debt totals. No transaction is sent. |
| check_contract_security | Check Etherscan verification status, EIP-1967 proxy pattern, implementation/admin slots, and the presence of dangerous admin functions (mint, pause, upgradeTo, etc.) for a given contract. |
| check_permission_risks | Enumerate privileged roles on a contract (Ownable.owner, AccessControl hints) and classify holders as EOA, Gnosis Safe multisig, or TimelockController. |
| get_protocol_risk_score | Return a 0-100 risk score for a DeFi protocol, combining TVL size, 30-day TVL trend, contract age, audit count (DefiLlama), and Immunefi bug-bounty status. Higher = safer. |
| get_staking_positions | Fetch Lido (stETH/wstETH) and EigenLayer staking positions for a wallet across supported chains. Returns per-protocol staked amounts, USD value, APR, and EigenLayer delegation target. |
| get_staking_rewards | Estimate staking rewards earned over a given period (7d/30d/90d/1y) using the current APR as a proxy. This is an estimate, not an on-chain rewards query. |
| estimate_staking_yield | Project annual yield on a hypothetical staking amount for Lido or EigenLayer using current APRs. Use this for 'what would I earn if I staked X ETH?' questions before the user commits capital. Returns the protocol, input amount, APR used, and projected annual rewards denominated in the same asset. Purely forward-looking — does NOT read any wallet or on-chain position; pair with |
| get_portfolio_summary | One-shot cross-chain portfolio aggregation for one or more wallets. Fans out across Ethereum/Arbitrum/Polygon/Base (unless |
| get_swap_quote | Get a LiFi aggregator quote for a token swap (same-chain) or bridge (cross-chain). Returns expected output, fees, execution time, and the underlying tool selected. No transaction is built. |
| prepare_swap | Prepare an unsigned swap or bridge transaction via LiFi aggregator. Same-chain swaps use the best DEX route; cross-chain swaps use a bridge + DEX combo. The returned tx can be sent via |
| pair_ledger_live | Initiate a WalletConnect v2 pairing session with Ledger Live. Returns a URI and ASCII QR code — paste into Ledger Live's WalletConnect screen to complete pairing. The session persists for future transactions. |
| get_ledger_status | Report whether a WalletConnect session with Ledger Live is active, which wallet it's connected to, and which accounts are exposed. Returns |
| prepare_aave_supply | Build an unsigned Aave V3 supply transaction. If an ERC-20 approve() is required first, it is returned as the outer tx and the supply tx is embedded in |
| prepare_aave_withdraw | Build an unsigned Aave V3 withdraw transaction. Pass |
| prepare_aave_borrow | Build an unsigned Aave V3 borrow transaction (variable rate — stable rate is deprecated and reverts on production markets). The borrower must already have sufficient collateral supplied. |
| prepare_aave_repay | Build an unsigned Aave V3 repay transaction. If an ERC-20 approve() is required first, it is returned as the outer tx and repay is in |
| prepare_lido_stake | Build an unsigned Lido stake transaction (wraps ETH into stETH via stETH.submit). The tx's value field is the ETH amount to stake. |
| prepare_lido_unstake | Build an unsigned Lido withdrawal request transaction. Wraps |
| prepare_eigenlayer_deposit | Build an unsigned EigenLayer StrategyManager.depositIntoStrategy transaction. Includes an ERC-20 approve step if needed. |
| send_transaction | Forward an already-prepared transaction to Ledger Live via WalletConnect for user signing. The user must review and approve the tx in Ledger Live and on their Ledger device; this call blocks until the user signs or rejects. You MUST pass |
| get_transaction_status | Poll a transaction's status via the chain's RPC. Returns pending / success / failed, or unknown if the node hasn't seen it yet. |
| simulate_transaction | Run an eth_call against the chain's RPC to simulate a transaction without signing or broadcasting it. Returns |
| get_token_balance | Fetch a wallet's balance of any ERC-20 token or the chain's native coin. Pass |
| get_token_price | Fetch the USD price of a token via DefiLlama. Pass |
| resolve_ens_name | Resolve an ENS name (e.g. vitalik.eth) to an Ethereum address via mainnet ENS resolver. Returns null if unregistered. |
| reverse_resolve_ens | Reverse-resolve an Ethereum address to its primary ENS name. Returns null if no primary name is set. |
| get_tron_staking | Read TRON staking state for a base58 address: claimable voting rewards (WithdrawBalance-ready), frozen TRX under Stake 2.0 (bandwidth + energy), and pending unfreezes with their unlock timestamps. Returns raw SUN + formatted TRX + USD values, plus a |
| prepare_native_send | Build an unsigned native-coin send transaction (ETH on Ethereum/Arbitrum). Pass a human-readable amount like "0.5". |
| prepare_token_send | Build an unsigned ERC-20 transfer transaction. Pass |
| get_compound_positions | Fetch Compound V3 (Comet) positions for a wallet across all known markets on the selected chains (cUSDCv3, cUSDTv3, cWETHv3, etc.). For each market the wallet touches, returns the base-token supply or borrow balance, per-asset collateral deposits, and USD valuations. Use this to answer 'my Compound positions' or before preparing a |
| prepare_compound_supply | Build an unsigned Compound V3 supply transaction (base token or collateral). If an ERC-20 approve() is required first, it is returned as the outer tx with supply in |
| prepare_compound_withdraw | Build an unsigned Compound V3 withdraw transaction. Pass |
| prepare_compound_borrow | Build an unsigned Compound V3 borrow transaction. Compound V3 encodes a borrow as |
| prepare_compound_repay | Build an unsigned Compound V3 repay transaction — encoded as supply(baseToken) against an outstanding borrow. Includes an approve step if needed. Pass |
| get_morpho_positions | Fetch Morpho Blue positions for a wallet. If |
| prepare_morpho_supply | Build an unsigned Morpho Blue supply transaction — deposits the market's loan token to earn lending yield. Market params (loan/collateral tokens, oracle, IRM, LLTV) are resolved on-chain from the market id, so only wallet/marketId/amount are required. If the wallet's current allowance is insufficient, an ERC-20 approve tx is emitted first (chainable via |
| prepare_morpho_withdraw | Build an unsigned Morpho Blue withdraw transaction (withdraws supplied loan token). Explicit amount only — "max" is not supported; query your position first. |
| prepare_morpho_borrow | Build an unsigned Morpho Blue borrow transaction. Requires pre-existing collateral in the market. |
| prepare_morpho_repay | Build an unsigned Morpho Blue repay transaction. Includes an approve step if needed. Explicit amount only — "max" is not supported. |
| prepare_morpho_supply_collateral | Build an unsigned Morpho Blue supplyCollateral transaction — adds collateral to a market. Includes an approve step if needed. |
| prepare_morpho_withdraw_collateral | Build an unsigned Morpho Blue withdrawCollateral transaction — removes collateral from a market to send back to the wallet. Only withdraws the exact amount specified; |
| request_capability | File a capability request against the recon-crypto-mcp GitHub repository when the user asks for something this server cannot do (e.g. an unsupported protocol, chain, token, or missing tool). USE ONLY AFTER confirming no existing tool can accomplish the task. By default this returns a pre-filled GitHub issue URL — NO data is transmitted; the user must click through to submit. If the operator has configured RECON_FEEDBACK_ENDPOINT, it posts directly to that proxy instead. Rate-limited per install (30s between calls, 3/hour, 10/day, 7-day dedupe on identical summaries). Write clear, actionable summaries — this lands in a real issue tracker read by humans. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/szhygulin/recon-crypto-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server