Skip to main content
Glama
agentek-eth

agentek-eth

by NaniDAO

Agentek MCP Server

A Model Context Protocol server offering tools for cryptocurrency research and Ethereum-based automation.

Works with Claude Desktop, Cursor, and other MCP-friendly apps.

✨ Features

  • Connect to Ethereum, Optimism, Arbitrum & Polygon

  • Play with DeFi (Aave, DEXs, etc.)

  • Look up ENS domains, transfer tokens, check security

  • Get crypto news and market data

Related MCP server: crypto-indicators-mcp

🧰 Tools

  • Tokens (ERC20, WETH)

  • DeFi (trading, lending)

  • Block explorers

  • Governance tools

  • Security checks

  • Basic web tools

  • All Agentek tools based on keys you provide.

Claude Desktop Setup

Add this to your claude_desktop_config.json:

{
  "mcpServers": {
    "agentek": {
      "command": "pnpx",
      "args": [
        "@agentek/mcp-server"
      ],
      "env": {
        "ACCOUNT": "YOUR_ETHEREUM_ADDRESS",
        // or PRIVATE_KEY if you need transactions

        // Optional for added these features
        "PERPLEXITY_API_KEY": "YOUR_PERPLEXITY_KEY",
        "ZEROX_API": "YOUR_ZEROX_API_KEY",
        "BLOCKSCOUT_API_KEY": "BLOCKSCOUT_API_KEY",
        "TALLY_API_KEY": "TALLY_API_KEY",
        "COINDESK_API_KEY": "COINDESK_API_KEY",
        "COINMARKETCAL_API_KEY": "COINMARKETCAL_API_KEY",
      }
    }
  }
}

Just use ACCOUNT for read-only if you're trying things out. Only add a PRIVATE_KEY if you actually need to make transactions and if you understand the risks.

Networks

You get these networks out of the box:

  • Ethereum Mainnet

  • Optimism

  • Arbitrum

  • Polygon

We'll make this customizable later.

Coming Soon

Better wallet connection methods! Currently using plain text keys to keep things simple while in beta.

License

AGPL-3.0

Available Tools

127 tools
canUnlockSlowC

Check if a transfer can be unlocked and get info about it

Inputs: transferId (required).

checkMaliciousAddressC

Check if an Ethereum address has been associated with malicious activity

Inputs: address (required).

checkMaliciousWebsiteC

Check if a website has been associated with crypto scams or malicious activity

Inputs: website (required).

coinchanGetCoinsC

Fetch a list of Coinchan token IDs between index ranges

Inputs: chainId (required), start (required), finish (required).

coinchanGetCoinsCountC

Get total number of Coinchan tokens created

Inputs: chainId (required).

coinchanGetVestableAmountC

Get the amount of liquidity currently available to vest for a locked Coinchan token

Inputs: chainId (required), coinId (required).

compareYieldHistoryToolB

Compares historical yield performance across multiple pools, analyzing metrics like APY, volatility, and TVL trends

Inputs: poolIds (required), days, sortBy.

compareYieldToolC

Compares yield opportunities for specific assets across different protocols

Inputs: assets (required), amount, duration.

depositWETHB

Deposit ETH into the WETH contract, receiving WETH in return

Inputs: chainId (required), amount (required).

estimateGasC

Estimate gas for a transaction

Inputs: to (required), value, data, chainId.

estimateGasCostC

Estimate the gas cost for a transaction in both native token and USD

Inputs: chainId (required), gasUnits (required), maxFeePerGas, maxPriorityFeePerGas.

getAaveReserveDataB

Fetches reserve data for a given asset from Aave including available liquidity, total stable and variable debt, and interest rates.

Inputs: asset (required), chainId (required).

getAaveUserDataB

Fetches Aave user data including total collateral, total debt, available borrowing power, current liquidation threshold, LTV, and health factor.

Inputs: userAddress (required), chainId (required).

getAccountPortfolioC

