Token Minter

by kukapay

11 stars
216 downloads
Not rated
GitHub

About

Enables AI assistants to deploy and manage ERC-20 tokens across multiple blockchain networks, providing tools for token creation, balance checking, and transfers using ethers.js and smart contracts.

Details

Author
kukapay
Repository
kukapay/token-minter-mcp
GitHub stars
11
Downloads
216
License
MIT License
Categories
Productivity, Developer Tools, Design, AI, Search, Frontend, Infrastructure, Knowledge Base, Other

- 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.

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Token Minter
    Command (node, npx, python, etc.) node
    Arguments
    • Argument 1 path/to/token-minter-mcp/server/index.js
    Environment
    • INFURA_KEY your infura key
    • PRIVATE_KEY your private key

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

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.

deployToken

Deploys a new ERC-20 token with specified parameters: name, symbol, initialSupply, decimals, and chainId.

transferToken

Transfers ERC-20 tokens from the current account to a specified address. Parameters: tokenAddress, toAddress, amount, chainId.

getTransactionInfo

Retrieves details of a transaction using its hash. Parameters: txHash, chainId.

getTokenBalance

Queries the balance of a specific ERC-20 token for the current account. Parameter: tokenAddress, chainId.

getTokenInfo

Queries metadata of an ERC-20 token using the token address. Parameters: tokenAddress, chainId.

getBalance

Checks the native token balance of the current account on a specified blockchain. Parameter: chainId.

- 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).

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

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

Linux

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

Macos

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

Windows

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

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.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.