MCP ExplorerExplorer

Mondeployer

@adrianmonadon 9 months ago
1 MIT
FreeCommunity
AI Systems
Deploy Monad contracts using AI + MCP

Overview

What is Mondeployer

MonDeployer is a tool designed for deploying Monad contracts using AI and MCP, specifically tailored for Solidity contracts on the Monad testnet.

Use cases

Use cases include deploying simple Solidity contracts, testing contract functionality on the Monad testnet, and debugging deployment issues with the provided MCP plugins.

How to use

To use MonDeployer, create an ‘env.js’ file with your private key, write your Solidity contract with the correct pragma, and utilize the provided MCP plugins for deployment.

Key features

Key features include support for Solidity version 0.8.28, multiple MCP plugins for different deployment scenarios, and solutions for common JSON parsing errors.

Where to use

MonDeployer is primarily used in blockchain development environments, particularly for deploying smart contracts on the Monad testnet.

Content

MonDeployer - Monad Contract Deployment Tool

This repository provides tools for compiling and deploying Solidity contracts to the Monad testnet.

⚠️ Solidity Version Note

Use Solidity 0.8.x & up only. Monad is compatible with standard EVM 0.8.x series. For best results, keep your contracts simple and tested.

🛠 Getting Started

  1. Create a file named env.js in the root directory and add your private key like this:
// env.js
exports.PRIVATE_KEY = 'your_private_key_here';
  1. Write your contract using the correct pragma:
// SPDX-License-Identifier: MIT
pragma solidity 0.8.28;

contract YourContract {
  // ...
}

🔧 Solution to JSON Parsing Errors

If you see errors like:

MCP monad-mcp: Unexpected token 'L', "Looking fo"... is not valid JSON
MCP monad-mcp: Unexpected token 'D', "Deploying "... is not valid JSON
MCP monad-mcp: Unexpected token 'M', "Monad MCP "... is not valid JSON

We have multiple solutions for you:

1. Ultra-Simple Mock MCP Plugin (Most Reliable)

For fastest debugging, use our ultra-simple MCP plugin that always returns a mock success:

npm run start-simple-mcp

This plugin ignores your contract and always returns a successful deployment response.

🧠 Claude MCP Integration

{
  "mcpServers": {
    "monad-mcp": {
      "command": "node",
      "args": [
        "/path/to/yourfiles/monad-mcp/multi-tool-plugin-v2.cjs"
      ]
    }
  }
}

To start the MCP server manually:

cd monad-mcp && node multi-tool-plugin-v2.cjs

2. Strict MCP Plugin (Auto-Fixes Solidity Version)

For actual contract deployment with version auto-fixing:

npm run start-strict-mcp

This plugin automatically fixes ANY Solidity version to 0.8.28 and redirects all non-JSON output to stderr.

Configure Claude Desktop with:

{
  "mcpServers": {
    "monad-mcp": {
      "command": "node",
      "args": [
        "/path/to/DropFlow/monad-mcp/strict-mcp-plugin.js"
      ]
    }
  }
}

🚀 Fastest Option: Just Deploy a Simple Contract

Skip Claude entirely and deploy a simple storage contract directly:

npm run simple-deploy

This deploys a pre-configured SimpleStorage contract using Solidity 0.8.28.

Example Deployments

The repository includes several examples:

# Deploy the SimpleStorage contract (simplest)
npm run deploy-storage

# Deploy the SimpleToken contract
npm run deploy-token

# Alternative clean deployment script with better error handling
npm run deploy-token-clean

Custom Contract Deployment

To deploy a custom contract:

  1. Create your contract file with pragma solidity 0.8.28
  2. Use the deployment utility in your script:
const { compileAndDeploy } = require('./src/utils/contract-deployer');
const fs = require('fs');
const { PRIVATE_KEY } = require('./env.js');

const contractSource = fs.readFileSync('path/to/your/contract.sol', 'utf8');

async function deploy() {
  const result = await compileAndDeploy(
    contractSource,
    PRIVATE_KEY,
    [], // constructor args
    { solcVersion: '0.8.28', saveArtifacts: true }
  );

  console.log(`Contract deployed at: ${result.address}`);
}

deploy();

Troubleshooting

If you encounter JSON parsing errors like:

MCP monad-mcp: Unexpected token 'S', "Starting c"... is not valid JSON

Try these solutions in order:

  1. Use the ultra-simple MCP plugin: npm run start-simple-mcp (always succeeds with mock data)
  2. Use the strict MCP plugin: npm run start-strict-mcp (fixes version issues automatically)
  3. Check your contract’s pragma version: npm run check-solidity examples/YourContract.sol
  4. Use the clean deployment script: npm run deploy-token-clean
  5. Fix your contract’s Solidity version: npm run fix-solidity YourContract.sol
  6. Deploy directly without Claude: npm run simple-deploy

Always check your contract’s pragma version first:

pragma solidity 0.8.x;  // Must be exact version ^0.8.0 or similar

Template Contract

A template contract is available at monad-mcp/solidity-template.sol that you can use as a starting point for any new contracts.

Security Note

  • Always keep your env.js file secure and never commit it to version control.
  • The private key is never hardcoded, printed, or exposed in logs or code.

MonDeployer

Tools

No tools

Comments

Recommend MCP Servers

View All MCP Servers