Neo N3 Blockchain Integration
STDIOStandardized interface for AI agents to interact with Neo N3 blockchain.
Standardized interface for AI agents to interact with Neo N3 blockchain.
MCP Server for Neo N3 Blockchain Integration | Version 1.5.0
A production-ready MCP server providing Neo N3 blockchain integration with 34 tools and 9 resources for wallet management, asset transfers, contract interactions, and blockchain queries.
# Install globally npm install -g @r3e/neo-n3-mcp # Or install locally npm install @r3e/neo-n3-mcp
# Run with default configuration npx @r3e/neo-n3-mcp # Or if installed globally neo-n3-mcp
# Specify network neo-n3-mcp --network testnet # Custom RPC endpoints neo-n3-mcp --mainnet-rpc https://mainnet1.neo.coz.io:443 --testnet-rpc https://testnet1.neo.coz.io:443 # Enable logging neo-n3-mcp --log-level info --log-file ./neo-mcp.log # Complete example neo-n3-mcp \ --network mainnet \ --mainnet-rpc https://mainnet1.neo.coz.io:443 \ --testnet-rpc https://testnet1.neo.coz.io:443 \ --log-level debug \ --log-file ./logs/neo-mcp.log
Create a neo-mcp-config.json
file:
{ "network": "mainnet", "rpc": { "mainnet": "https://mainnet1.neo.coz.io:443", "testnet": "https://testnet1.neo.coz.io:443" }, "logging": { "level": "info", "file": "./logs/neo-mcp.log", "console": true }, "server": { "name": "neo-n3-mcp-server", "version": "1.5.0" }, "wallets": { "directory": "./wallets" } }
Run with config file:
neo-n3-mcp --config ./neo-mcp-config.json
# Basic run docker run -p 3000:3000 r3e/neo-n3-mcp:1.5.0 # With environment variables docker run -p 3000:3000 \ -e NEO_NETWORK=mainnet \ -e NEO_MAINNET_RPC=https://mainnet1.neo.coz.io:443 \ -e NEO_TESTNET_RPC=https://testnet1.neo.coz.io:443 \ -e LOG_LEVEL=info \ r3e/neo-n3-mcp:1.5.0 # With volume for persistent data docker run -p 3000:3000 \ -v $(pwd)/wallets:/app/wallets \ -v $(pwd)/logs:/app/logs \ -e NEO_NETWORK=testnet \ r3e/neo-n3-mcp:1.5.0
Create a docker-compose.yml
:
version: '3.8' services: neo-mcp: image: r3e/neo-n3-mcp:1.5.0 ports: - "3000:3000" environment: - NEO_NETWORK=mainnet - NEO_MAINNET_RPC=https://mainnet1.neo.coz.io:443 - NEO_TESTNET_RPC=https://testnet1.neo.coz.io:443 - LOG_LEVEL=info - LOG_FILE=/app/logs/neo-mcp.log volumes: - ./wallets:/app/wallets - ./logs:/app/logs - ./config:/app/config restart: unless-stopped
Run with:
docker-compose up -d
FROM node:18-alpine WORKDIR /app COPY package*.json ./ RUN npm ci --only=production COPY dist/ ./dist/ COPY config/ ./config/ # Create necessary directories RUN mkdir -p wallets logs EXPOSE 3000 CMD ["node", "dist/index.js"]
Variable | Description | Default |
---|---|---|
NEO_NETWORK | Default network (mainnet/testnet) | testnet |
NEO_MAINNET_RPC | Mainnet RPC endpoint | https://mainnet1.neo.coz.io:443 |
NEO_TESTNET_RPC | Testnet RPC endpoint | https://testnet1.neo.coz.io:443 |
LOG_LEVEL | Logging level (debug/info/warn/error) | info |
LOG_FILE | Log file path | ./logs/neo-mcp.log |
WALLET_DIR | Wallet storage directory | ./wallets |
Option | Description |
---|---|
--network | Set default network |
--mainnet-rpc | Mainnet RPC URL |
--testnet-rpc | Testnet RPC URL |
--log-level | Set logging level |
--log-file | Set log file path |
--config | Load configuration from JSON file |
--help | Show help information |
Add to your Claude Desktop config (~/.cursor/mcp.json
or similar):
{ "mcpServers": { "neo-n3": { "command": "npx", "args": [ "-y", "@r3e/neo-n3-mcp", "--network", "testnet" ], "disabled": false, "env": { "NEO_NETWORK": "testnet", "LOG_LEVEL": "info" } } } }
For mainnet configuration:
{ "mcpServers": { "neo-n3": { "command": "npx", "args": [ "-y", "@r3e/neo-n3-mcp", "--network", "mainnet" ], "disabled": false, "env": { "NEO_NETWORK": "mainnet", "NEO_MAINNET_RPC": "https://mainnet1.neo.coz.io:443", "NEO_TESTNET_RPC": "https://testnet1.neo.coz.io:443", "LOG_LEVEL": "info" } } } }
import { Client } from '@modelcontextprotocol/sdk/client/index.js'; import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js'; const transport = new StdioClientTransport({ command: 'npx', args: ['@r3e/neo-n3-mcp', '--network', 'mainnet'] }); const client = new Client( { name: 'my-neo-client', version: '1.0.0' }, { capabilities: {} } ); await client.connect(transport);
get_network_mode
, set_network_mode
get_blockchain_info
, get_block_count
, get_block
, get_transaction
create_wallet
, import_wallet
get_balance
, transfer_assets
, estimate_transfer_fees
invoke_contract
, list_famous_contracts
, get_contract_info
claim_gas
, estimate_invoke_fees
neo://network/status
, neo://mainnet/status
, neo://testnet/status
neo://mainnet/blockchain
, neo://testnet/blockchain
neo://mainnet/contracts
, neo://testnet/contracts
neo://mainnet/assets
, neo://testnet/assets
MIT License - see LICENSE file for details.