Given a wallet address, return all token balances the account holds, including coin metadata.

Inputs: address (required).

getAcrossFeeQuoteC

Fetches a suggested fee quote for a cross-chain asset bridge using the Across Protocol REST API.

Inputs: inputToken (required), outputToken (required), originChainId (required), destinationChainId (required), +2 more.

getAddressBlocksValidatedC

Get blocks validated by a specific address

Inputs: chain (required), address (required).

getAddressCoinBalanceHistoryD

Get address coin balance history

Inputs: chain (required), address (required).

getAddressCoinBalanceHistoryByDayC

Get address coin balance history by day

Inputs: chain (required), address (required).

getAddressCountersC

Get counters for a specific address

Inputs: chain (required), address (required).

getAddressInfoC

Get information about a specific address

Inputs: chain (required), address (required).

getAddressInternalTransactionsC

Get internal transactions for a specific address

Inputs: chain (required), address (required).

getAddressLogsC

Get logs for a specific address

Inputs: chain (required), address (required).

getAddressNFTCollectionsC

Get list of NFTs owned by address, grouped by collection

Inputs: chain (required), address (required).

getAddressNFTsC

Get list of NFTs owned by address

Inputs: chain (required), address (required).

getAddressTokenBalancesC

Get all token balances for a specific address

Inputs: chain (required), address (required).

getAddressTokensC

Get token balances with filtering and pagination

Inputs: chain (required), address (required).

getAddressTokenTransfersC

Get token transfers for a specific address

Inputs: chain (required), address (required).

getAddressTransactionsC

Get transactions for a specific address

Inputs: chain (required), address (required).

getAddressWithdrawalsC

Get withdrawals for a specific address

Inputs: chain (required), address (required).

getAllowanceB

Gets the ERC20 token allowance between an owner and spender

Inputs: token (required), owner (required), spender (required), chainId.

getBalanceC

Get the ETH balance for an address

Inputs: address (required), chainId, formatEth.

getBalanceOfC

Gets the ERC20 token balance of an address

Inputs: token (required), owner (required), chainId.

getBlockC

Get information about a block

Inputs: blockNumber (required), chainId (required).

getBlockInfoC

Get information about a specific block

Inputs: chain (required), blockNumberOrHash (required).

getBlockNumberB

Get the current block number

Inputs: chainId.

getBlockscoutSearchC

Perform a search query to find blocks, transactions, addresses, or tokens on the blockchain.

Inputs: chain (required), query (required).

getBlockTransactionsC

Get transactions within a specific block

Inputs: chain (required), blockNumberOrHash (required).

getBlockWithdrawalsC

Get withdrawals within a specific block

Inputs: chain (required), blockNumberOrHash (required).

getBtcAddressInfoC

Fetches information about a Bitcoin address including balance and tx count.

Inputs: address (required).

getBtcBlockTxidsC

Returns a list of transaction IDs in a block, given the block hash.

Inputs: blockHash (required).

getBtcTxDetailsC

Fetches details for a given Bitcoin transaction ID (txid).

Inputs: txid (required).

getCanReverseSlowTransferC

Check if a transfer can be reversed

Inputs: transferId (required).

getCodeC

Get the bytecode of an address

Inputs: address (required), chainId.

getCoinC

Given a coin symbol, fetch the metadata about a coin (name, symbol, total supply, image, pools).

Inputs: symbol (required).

getCoinBalanceA

Returns the balance of a given address for a specific ERC6909 token ID from the Coins contract.

Inputs: chainId (required), account (required), tokenId (required).

getCoinTokenMetadataB

Returns the name, symbol, and URI of a given ERC6909 token ID from the Coins contract.

Inputs: chainId (required), tokenId (required).

getCryptoPriceA

Get the current price of a cryptocurrency in USD

Inputs: symbol (required).

getDecimalsB

Gets the number of decimals of an ERC20 token

Inputs: token (required), chainId.

getFearAndGreedIndexB

