agentek-eth
Provides tools for connecting to Ethereum network, looking up ENS domains, transferring tokens, and performing security checks for Ethereum-based operations.
Enables connection to the Optimism network for Ethereum-based automation and DeFi interactions.
Provides optional integration with Perplexity for enhanced research capabilities through API key configuration.
Offers connectivity to the Polygon network for token operations, DeFi interactions, and blockchain exploration.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@agentek-eth check my ETH balance on Arbitrum"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 toolscanUnlockSlowC
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
Scored across 127 tools
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 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.
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.
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
Related MCP Connectors
MCP server with quote and live cryptocurrency price tools, local and cloud-deployed transports.
Crypto market intelligence, token rug-checks, and wallet verification in one MCP server.
Self-hosted MCP server: 26 deterministic dev, security, and EVM tools.
An MCP server for deep research or task groups
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA mcp server for tracking cryptocurrency whale transactions.58MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server providing a range of cryptocurrency technical analysis indicators and strategies.1 npm131MIT
- AlicenseBqualityDmaintenanceAn MCP server that provides access to Etherscan blockchain data APIs, allowing users to query Ethereum blockchain information through natural language.645 npm18MIT
- AlicenseAqualityDmaintenanceMCP server providing 10 crypto/DeFi data tools (prices, gas, Fear & Greed, TVL, etc.) with no API keys required.101MIT