Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 51 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,54 @@
# Changelog

All notable changes to this project will be documented in this file.

## [1.2.0] - 2025-11-12

### Added

#### New Tools
- **`get_token_allowance`**: Check ERC20 token allowances for DeFi operations
- **`wait_for_transaction`**: Wait for transaction confirmations with configurable timeout
- **`get_gas_price`**: Get current gas prices in wei and gwei
- **`estimate_fees_per_gas`**: Get EIP-1559 fee estimates (maxFeePerGas, maxPriorityFeePerGas)
- **`get_contract_events`**: Retrieve contract event logs with block range filtering
- **`batch_read_contracts`**: Execute multiple contract read calls in parallel

#### New Services
- ERC20 allowance checking functionality in balance.ts
- Transaction waiting/confirmation with configurable confirmations
- Gas price and fee estimation services
- EIP-1559 fee history support
- Contract event filtering and logging
- Batch contract read operations for improved efficiency

#### Error Handling & Validation
- Custom error types (EVMError, NetworkError, ContractError, TransactionError, ValidationError, ENSResolutionError)
- Comprehensive input validation utilities
- Better error messages and error handling throughout the codebase

#### Testing
- Basic unit test suite for validation utilities
- Test infrastructure setup with Bun test runner
- New test scripts in package.json

### Improved
- Enhanced gas fee management with EIP-1559 support
- Better transaction monitoring and confirmation tracking
- More efficient batch operations for contract reads
- Improved error handling across all services
- Updated documentation with new features
- Version bump to 1.2.0

### Documentation
- Updated README with new tools and features
- Added comprehensive API reference for new tools
- Documented gas and fee management features
- Added examples for new functionality

## [1.1.3] - Previous Release

Previous changes... (see git history)
# [1.2.0](https://github.com/mcpdotdirect/evm-mcp-server/compare/v1.1.3...v1.2.0) (2025-05-23)


Expand Down
29 changes: 25 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,11 +48,11 @@ All services are exposed through a consistent interface of MCP tools and resourc
- **Address balances** for native tokens and all token standards
- **ENS resolution** for human-readable Ethereum addresses (use 'vitalik.eth' instead of '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045')

### Token services
### Token Services

- **ERC20 Tokens**
- Get token metadata (name, symbol, decimals, supply)
- Check token balances
- Check token balances and allowances
- Transfer tokens between addresses
- Approve spending allowances

Expand All @@ -73,14 +73,23 @@ All services are exposed through a consistent interface of MCP tools and resourc
- **Write services** with private key signing
- **Contract verification** to distinguish from EOAs
- **Event logs** retrieval and filtering
- **Batch operations** for multiple contract reads

### Comprehensive Transaction Support

- **Native token transfers** across all supported networks
- **Gas estimation** for transaction planning
- **Transaction status** and receipt information
- **Transaction confirmation waiting** with configurable confirmations
- **Error handling** with descriptive messages

### Gas Price & Fee Management

- **Current gas prices** in wei and gwei
- **EIP-1559 fee estimation** (maxFeePerGas, maxPriorityFeePerGas)
- **Fee history** for informed gas price decisions
- **Network-specific gas optimization**

## 🌐 Supported Networks

### Mainnets
Expand Down Expand Up @@ -391,12 +400,13 @@ console.log(result);

The server provides the following MCP tools for agents. **All tools that accept address parameters support both Ethereum addresses and ENS names.**

#### Token services
#### Token Services

| Tool Name | Description | Key Parameters |
|-----------|-------------|----------------|
| `get-token-info` | Get ERC20 token metadata | `tokenAddress` (address/ENS), `network` |
| `get-token-balance` | Check ERC20 token balance | `tokenAddress` (address/ENS), `ownerAddress` (address/ENS), `network` |
| `get-token-allowance` | Check ERC20 token allowance | `tokenAddress`, `ownerAddress`, `spenderAddress`, `network` |
| `transfer-token` | Transfer ERC20 tokens | `privateKey`, `tokenAddress` (address/ENS), `toAddress` (address/ENS), `amount`, `network` |
| `approve-token-spending` | Approve token allowances | `privateKey`, `tokenAddress` (address/ENS), `spenderAddress` (address/ENS), `amount`, `network` |
| `get-nft-info` | Get NFT metadata | `tokenAddress` (address/ENS), `tokenId`, `network` |
Expand All @@ -407,19 +417,30 @@ The server provides the following MCP tools for agents. **All tools that accept
| `get-erc1155-balance` | Check ERC1155 balance | `tokenAddress` (address/ENS), `tokenId`, `ownerAddress` (address/ENS), `network` |
| `transfer-erc1155` | Transfer ERC1155 tokens | `privateKey`, `tokenAddress` (address/ENS), `tokenId`, `amount`, `toAddress` (address/ENS), `network` |

#### Blockchain services
#### Blockchain Services

| Tool Name | Description | Key Parameters |
|-----------|-------------|----------------|
| `get-chain-info` | Get network information | `network` |
| `get-balance` | Get native token balance | `address` (address/ENS), `network` |
| `transfer-eth` | Send native tokens | `privateKey`, `to` (address/ENS), `amount`, `network` |
| `get-transaction` | Get transaction details | `txHash`, `network` |
| `wait-for-transaction` | Wait for transaction confirmation | `txHash`, `network`, `confirmations`, `timeout` |
| `read-contract` | Read smart contract state | `contractAddress` (address/ENS), `abi`, `functionName`, `args`, `network` |
| `write-contract` | Write to smart contract | `contractAddress` (address/ENS), `abi`, `functionName`, `args`, `privateKey`, `network` |
| `batch-read-contracts` | Read multiple contracts in one call | `calls[]`, `network` |
| `get-contract-events` | Get contract event logs | `contractAddress`, `eventAbi`, `fromBlock`, `toBlock`, `network` |
| `is-contract` | Check if address is a contract | `address` (address/ENS), `network` |
| `resolve-ens` | Resolve ENS name to address | `ensName`, `network` |

#### Gas & Fee Tools

| Tool Name | Description | Key Parameters |
|-----------|-------------|----------------|
| `get-gas-price` | Get current gas price | `network` |
| `estimate-fees-per-gas` | Get EIP-1559 fee estimates | `network` |
| `estimate-gas` | Estimate gas for a transaction | `to`, `value`, `data`, `network` |

### Resources

The server exposes blockchain data through the following MCP resource URIs. All resource URIs that accept addresses also support ENS names, which are automatically resolved to addresses.
Expand Down
Loading