Retrieves the current Fear and Greed Index value from Alternative.me API.

Inputs: no named parameters.

getFeeHistoryC

Get historical gas fee info

Inputs: blockCount (required), chainId (required), rewardPercentiles.

getGasPriceB

Get the current gas price. If chainId is not specified, will return gas price for all supported chains.

Inputs: chainId, formatGwei.

getHoldersC

Fetch the list of holders for a given coin, ordered by balance descending by default.

Inputs: coinId (required), limit, offset.

getLatestBtcBlockB

Fetches the latest Bitcoin block details.

Inputs: no named parameters.

getLatestTokensC

Get trending tokens and market data

Inputs: chainId (required).

getNameC

Gets the name of an ERC20 token

Inputs: token (required), chainId.

getNaniProposalsD

Get proposals for NANIDAO

Inputs: account (required), chainId (required), dao (required).

getNativeCoinHoldersD

Get native coin holders list

Inputs: chain (required).

getNFTMetadataB

Gets metadata for an NFT token by contract address and token ID

Inputs: contractAddress (required), tokenId (required), chainId (required).

getPoolC

Fetch the latest state of a pool, including reserves and price information.

Inputs: poolId (required).

getPoolFeeDataC

Gets fee-related data for a pool

Inputs: poolAddress (required), chainId (required).

getPositionDetailsC

Gets detailed information about a specific LP position

Inputs: tokenId (required), chainId (required).

getQuoteC

Get a quote for swapping ERC20 and ERC6909 tokens.

Inputs: tokenIn (required), tokenOut (required), amount (required), side (required).

getSlowGuardianInfoC

Get guardian information for a user

Inputs: user (required).

getSlowStatusC

Get information about tokens, unlocked balances, and pending transfers in SLOW

Inputs: user (required), tokenId, transferId.

getSlowTransferApprovalRequiredC

Check if a transfer needs guardian approval

Inputs: user (required), to (required), id (required), amount (required).

getSmartContractC

Retrieve the source code, ABI and metadata a contract.

Inputs: chain (required), address (required).

getSmartContractsD

Get smart contract for the query

Inputs: chain (required), q (required), language.

getStatsC

Get statistics for various blockchain metrics.

Inputs: chain (required).

getSwapsC

Fetch recent swap events for a given pool, optionally filtered by block range.

Inputs: poolId (required), startBlock, endBlock, limit.

getSymbolC

Gets the symbol of an ERC20 token

Inputs: token (required), chainId.

getTokenChartC

Gets historical price chart data for one or more tokens from DeFi Llama

Inputs: tokens (required), period, startTime, options.

getTokenHoldersC

Retrieve token holders and their balances for a given token.

Inputs: chain (required), tokenContract (required), page, offset.

getTokenInfoC

Fetch metadata for a token contract.

Inputs: chain (required), tokenContract (required).

getTokenMetadataB

Gets all metadata (name, symbol, decimals, totalSupply) of an ERC20 token

Inputs: token (required), chainId (required).

getTokenTransfersC

List transfers for a specific token contract with pagination support.

Inputs: chain (required), tokenContract (required), page, offset.

getTotalSupplyB

Gets the total supply of an ERC20 token

Inputs: token (required), chainId.

getTransactionC

Get details about a transaction

Inputs: hash (required), chainId (required).

getTransactionCountC

Get the number of transactions sent from an address

Inputs: address (required), chainId.

getTransactionInfoC

Retrieve detailed information for a given transaction hash.

Inputs: chain (required), txhash (required).

getTransactionInternalTransactionsC

Retrieve internal transactions that occurred within a given transaction.

Inputs: chain (required), txhash (required).

getTransactionLogsC

Retrieve logs that were generated from a specific transaction.

Inputs: chain (required), txhash (required).

getTransactionRawTraceC

Retrieve raw trace information for a specific transaction.

Inputs: chain (required), txhash (required).

getTransactionReceiptC

