@@ -8,7 +8,7 @@ A complete Python implementation of the Etherscan Model Context Protocol (MCP) s
88
99## Overview
1010
11- This server provides 53+ tools for accessing Ethereum blockchain data, including:
11+ This server provides 56 comprehensive tools for accessing Ethereum blockchain data, including:
1212
1313- ** Account Tools** : Balance checking, transaction history, internal transactions
1414- ** Block Tools** : Block data, rewards, timing information
@@ -73,11 +73,22 @@ To test all tools and generate recommendations for Agent development:
7373cp .env.example .env
7474# Add your API key to .env file
7575
76- # Run comprehensive test
76+ # Run comprehensive test (tests all 56 tools)
7777python test_all_tools.py
7878```
7979
80- This will test all tools and generate detailed analysis for Agent development.
80+ This will test all 56 tools and generate:
81+ - ** tool_test_results.json** : Raw test results with performance metrics
82+ - ** AGENT_TOOL_ANALYSIS.md** : Comprehensive analysis and agent development recommendations
83+
84+ ### 📊 Agent Development Analysis
85+
86+ For detailed agent development guidance, see ** [ AGENT_TOOL_ANALYSIS.md] ( ./AGENT_TOOL_ANALYSIS.md ) ** which includes:
87+
88+ - ** Performance Metrics** : Response times, output sizes, success rates
89+ - ** Agent Implementation Strategies** : Tool combinations, error handling, context management
90+ - ** Recommended Tool Suites** : Pre-configured toolsets for different use cases
91+ - ** Best Practices** : Rate limiting, caching, pagination strategies
8192
8293## Complete Tool Reference
8394
@@ -174,79 +185,122 @@ This will test all tools and generate detailed analysis for Agent development.
174185
175186## 🤖 Essential Tools for Building Agents
176187
177- * Based on comprehensive testing of all tools using test_all_tools.py*
188+ * Based on comprehensive testing of all 56 tools using test_all_tools.py*
178189
179190### Quick Reference for Agent Development
180191
181- | Category | 🟢 Essential | 🟡 Situational | 🔴 Not Recommended |
182- | ----------| -------------| ----------------| -------------------|
183- | ** Account** | 7 tools | 5 tools | 1 tool |
184- | ** Block** | 3 tools | 0 tools | 1 tool |
185- | ** Contract** | 1 tool | 2 tools | 0 tools |
186- | ** Transaction** | 2 tools | 0 tools | 0 tools |
187- | ** Token** | 2 tools | 0 tools | 0 tools |
188- | ** Gas** | 2 tools | 0 tools | 1 tool |
189- | ** Statistics** | 2 tools | 0 tools | 4 tools |
190- | ** Logs** | 0 tools | 2 tools | 0 tools |
191- | ** RPC** | 4 tools | 1 tool | 0 tools |
192- | ** TOTAL** | ** 24 tools** | ** 7 tools** | ** 8 tools** |
192+ | Category | 🟢 Essential | 🟡 Situational | 🔴 Other Tools | Total |
193+ | ----------| -------------| ----------------| -------------------| ------- |
194+ | ** Account** | 9 tools | 3 tools | 0 tools | 12 tools |
195+ | ** Block** | 3 tools | 0 tools | 1 tool | 4 tools |
196+ | ** Contract** | 3 tools | 0 tools | 1 tool | 4 tools |
197+ | ** Transaction** | 2 tools | 0 tools | 0 tools | 2 tools |
198+ | ** Token** | 2 tools | 0 tools | 0 tools | 2 tools |
199+ | ** Gas** | 2 tools | 0 tools | 1 tool | 3 tools |
200+ | ** Statistics** | 3 tools | 0 tools | 9 tools | 12 tools |
201+ | ** Logs** | 0 tools | 3 tools | 0 tools | 3 tools |
202+ | ** RPC** | 8 tools | 2 tools | 3 tools | 13 tools |
203+ | ** TOTAL** | ** 32 tools** | ** 8 tools** | ** 15 tools ** | ** 56 tools** |
193204
194205#### Complete Essential Tools List
195206
196- ** Account Tools (7/13)**
197- - ✅ ` account_balance ` - ETH balance
198- - ✅ ` account_balancemulti ` - Multiple balances
199- - ✅ ` account_txlistinternal ` - Internal transactions
200- - ✅ ` account_txlistinternal_byhash ` - Internal tx by hash
201- - ✅ ` account_fundedby ` - Funding source
202- - ✅ ` account_getminedblocks ` - Mined blocks
203- - ✅ ` account_txsBeaconWithdrawal ` - Beacon withdrawals
207+ ** Account Tools (9/12)**
208+ - ✅ ` account_balance ` - Single ETH balance (0.6s, 21 chars)
209+ - ✅ ` account_balancemulti ` - Multiple ETH balances (0.62s, 198 chars)
210+ - ✅ ` account_txlistinternal ` - Internal transactions (0.62s, 4.6KB)
211+ - ✅ ` account_txlistinternal_byhash ` - Internal tx by hash (0.58s, 2 chars)
212+ - ✅ ` account_txlistinternal_byblock ` - Internal tx by block (2.29s, 4.7KB)
213+ - ✅ ` account_tokentx ` - ERC-20 transfers (0.65s, 8.1KB)
214+ - ✅ ` account_tokennfttx ` - NFT transfers (0.78s, 8.7KB)
215+ - ✅ ` account_token1155tx ` - ERC-1155 transfers (0.65s, 9KB)
216+ - ✅ ` account_fundedby ` - Funding source (0.62s, 235 chars)
204217
205218** Block Tools (3/4)**
206- - ✅ ` block_getblockreward ` - Block rewards
207- - ✅ ` block_getblocknobytime ` - Block by timestamp
208- - ✅ ` block_getblocktxnscount ` - Transaction count
219+ - ✅ ` block_getblockreward ` - Block rewards (0.59s, 207 chars)
220+ - ✅ ` block_getblocknobytime ` - Block by timestamp (0.58s, 10 chars)
221+ - ✅ ` block_getblocktxnscount ` - Transaction count (0.58s, 4 chars)
209222
210- ** Contract Tools (1/4)**
211- - ✅ ` contract_getcontractcreation ` - Contract creation info
223+ ** Contract Tools (3/4)**
224+ - ✅ ` contract_getabi ` - Contract ABI (0.61s, 8.4KB)
225+ - ✅ ` contract_getsourcecode ` - Source code (0.62s, 25KB)
226+ - ✅ ` contract_getcontractcreation ` - Creation info (0.62s, 24KB)
212227
213228** Transaction Tools (2/2)**
214- - ✅ ` transaction_getstatus ` - Contract execution status
215- - ✅ ` transaction_gettxreceiptstatus ` - Receipt status
229+ - ✅ ` transaction_getstatus ` - Execution status (0.61s, 44 chars)
230+ - ✅ ` transaction_gettxreceiptstatus ` - Receipt status (0.62s, 18 chars)
216231
217232** Token Tools (2/2)**
218- - ✅ ` stats_tokensupply ` - Token total supply
219- - ✅ ` account_tokenbalance ` - Token balance
233+ - ✅ ` stats_tokensupply ` - Token total supply (0.59s, 19 chars)
234+ - ✅ ` account_tokenbalance ` - Token balance (0.6s, 11 chars)
220235
221236** Gas Tools (2/3)**
222- - ✅ ` gas_gasoracle ` - Current gas prices
223- - ✅ ` gas_gasestimate ` - Gas time estimate
224-
225- ** Statistics Tools (2/6)**
226- - ✅ ` stats_ethprice ` - ETH price
227- - ✅ ` stats_nodecount ` - Network node count
228-
229- ** RPC Tools (4/5)**
230- - ✅ ` proxy_eth_blockNumber ` - Latest block
231- - ✅ ` proxy_eth_gasPrice ` - Gas price
232- - ✅ ` proxy_eth_getTransactionByHash ` - Transaction details
233- - ✅ ` proxy_eth_getTransactionCount ` - Address nonce
234-
235- ### 🟡 Situational Tools (7 tools)
236- * Larger outputs or specific use cases, use carefully*
237-
238- ** Large Output Tools (require careful context management)**
239- - ⚠️ ` account_txlist ` - Normal transactions - Use pagination
240- - ⚠️ ` account_tokentx ` - ERC20 transfers - Use pagination
241- - ⚠️ ` account_tokennfttx ` - NFT transfers - Use pagination
242- - ⚠️ ` account_token1155tx ` - ERC1155 transfers - Use pagination
243- - ⚠️ ` contract_getabi ` - Contract ABI - Very technical
244- - ⚠️ ` contract_getsourcecode ` - Source code - Extremely large
245-
246- ** Slower Response Tools**
247- - ⚠️ ` account_txlistinternal_byblock ` - Internal tx by block
248- - ⚠️ ` logs_getLogsByAddress ` - Event logs - Use small ranges
249- - ⚠️ ` logs_getLogsByTopics ` - Event logs - Use small ranges
237+ - ✅ ` gas_gasoracle ` - Current gas prices (0.59s, 277 chars)
238+ - ✅ ` gas_gasestimate ` - Gas time estimate (0.61s, 4 chars)
239+
240+ ** Statistics Tools (3/12)**
241+ - ✅ ` stats_ethprice ` - ETH price (0.58s, 140 chars)
242+ - ✅ ` stats_chainsize ` - Blockchain size (0.6s, 488 chars)
243+ - ✅ ` stats_nodecount ` - Network nodes (0.61s, 58 chars)
244+
245+ ** RPC Tools (8/13)**
246+ - ✅ ` proxy_eth_blockNumber ` - Latest block (0.59s, 11 chars)
247+ - ✅ ` proxy_eth_gasPrice ` - Gas price (0.58s, 12 chars)
248+ - ✅ ` proxy_eth_getTransactionByHash ` - Transaction details (0.61s, 626 chars)
249+ - ✅ ` proxy_eth_getTransactionCount ` - Address nonce (0.59s, 7 chars)
250+ - ✅ ` proxy_eth_getUncleByBlockNumberAndIndex ` - Uncle blocks (0.61s, 4 chars)
251+ - ✅ ` proxy_eth_getBlockTransactionCountByNumber ` - Block tx count (0.59s, 4 chars)
252+ - ✅ ` proxy_eth_getTransactionByBlockNumberAndIndex ` - Tx by index (0.61s, 4 chars)
253+ - ✅ ` proxy_eth_getTransactionReceipt ` - Transaction receipt (0.59s, 1.1KB)
254+ - ✅ ` proxy_eth_call ` - Contract call (0.6s, 68 chars)
255+ - ✅ ` proxy_eth_getCode ` - Contract code (0.59s, 22KB)
256+ - ✅ ` proxy_eth_getStorageAt ` - Storage slot (0.59s, 68 chars)
257+ - ✅ ` proxy_eth_estimateGas ` - Gas estimation (0.6s, 120 chars)
258+
259+ ### 🟡 Situational Tools (8 tools)
260+ * Larger outputs, slower responses, or specific use cases - use carefully*
261+
262+ ** Large Output Tools (require pagination and context management)**
263+ - ⚠️ ` account_txlist ` - Normal transactions (0.62s, 9.6KB) - Use pagination
264+ - ⚠️ ` account_getminedblocks ` - Mined blocks (0.61s, empty for most addresses)
265+ - ⚠️ ` account_txsBeaconWithdrawal ` - Beacon withdrawals (0.61s, empty for pre-merge addresses)
266+
267+ ** Event Log Analysis Tools (powerful but slow)**
268+ - ⚠️ ` logs_getLogsByAddress ` - Event logs by address (0.82s, 7.6KB)
269+ - ⚠️ ` logs_getLogsByTopics ` - Event logs by topics (1.28s, 7.6KB)
270+ - ⚠️ ` logs_getLogsByAddressAndTopics ` - Combined filtering (3.08s, 7.6KB)
271+
272+ ** Large Block Data Tools**
273+ - ⚠️ ` proxy_eth_getBlockByNumber ` - Complete block data (0.58s, can be very large)
274+
275+ ** Variable Size RPC Tools**
276+ - ⚠️ RPC tools marked as situational provide flexible access but require careful parameter management
277+
278+ ** Usage Tips:**
279+ - Use small block ranges for logs tools (1000 blocks max)
280+ - Implement pagination for transaction lists
281+ - Cache results when possible
282+ - Monitor response times and output sizes
283+
284+ ### 🔴 Other Tools (15 tools)
285+ * These tools failed during testing or require Pro accounts*
286+
287+ ** API Errors & Limitations (3 tools)**
288+ - ❌ ` block_getblockcountdown ` - API Error (invalid future block number)
289+ - ❌ ` contract_checkverifystatus ` - API Error (requires valid verification GUID)
290+ - ❌ ` stats_dailyavggaslimit ` - API Error (possible Pro requirement)
291+
292+ ** Pro Account Required (12 tools)**
293+ Most daily statistics tools require Etherscan Pro accounts:
294+ - ❌ ` stats_ethsupply ` / ` stats_ethsupply2 ` - ETH supply data
295+ - ❌ ` stats_dailytxnfee ` - Daily transaction fees
296+ - ❌ ` stats_dailynewaddress ` - Daily new addresses
297+ - ❌ ` stats_dailynetutilization ` - Daily network utilization
298+ - ❌ ` stats_dailyavghashrate ` - Daily average hashrate
299+ - ❌ ` stats_dailytx ` - Daily transaction count
300+ - ❌ ` stats_dailyavgnetdifficulty ` - Daily mining difficulty
301+ - ❌ ` stats_ethdailyprice ` - Historical ETH prices
302+
303+ ** Recommendation** : Use essential tools for reliable agent performance. Pro tools may work with upgraded Etherscan accounts.
250304
251305## 🎯 Use Cases & Examples
252306
0 commit comments