原始内容
MCP Server
A Node.js server for interacting with the Monad Testnet blockchain network. This server provides a REST API interface for common blockchain operations.
Features
- Express.js REST API
- Web3.js integration for blockchain interaction
- Environment variable configuration
- Basic blockchain operations (get balance, send transactions, etc.)
- Security middleware (helmet, cors)
- Swagger API documentation
- Docker support
Prerequisites
- Node.js (v16 or higher) OR Docker
- npm (v8 or higher) if not using Docker
- Access to a Monad Testnet node
Installation
Standard Installation
Clone the repository:
git clone <repository-url> cd mcp-serverInstall dependencies:
npm installCreate environment file:
cp .env.example .envConfigure your environment variables in
.env:- Set
MONAD_RPC_URLto your Monad Testnet node URL - Set
PORTif you want to use a different port - Add
PRIVATE_KEYif needed for signing transactions
- Set
Docker Installation
Clone the repository:
git clone <repository-url> cd mcp-serverCreate and configure environment file:
cp .env.example .env # Edit .env with your configurationBuild the Docker image:
docker build -t mcp-server .Run the container:
docker run -d \ --name mcp-server \ -p 3000:3000 \ --env-file .env \ -v $(pwd)/logs:/app/logs \ mcp-server
Usage
Standard Usage
Start the development server:
npm run dev
Start the production server:
npm start
Docker Usage
Start the container:
docker start mcp-server
Stop the container:
docker stop mcp-server
View logs:
docker logs mcp-server
API Documentation
The API documentation is available at /api-docs when the server is running. Visit:
http://localhost:3000/api-docs
API Endpoints
- GET
/health- Check server health - GET
/blockchain/latest-block- Get current block number - GET
/blockchain/analyze-block/:blockNumber- Get block analysis - POST
/blockchain/store-data- Store data in contract - GET
/blockchain/get-data- Get stored data - POST
/actions/execute-chain- Execute chain of operations - GET
/actions/parallel-block-analysis- Analyze multiple blocks
Environment Variables
| Variable | Description | Default |
|---|---|---|
| PORT | Server port | 3000 |
| NODE_ENV | Environment mode | development |
| MONAD_RPC_URL | Monad Testnet RPC URL | http://localhost:8545 |
| CONTRACT_ADDRESS | Smart contract address | - |
| CONTRACT_ABI | Smart contract ABI | - |
| LOG_LEVEL | Logging level | info |
Docker Volumes
The container uses the following volume:
/app/logs: Contains application logs (combined.log and error.log)
License
ISC