Get the receipt of a transaction

Inputs: hash (required), chainId (required).

getTransactionsChartC

Retrieve daily transaction statistics chart data.

Inputs: chain (required).

getTransactionStateChangesC

Retrieve state changes that occurred during a transaction.

Inputs: chain (required), txhash (required).

getTransactionSummaryC

Retrieve a summary of data related to a transaction.

Inputs: chain (required), txhash (required).

getTransactionTokenTransfersC

Retrieve all token transfers that occurred within a given transaction.

Inputs: chain (required), txhash (required).

getUniV3PoolC

Gets information about a Uniswap V3 pool

Inputs: poolAddress (required), chainId (required).

getUserPositionsC

Gets all Uniswap V3 positions for a user

Inputs: chainId (required), user.

getYieldHistoryToolC

Fetches and analyzes historical yield data for a specific pool from DefiLlama

Inputs: poolId (required), days.

getYieldToolC

Analyzes and compares yield opportunities from DefiLlama across all DeFi protocols

Inputs: chain, project, symbol, stablecoin, +6 more.

intentAaveBorrowB

Borrows tokens from Aave using your supplied collateral. By default, the variable rate mode (2) is used.

Inputs: chainId (required), asset (required), amount (required), interestRateMode.

intentAaveDepositC

Deposits tokens into the Aave protocol to supply liquidity and earn interest.

Inputs: chainId (required), asset (required), amount (required).

intentAaveRepayB

Repays your Aave debt. By default, the variable rate mode (2) is used for repayment.

Inputs: chainId (required), asset (required), amount (required), rateMode.

intentAaveWithdrawC

Withdraws tokens from Aave, redeeming your supplied assets (aTokens).

Inputs: chainId (required), asset (required), amount (required).

intentApproveC

Creates an intent to approve token spending

Inputs: token (required), amount (required), spender (required), chainId.

intentApproveSlowTransferC

Guardian approves a transfer in SLOW contract

Inputs: chainId (required), from (required), transferId (required).

intentCoinchanAirdropC

Airdrop a Coinchan token to multiple addresses

Inputs: chainId (required), coinId (required), recipients (required), amounts (required), +1 more.

intentCoinchanClaimVestedC

Claim vested liquidity for a locked Coinchan token

Inputs: chainId (required), coinId (required).

intentCoinchanMakeB

Create a new Coinchan token, mint supplies and add initial liquidity via ZAMM

Inputs: chainId (required), name (required), symbol (required), tokenURI (required), +5 more.

intentCoinchanMakeHoldC

Create a new Coinchan token and hold liquidity for the creator

Inputs: chainId (required), name (required), symbol (required), tokenURI (required), +5 more.

intentCoinchanMakeLockedC

Create a new Coinchan token with locked liquidity and optional vesting schedule

Inputs: chainId (required), name (required), symbol (required), tokenURI (required), +7 more.

intentCollectFeesC

Collects accumulated fees from a Uniswap V3 position

Inputs: tokenId (required), chainId (required), recipient.

intentCreateCoinTokenC

Creates a new ERC6909 token inside the Coins contract with a name, symbol, metadata URI, owner, and initial supply.

Inputs: chainId (required), name (required), symbol (required), tokenURI (required), +2 more.

intentDecreaseLiquidityC

Removes liquidity from a Uniswap V3 position

Inputs: tokenId (required), liquidity (required), chainId (required), slippageTolerance, +1 more.

intentDepositAcrossC

Deposits tokens into the Across Protocol bridge to initiate a cross-chain transfer.

Inputs: originChainId (required), originToken (required), amount (required), destinationToken (required), +2 more.

intentDepositToSlowC

Deposit tokens or ETH into SLOW contract with a timelock

Inputs: chainId (required), token (required), to (required), amount (required), +1 more.

intentIncreaseLiquidityC

Adds more liquidity to an existing Uniswap V3 position

Inputs: tokenId (required), amount0Desired (required), amount1Desired (required), chainId (required), +2 more.

