GitHub - kukapay/token-minter-mcp: An MCP server providing tools for AI agents to mint ERC-20 tokens across multiple blockchains. (original) (raw)
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:
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:
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.