ZAN MCP Server

Model Context Protocol Server for ZAN.top node services.
Introduction
ZAN MCP Server is a server implementation based on the Model Context Protocol specification, specifically designed for ZAN.top blockchain node services. It provides various tools and interfaces for blockchain interaction, enabling AI assistants to seamlessly access and process blockchain data through the MCP protocol.
Features
- Multi-chain Support: Supports multiple EVM-compatible chains including Ethereum, Polygon, BSC, Arbitrum, and Optimism
- Convenient Blockchain Queries: Provides blockchain information, address resolution, and other features
- High-reliability Node Service: Based on ZAN.top's high-performance node service
- Standard MCP Protocol: Fully compliant with Model Context Protocol specification
- Extensible Architecture: Supports easy addition of new blockchain tools and services
Supported Blockchains
- Ethereum: Mainnet, Sepolia, Holesky test networks
- BSC: Mainnet, testnet
- Polygon: Mainnet, Amoy testnet
- Optimism: Mainnet, Sepolia testnet
- Arbitrum: One (Mainnet), Sepolia testnet
- Others: Base, zkSync, Tron, Avalanche, Fantom, Taiko, Mantle
Demo

API
Resources
- EVM Chain Service: Provides interfaces for Ethereum Virtual Machine compatible chains
- Advanced API Service: Provides advanced Web3 API services
- Solana Chain Service: (Coming soon) Will provide interfaces for Solana blockchain operations
Tools
EVM Tools
- evm_get_chain_info: Get information about a specific EVM network
- evm_resolve_ens: Resolve Ethereum Name Service (ENS) domains
- evm_get_supported_networks: Get a list of all supported networks
- evm_get_contract_address: Get deployed smart contract address information
- evm_get_address: Get currently used Ethereum address
- evm_create_access_list: Create an access list for a transaction
- evm_get_balance: Get account balance
- evm_get_transaction_count: Get the number of transactions (nonce) for an address
- evm_get_block: Get block information by block number or hash
- evm_get_block_number: Get the latest block number
- evm_get_block_transaction_count: Get the number of transactions in a block
- evm_call: Execute a smart contract call
- evm_estimate_gas: Estimate gas needed for a transaction
- evm_get_gas_price: Get current gas price
- evm_verify_message: Verify a signed message
- evm_verify_typed_data: Verify a typed data signature
- evm_get_transaction: Get transaction details
- evm_get_transaction_receipt: Get transaction receipt
- evm_get_logs: Get logs matching specific filter criteria
- evm_get_addresses: Get list of available account addresses
- evm_sign_message: Sign a message
- evm_sign_typed_data: Verify a typed data signature
- evm_sign_transaction: Sign a transaction without sending it
- evm_prepare_transaction_request: Prepares a transaction request with gas and nonce
- evm_send_raw_transaction: Send a raw, signed transaction
- evm_send_transaction: Sign and send a transaction
ZAN Advanced API Tools
- zan_evm_get_nft_metadata: Get metadata for a specific NFT contract address
- zan_evm_get_nfts_by_owner: Get NFTs owned by a specific wallet address
- zan_evm_get_nft_ids: Get token IDs list for an NFT contract address
Upcoming Blockchain Support
- Solana Tools: Solana blockchain interaction tools (in development)
- Bitcoin Tools: Bitcoin blockchain interaction tools (planned)
- Aptos Tools: Aptos blockchain interaction tools (planned)
- Sui Tools: Sui blockchain interaction tools (planned)
Usage
Claude Desktop
Add this to your claude_desktop_config.json
:
{
"mcpServers": {
"zan": {
"command": "npx",
"args": [
"-y",
"zan-mcp-server",
"--stdio",
"--api-key",
"<zan_api_key>"
]
}
}
}
Cursor
{
"mcpServers": {
"zan": {
"command": "npx",
"args": [
"-y",
"zan-mcp-server",
"--stdio",
"--api-key",
"<zan_api_key>"
]
}
}
}
VSCode
{
"inputs": [
{
"type": "promptString",
"id": "zan_api_key",
"description": "ZAN Node Service API Key",
"password": false
}
],
"servers": {
"zan": {
"command": "npx",
"args": [
"zan-mcp-server",
"--stdio",
"--api-key",
"${input:zan_api_key}"
]
}
}
}
Note: For write operations (e.g., sending transactions, signing messages), you need to provide the corresponding chain's private key:
- For EVM chains:
--evm-private-key <private-key>
- For Solana:
--solana-private-key <private-key-base58>
Project Integration
import { createStdioServer } from 'zan-mcp-server';
const server = createStdioServer({
});
Development
pnpm install
pnpm dev:watch
pnpm build
pnpm inspect
License
MIT License by Jeason