Web3 Assistant MCP
# Web3 Assistant MCP
A secure blockchain smart contract interaction toolkit with multi-chain support.
## Key Features
- š Smart Contract ABI Analysis
- š” Contract Method Invocation (view/nonpayable/payable)
- š Local Wallet Address Management
- š Multi-chain Support
## Project Structure
```
web3-assistant-mcp/
āāā src/
ā āāā common/
ā ā āāā clients/ # Blockchain client implementations
ā ā āāā constants/ # Network configurations
ā ā āāā services/ # Core services (contract, wallet)
ā ā āāā utils/ # Helper functions
ā āāā tools/ # MCP tool implementations
ā āāā types/ # TypeScript type definitions
āāā test/ # Test suites
āāā .env.example # Environment template
āāā smithery.yaml # MCP server configuration
```
## Quick Start
### Prerequisites
- Node.js 18+
- pnpm
- Configure environment variables (copy .env.example):
```bash
cp .env.example .env
```
### Installation
```bash
pnpm install
```
### Build
```bash
pnpm build
```
## MCP Configuration Example
```json
{
"mcpServers": {
"web3-assistant": {
"command": "node",
"args": [
"***/dist/index.js"
],
"env": {
"ALCHEMY_KEY": "your_alchemy_key",
"INFURA_KEY": "your_infura_key",
"ANKR_KEY": "your_ankr_key",
"PRIVATE_KEY": "your_wallet_private_key"
}
}
}
}
```
**Path Note**: When using MCP locally, replace `***` with the absolute path to your MCP server directory.
## MCP Tools Documentation
### š analyze_contract_abi - ABI Analysis
```json
{
"abi": "[Contract ABI JSON string]"
}
```
**Features**:
- Parse contract ABI and list callable methods
- Auto-detect method types (view/pure/payable)
- Input/output parameter types
- State mutability
### š call_contract - Contract Interaction
```json
{
"abi": "[Method ABI]",
"networkName": "base|baseSepolia",
"contractAddress": "0x...",
"functionName": "methodName",
"args": ["param1", param2],
"value": 0.001 // ETH amount for payable methods (in ETH)
}
```
**Supported Operations**:
- Read contract state (view/pure)
- Send transactions (nonpayable)
- Token transfers (payable)
### š local_wallet_address - Wallet Address
No parameters required:
```json
{
"address": "0x..."
}
```
## Network Configuration
Pre-configured networks in `src/common/constants/networks`:
- `mainnet`: Ethereum Mainnet
- `sepolia`: Ethereum Sepolia
- `base`: Base Mainnet
- `baseSepolia`: Base Testnet
## Security Guidelines
1. **Private Key Management**: Configure via environment variables
2. **Transaction Verification**: Confirm details for payable methods
3. **Gas Limits**: Automatic safe gas calculation
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose: analyze_contract_abi is for inspecting contract functions, call_contract is for executing functions, and local_wallet_address is for retrieving wallet information. There is no overlap or ambiguity between these tools.
The tools follow a consistent snake_case naming convention, but the naming pattern is not perfectly uniform: analyze_contract_abi and call_contract use verb_noun format, while local_wallet_address is a noun phrase. This minor deviation keeps it mostly consistent.
With only 3 tools, the set feels thin for a 'Web3 Assistant' domain, which typically involves more operations like deploying contracts, checking balances, or interacting with blockchains. While the tools cover some basics, the count is borderline for the apparent scope.
There are significant gaps in the tool surface for Web3/blockchain interactions. Missing are essential operations such as deploying contracts, reading blockchain data (e.g., balances, transactions), or sending transactions. This incompleteness will likely cause agent failures in common workflows.