Skip to content

Commit bccedba

Browse files
committed
feat: Added example environment variable files and test tool scripts
- Added a `.env.example` file with Etherscan API configuration instructions - Updated `README.md` to provide the necessary tools for building the agent - Added a `test_all_tools.py` script to thoroughly test all Etherscan MCP tools and generate reports
1 parent 7ff7916 commit bccedba

File tree

3 files changed

+856
-0
lines changed

3 files changed

+856
-0
lines changed

.env.example

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Etherscan API Configuration
2+
# Get your API key from: https://etherscan.io/apis
3+
ETHERSCAN_API_KEY=your_api_key_here

README.md

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,12 @@ Set your Etherscan API key as an environment variable:
4040
export ETHERSCAN_API_KEY="your_api_key_here"
4141
```
4242

43+
Or create a `.env` file:
44+
```bash
45+
cp .env.example .env
46+
# Edit .env and add your API key
47+
```
48+
4349
## Usage
4450

4551
### Standalone Server
@@ -58,6 +64,21 @@ etherscan_mcp = MCPTools(
5864
)
5965
```
6066

67+
## Testing Tools
68+
69+
To test all tools and generate recommendations for Agent development:
70+
71+
```bash
72+
# Setup
73+
cp .env.example .env
74+
# Add your API key to .env file
75+
76+
# Run comprehensive test
77+
python test_all_tools.py
78+
```
79+
80+
This will test 39+ tools and generate detailed analysis for Agent development. See [`TESTING_SETUP.md`](TESTING_SETUP.md) for details.
81+
6182
## Complete Tool Reference
6283

6384
### 🏦 Account Tools (12 tools)
@@ -151,6 +172,82 @@ etherscan_mcp = MCPTools(
151172
| `proxy_eth_gasPrice` | Get current gas price | `chainid` |
152173
| `proxy_eth_estimateGas` | Estimate gas for transaction | `data`, `to`, `value`, `gas`, `gasPrice` |
153174

175+
## 🤖 Essential Tools for Building Agents
176+
177+
*Based on comprehensive testing of all tools using test_all_tools.py*
178+
179+
### Quick Reference for Agent Development
180+
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** |
193+
194+
#### Complete Essential Tools List
195+
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
204+
205+
**Block Tools (3/4)**
206+
-`block_getblockreward` - Block rewards
207+
-`block_getblocknobytime` - Block by timestamp
208+
-`block_getblocktxnscount` - Transaction count
209+
210+
**Contract Tools (1/4)**
211+
-`contract_getcontractcreation` - Contract creation info
212+
213+
**Transaction Tools (2/2)**
214+
-`transaction_getstatus` - Contract execution status
215+
-`transaction_gettxreceiptstatus` - Receipt status
216+
217+
**Token Tools (2/2)**
218+
-`stats_tokensupply` - Token total supply
219+
-`account_tokenbalance` - Token balance
220+
221+
**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
250+
154251
## 🎯 Use Cases & Examples
155252

156253
### Basic Balance Check

0 commit comments

Comments
 (0)