Token Minter MCP
An MCP server providing tools for AI agents to mint ERC-20 tokens, supporting 21 blockchains.
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
-
Clone the Repository:
git clone https://github.com/kukapay/token-minter-mcp.git cd token-minter-mcp/server
-
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
-
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)
-
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.