An MCP server providing tools for AI agents to mint ERC-20 tokens, supporting 21 blockchains.
5 stars1 watching0 forks

Token Minter MCP

An MCP server providing tools for AI agents to mint ERC-20 tokens, supporting 21 blockchains.

License Node.js Status

Features

  • Deploy new ERC-20 tokens with customizable parameters.
  • Query token metadata (name, symbol, decimals, total supply).
  • Initiate token transfers (returns transaction hash without confirmation).
  • Retrieve transaction details by hash.
  • Check native token balance of the current account.
  • Access token metadata via URI.
  • Interactive prompt for deployment guidance.

Tools

  • deployToken: Deploys a new ERC-20 token (name, symbol, initialSupply, decimals, chainId).
  • transferToken: Transfers ERC-20 tokens (tokenAddress, toAddress, amount, chainId).
  • getTransactionInfo: Retrieves transaction details (txHash, chainId).
  • getTokenBalance: Queries the balance of a specific ERC-20 token for the current account.
  • getTokenInfo: Queries ERC-20 token metadata (tokenAddress, chainId).
  • getBalance: Checks native token balance (chainId).

Resources

  • tokenMetadata: Exposes token metadata via token://{chainId}/{address}.

Prompts

  • deployTokenGuide: Guides token deployment with required parameters (chainId).

Prerequisites

  • Node.js v18.x or higher
  • npm (typically bundled with Node.js)
  • A valid Infura API key for EVM network access
  • An Ethereum private key for signing transactions

Installation

  1. Clone the Repository:

    git clone https://github.com/kukapay/token-minter-mcp.git
    cd token-minter-mcp/server
    
  2. Install Dependencies:

    npm install
    

Configuration

{
  "mcpServers": {
    "Token-Minter-MCP": {
      "command": "node",
      "args": ["path/to/token-minter-mcp/server/index.js"],
      "env": {
        "INFURA_KEY": "your infura key",
        "PRIVATE_KEY": "your private key"
      }
    }
  }
}

Usage

  1. Examples:

    I want to create a new token called 'RewardToken' with the symbol 'RWD' on Arbitrum. It should have 5 million tokens in initial supply and use 6 decimal places.

    Token deployment initiated on Arbitrum (chainId: 42161)!
    Name: RewardToken
    Symbol: RWD
    Decimals: 6
    Initial Supply: 5000000 tokens
    Transaction Hash: 0xabc123...
    Note: Use 'getTransactionInfo' to check deployment status.
    

    Can you tell me how much POL I have in my wallet on the Polygon network?

    Account Balance on Polygon (chainId: 137):
    Address: 0xYourAddressHere
    Balance: 25.3478 POL
    

    What’s the balance of my newly created token on Polygon?

    Token Balance on Polygon (chainId: 137):
    Address: 0xYourAddressHere
    Token: 0xYourTokenAddressHere
    Symbol: ABCD
    Balance: 10000000.00 ABCD
    

    Please transfer 150.75 USDC from my account to 0xRecipientAddressHere on Polygon."

    Transfer initiated on Polygon (chainId: 137)!
    Token: 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174
    To: 0xRecipientAddressHere
    Amount: 150.75 (150.75 tokens)
    Transaction Hash: 0xdef456...
    Note: Use 'getTransactionInfo' to check transfer status.
    

    What’s the status of my token deployment transaction with hash 0xabc123... on Arbitrum?

    Transaction Info on Arbitrum (chainId: 42161):
    Hash: 0xabc123...
    From: 0xYourAddressHere
    To: Contract Creation
    Value: 0 ETH
    Status: Success
    Deployed Contract Address: 0xNewTokenAddressHere
    

    Give me the details of the token at address 0xNewTokenAddressHere on Arbitrum.

    Token Info on Arbitrum (chainId: 42161):
    Address: 0xNewTokenAddressHere
    Name: RewardToken
    Symbol: RWD
    Decimals: 6
    Total Supply: 5000000
    

    How do I deploy a token on Polygon? What details do I need to provide?

    To deploy a token on Polygon (chainId: 137), use the "deployToken" tool with these parameters:
    - name: The token's full name (e.g., "MyToken")
    - symbol: The token's ticker (e.g., "MTK")
    - initialSupply: Amount in token units (e.g., 1000000 for 1M tokens, default 1,000,000)
    - decimals: Optional number of decimals (default is 18)
    - chainId: Optional chain ID (default is 1 for Ethereum)
    
  2. Local Testing:

    Intall dependencies:

    cd token-minter-mcp
    npm install
    

    Start a local Hardhat node:

    npx hardhat node
    

    Use chainId: 1337 in your prompts to test locally.

Supported Networks

| Chain ID | Network Name | Native Token | |----------------|--------------|--------------| | 1 | Ethereum | ETH | | 137 | Polygon | POL | | 56 | BSC | BNB | | 42161 | Arbitrum | ETH | | 10 | Optimism | ETH | | 59144 | Linea | ETH | | 8453 | Base | ETH | | 81457 | Blast | ETH | | 11297108109 | Palm | PALM | | 43114 | Avalanche | AVAX | | 42220 | Celo | CELO | | 324 | zkSync | ETH | | 5000 | Mantle | MNT | | 204 | opBNB | BNB | | 534352 | Scroll | ETH | | 1923 | Swellchain | ETH | | 130 | Unichain | ETH | | 23448594291968334 | Starknet | ETH | | 80094 | Berachain | BERA | | 999 | Hyperliquid | HYPE | | 146 | Sonic | S | | 1337 | Localhost | ETH |

License

This project is licensed under the MIT License. See the LICENSE file for details.

Features

Deploy
Query
Transfer
Balance
Metadata
Interactive
Multichain

Category

Development Tools