intentMintPositionC

Creates a new Uniswap V3 liquidity position

Inputs: token0 (required), token1 (required), fee (required), tickLower (required), +7 more.

intentProposeNaniC

Create a new governance proposal for NANIDAO

Inputs: content (required), chainId (required).

intentReverseSlowTransferC

Reverse a pending transfer in SLOW contract

Inputs: chainId (required), transferId (required).

intentSetSlowGuardianC

Set a guardian for a user in the SLOW contract

Inputs: chainId (required), guardian (required).

intentStakeNaniC

Stake NANI tokens to receive xNANI tokens, which can be used for governance

Inputs: amount (required), chainId (required).

intentTransferC

Creates an intent to transfer tokens

Inputs: token (required), amount (required), to (required), chainId.

intentTransferFromC

Creates an intent to transfer tokens from another address

Inputs: token (required), amount (required), from (required), to (required), +1 more.

intentTransferPositionC

Transfers ownership of a Uniswap V3 LP NFT

Inputs: tokenId (required), to (required), chainId (required).

intentUnlockSlowC

Unlock a time-locked transfer in SLOW contract

Inputs: chainId (required), transferId (required).

intentUnstakeNaniC

Unstake xNANI tokens back to NANI tokens

Inputs: amount (required), chainId (required).

intentVoteNaniProposalC

Vote on an existing NANIDAO governance proposal

Inputs: proposalId (required), approve (required), chainId (required).

intentWithdrawFromSlowC

Withdraw unlocked tokens from SLOW contract

Inputs: chainId (required), from (required), to (required), id (required), +1 more.

lookupENSC

Looks up the ENS name for an Ethereum address

Inputs: address (required).

predictTransferIdC

Predict a transfer ID for a potential transfer

Inputs: from (required), to (required), id (required), amount (required).

resolveENSC

Resolves an ENS name to an Ethereum address

Inputs: name (required).

scrapeWebContentB

Given a URL, fetch the page's HTML and return the main text content as accurately as possible. Works for most websites.

Inputs: website (required).

swapB

Swap ERC20 and ERC6909 tokens (proper approvals then router call).

Inputs: tokenIn (required), tokenOut (required), amount (required), side (required), +5 more.

thinkA

Use the tool to think about something. It will not obtain new information or change the database, but just append the thought to the log. Use it when complex reasoning or some cache memory is needed.

Inputs: thought (required).

withdrawWETHC

Withdraw WETH back to native ETH

Inputs: chainId (required), amount (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    C2.7/5.0

    Scored across 127 tools

    Disambiguation2/5

    The tool set has significant overlap and ambiguity, with many tools performing similar functions on different resources (e.g., multiple address info tools like getAddressInfo, getAddressCounters, getAddressTransactions) and redundant operations (e.g., getBlock and getBlockInfo, getTransaction and getTransactionInfo). This creates confusion about which tool to use for specific tasks, leading to potential misselection.

    Naming Consistency4/5

    Naming is mostly consistent with a verb_noun pattern (e.g., getBalance, estimateGas, intentTransfer), though there are minor deviations like canUnlockSlow (adjective_verb_noun) and think (single verb). The majority follow a predictable structure, making the set readable despite the large size.

    Tool Count2/5

    With 127 tools, the count is excessive for a single server, even given the broad Ethereum/DeFi domain. This overwhelms the surface and suggests poor scoping, as many tools could be consolidated or omitted without losing functionality, making it cumbersome for agents to navigate.

    Completeness5/5

    The tool set provides comprehensive coverage for Ethereum and DeFi operations, including address analysis, token management, smart contract interactions, yield comparisons, and intent-based transactions. It supports full CRUD/lifecycle for key resources like tokens, pools, and positions, with no apparent gaps in the domain.

    Maintenance

    ActivityMaintained
    ResponsivenessLimited data

    Related MCP Connectors

    Related MCP Servers