https://github.com/jeasonstudio/zan-mcp-server
Model Context Protocol Server for ZAN Node Service.
https://github.com/jeasonstudio/zan-mcp-server
Last synced: 4 months ago
JSON representation
Model Context Protocol Server for ZAN Node Service.
- Host: GitHub
- URL: https://github.com/jeasonstudio/zan-mcp-server
- Owner: jeasonstudio
- License: mit
- Created: 2025-04-08T02:15:56.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2025-04-18T08:44:03.000Z (6 months ago)
- Last Synced: 2025-05-22T20:25:52.872Z (5 months ago)
- Language: TypeScript
- Size: 238 KB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ZAN MCP Server
[![NPM version][npm-image]][npm-url]
[npm-image]: https://img.shields.io/npm/v/zan-mcp-server.svg?style=flat-square
[npm-url]: https://npmjs.org/package/zan-mcp-serverModel Context Protocol Server for [ZAN.top](https://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`:
```json
{
"mcpServers": {
"zan": {
"command": "npx",
"args": [
"-y",
"zan-mcp-server",
"--stdio",
"--api-key",
""
]
}
}
}
```### Cursor
```json
{
"mcpServers": {
"zan": {
"command": "npx",
"args": [
"-y",
"zan-mcp-server",
"--stdio",
"--api-key",
""
]
}
}
}
```### VSCode
```json
{
"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 `
> - For Solana: `--solana-private-key `### Project Integration
```javascript
import { createStdioServer } from 'zan-mcp-server';// Create and start server
const server = createStdioServer({
// Configuration options
});// Handle server lifecycle
```## Development
```bash
# Install dependencies
pnpm install# Development mode
pnpm dev:watch# Build
pnpm build# Test with MCP inspector
pnpm inspect
```## License
[MIT License by Jeason](LICENSE)