The Neo N3 MCP Server is a production-ready Model Context Protocol server that provides comprehensive Neo N3 blockchain integration with 34 tools and 9 resources for blockchain operations.
Core Capabilities:
Network Management: Get current network mode and switch between mainnet/testnet
Blockchain Queries: Retrieve blockchain information, block counts, specific blocks by height/hash, and transaction details
Wallet Operations: Create new wallets with secure private key management and import existing wallets using private keys or WIF format
Asset Management: Check NEO, GAS, and NEP-17 token balances, transfer assets between addresses, estimate transfer fees, and claim accumulated GAS rewards
Contract Interactions: List famous contracts (NEO, GAS, NEP-17 tokens), get detailed contract information including manifest and methods, invoke smart contracts with parameters, and estimate gas costs for invocations
Resources (Read-Only Access): Network status monitoring, blockchain data access, contract registry, and asset information via
neo://URLs
Key Features:
Multi-network support for both mainnet and testnet
Enterprise-grade security with input validation and error handling
Built-in rate limiting and network resilience
Multiple deployment options via NPM, Docker, and direct integration with MCP clients like Claude Desktop
Enables containerized deployment of the Neo N3 MCP server, supporting isolated and consistent execution environments across different platforms.
Hosts the source code repository for the Neo N3 MCP server, enabling version control and collaboration on the codebase.
Supports comprehensive testing of the Neo N3 MCP server functionality, ensuring reliability of blockchain interactions.
Hosts the Neo N3 MCP documentation website, providing users with comprehensive guides and API references for interacting with the Neo N3 blockchain.
Provides tools for running the Neo N3 MCP server as an NPM package using Node.js, offering a simple way to access the blockchain functionality.
Allows installation and distribution of the Neo N3 MCP server as a package through the NPM registry, making it easily accessible to users.
Used for implementing the Neo N3 MCP server with strong typing, providing enhanced development experience and code reliability.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Neo N3 MCP Servercheck my wallet balance on testnet"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Neo N3 MCP Server
MCP Server for Neo N3 Blockchain Integration | Version 1.6.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.
š Quick Start
Install from NPM
# Install globally
npm install -g @r3e/neo-n3-mcp
# Or install locally
npm install @r3e/neo-n3-mcpBasic Usage
# Run with default configuration
npx @r3e/neo-n3-mcp
# Or if installed globally
neo-n3-mcpRelated MCP server: Salesforce MCP Server
āļø Configuration
1. Command Line Configuration
# 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.log2. JSON Configuration
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.6.0"
},
"wallets": {
"directory": "./wallets"
}
}Run with config file:
neo-n3-mcp --config ./neo-mcp-config.json3. Docker Configuration
Using Docker Hub Image
# Basic run
docker run -p 3000:3000 r3enetwork/neo-n3-mcp:1.6.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 \
r3enetwork/neo-n3-mcp:1.6.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 \
r3enetwork/neo-n3-mcp:1.6.0Docker Compose
Create a docker-compose.yml:
version: '3.8'
services:
neo-mcp:
image: r3enetwork/neo-n3-mcp:1.6.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-stoppedRun with:
docker-compose up -dš³ Docker Quick Start
# Quick start with Docker Compose
git clone https://github.com/r3e-network/neo-n3-mcp.git
cd neo-n3-mcp
docker-compose -f docker/docker-compose.yml up -d
# Or build and run manually
npm run docker:build
npm run docker:run
# Development mode
npm run docker:up:devProduction Docker Setup
# Build production image
./scripts/docker-build.sh --tag v1.6.0
# Run with custom configuration
docker run -d \
--name neo-mcp-prod \
-p 3000:3000 \
-e NEO_NETWORK=mainnet \
-v neo-mcp-logs:/app/logs \
neo-n3-mcp:v1.6.0Development Docker Setup
# Build development image
./scripts/docker-build.sh --dev
# Run with hot reload and debugging
docker-compose -f docker/docker-compose.dev.yml up -dš§ Configuration Options
Environment Variables
Variable | Description | Default |
| Default network (mainnet/testnet) |
|
| Mainnet RPC endpoint |
|
| Testnet RPC endpoint |
|
| Logging level (debug/info/warn/error) |
|
| Log file path |
|
| Wallet storage directory |
|
Command Line Options
Option | Description |
| Set default network |
| Mainnet RPC URL |
| Testnet RPC URL |
| Set logging level |
| Set log file path |
| Load configuration from JSON file |
| Show help information |
š ļø MCP Client Integration
Claude Desktop
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"
}
}
}
}Custom MCP Client
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);š Available Tools & Resources
š ļø Tools (34 available)
Network:
get_network_mode,set_network_modeBlockchain:
get_blockchain_info,get_block_count,get_block,get_transactionWallets:
create_wallet,import_walletAssets:
get_balance,transfer_assets,estimate_transfer_feesContracts:
invoke_contract,list_famous_contracts,get_contract_infoAdvanced:
claim_gas,estimate_invoke_fees
š Resources (9 available)
Network Status:
neo://network/status,neo://mainnet/status,neo://testnet/statusBlockchain Data:
neo://mainnet/blockchain,neo://testnet/blockchainContract Registry:
neo://mainnet/contracts,neo://testnet/contractsAsset Information:
neo://mainnet/assets,neo://testnet/assets
š Security
Input Validation: All inputs validated and sanitized
Confirmation Required: Sensitive operations require explicit confirmation
Private Key Security: Keys encrypted and stored securely
Network Isolation: Separate configurations for mainnet/testnet
Rate Limiting: Configurable rate limiting for production deployments
Secure Logging: No sensitive data exposed in logs
ā” Performance & Reliability
Rate Limiting: Built-in rate limiting with configurable thresholds
Error Handling: Comprehensive error handling with proper MCP error codes
Network Resilience: Automatic fallback mechanisms for RPC calls
Production Ready: Systemd service configuration and monitoring support
š Version Management & Release Process
Current Version: 1.6.0
This project follows Semantic Versioning with automated CI/CD pipeline for releases. See our Version Management Guide for detailed information.
š How to Trigger Next Version Release
Method 1: Automated Release Script (Recommended)
# 1. First, do a dry run to see what will happen
./scripts/prepare-release.sh --type minor --dry-run
# 2. If everything looks good, run the actual release preparation
./scripts/prepare-release.sh --type minor
# 3. Push the changes (script will guide you)
git push
# 4. Create GitHub release (triggers full CI/CD pipeline)
gh release create v1.7.0 --generate-notesMethod 2: Manual NPM Version Commands
# Check current version
npm run version:check
# Bump version manually
npm run version:patch # 1.6.0 ā 1.6.1 (bug fixes)
npm run version:minor # 1.6.0 ā 1.7.0 (new features)
npm run version:major # 1.6.0 ā 2.0.0 (breaking changes)
# Then commit and push
git add . && git commit -m "chore: bump version to 1.7.0"
git pushMethod 3: GitHub Release (Direct)
# Using GitHub CLI
gh release create v1.7.0 --generate-notes
# Or manually through GitHub web interface:
# 1. Go to https://github.com/r3e-network/neo-n3-mcp/releases
# 2. Click "Create a new release"
# 3. Tag: v1.7.0, Title: "Release v1.7.0"
# 4. Auto-generate release notes
# 5. Publish releaseš What Happens When You Create a Release
The automated CI/CD pipeline triggers the following workflow:
Phase 1: Testing & Validation ā”
ā Multi-version testing: Node.js 18.x, 20.x, 22.x on ubuntu-latest
ā Code quality: Linting and type checking
ā Unit tests: Core functionality validation
ā Coverage reporting: Automatic upload to Codecov
Phase 2: Build & Docker šØ
ā TypeScript compilation: Build validation
ā Docker builds: Both development and production images
ā Container testing: Docker functionality validation
ā Compose validation: Configuration testing
Phase 3: Security & Audit š
ā Security audit: npm audit for vulnerabilities
ā Dependency check: audit-ci for security issues
ā Package updates: Check for outdated dependencies
Phase 4: Publishing š¦ (Only on release)
š NPM Publishing: Automatic package publishing to npm registry
š³ Docker Publishing: Multi-tag image publishing to Docker Hub
š Versioned tags: Semantic versioning with proper tagging
Phase 5: Deployment š (Only on release)
šÆ Production deployment: Automated deployment notification
š Release tracking: Version monitoring and validation
š Release Types
Type | Version Change | Use Case | Example |
patch | 1.6.0 ā 1.6.1 | Bug fixes, security patches |
|
minor | 1.6.0 ā 1.7.0 | New features, enhancements |
|
major | 1.6.0 ā 2.0.0 | Breaking changes |
|
šÆ Quick Release Commands
# For next minor release (recommended for new features)
./scripts/prepare-release.sh --type minor
# For patch release (bug fixes)
./scripts/prepare-release.sh --type patch
# For major release (breaking changes)
./scripts/prepare-release.sh --type major
# Test what would happen (dry run)
./scripts/prepare-release.sh --type minor --dry-runš Latest Changes (v1.6.0)
⨠Enterprise CI/CD Pipeline: Complete GitHub Actions workflow
š³ Docker Infrastructure: Production and development environments
š Project Organization: Structured folders (docker/, docs/, scripts/)
š§ Automated Publishing: NPM and Docker Hub integration
š Comprehensive Documentation: Guides for all deployment scenarios
š Version Management: Automated release preparation and validation
š Release Documentation
CHANGELOG.md - Complete version history
VERSION_MANAGEMENT.md - Detailed release process
WORKFLOW.md - CI/CD pipeline documentation
š Required Secrets (Already Configured)
ā
NPM_TOKEN- For NPM registry publishingā
DOCKER_USERNAME- Docker Hub usernameā
DOCKER_PASSWORD- Docker Hub access token
š Documentation
API Reference - Complete API documentation
Architecture - System design and components
Examples - Practical usage examples and best practices
Docker Guide - Comprehensive Docker deployment guide
Production Checklist - Production deployment guide
Deployment - Deployment configuration
Testing - Testing and validation
Networks - Network configuration details
Version Management - Release process and versioning
Release Guide - Quick reference for triggering releases
Workflow Guide - CI/CD pipeline documentation
Changelog - Version history and changes
š License
MIT License - see LICENSE file for details.
š Links
NPM Package: https://www.npmjs.com/package/@r3e/neo-n3-mcp
Neo N3 Documentation: https://docs.neo.org/
MCP Protocol: https://modelcontextprotocol.io/