smithery.yaml•11.3 kB
name: rootstock-mcp
displayName: Rootstock Blockchain MCP Server
description: Model Context Protocol server for Rootstock blockchain (testnet) interactions - wallet management, tRBTC transactions, smart contract interactions, and complete ERC20/ERC721 token deployment and management on Chain ID 31
version: 1.1.0
author: Rootstock MCP Team
license: MIT
homepage: https://github.com/cuongpo/rootstock-mcp-server
repository: https://github.com/cuongpo/rootstock-mcp-server
categories:
- blockchain
- cryptocurrency
- wallet
- defi
- tokens
- erc20
- erc721
keywords:
- rootstock
- rootstock-testnet
- blockchain
- cryptocurrency
- wallet
- trbtc
- smart-contracts
- defi
- mcp
- model-context-protocol
- chain-31
- erc20
- erc721
- token
- token-deployment
- token-minting
- nft
runtime: "typescript"
startCommand:
type: http
configSchema:
type: object
required: ["privateKey"]
properties:
privateKey:
type: string
title: "Private Key"
description: "Your funded private key for Rootstock testnet (Chain ID 31). Example: 3cf90f4acdaee72ab90c0da7eda158ec1e908a5698aaf11a99070bba5da18b17"
rpcUrl:
type: string
title: "RPC URL"
description: "Rootstock testnet RPC endpoint"
default: "https://public-node.testnet.rsk.co"
chainId:
type: number
title: "Chain ID"
description: "Rootstock testnet chain ID"
default: 31
networkName:
type: string
title: "Network Name"
description: "Network display name"
default: "Rootstock Testnet"
explorerUrl:
type: string
title: "Explorer URL"
description: "Block explorer URL"
default: "https://explorer.testnet.rootstock.io"
currencySymbol:
type: string
title: "Currency Symbol"
description: "Native currency symbol"
default: "tRBTC"
environment:
required:
- ROOTSTOCK_RPC_URL
- ROOTSTOCK_PRIVATE_KEYS
optional:
- ROOTSTOCK_CHAIN_ID
- ROOTSTOCK_NETWORK_NAME
- ROOTSTOCK_CURRENCY_SYMBOL
- ROOTSTOCK_EXPLORER_URL
- ROOTSTOCK_ADDRESSES
- ROOTSTOCK_CURRENT_ADDRESS
tools:
- name: create_wallet
description: Create a new Rootstock wallet with generated mnemonic
category: wallet
- name: import_wallet
description: Import existing wallet using private key or mnemonic
category: wallet
- name: list_wallets
description: List all available wallets
category: wallet
- name: get_balance
description: Get wallet balance (native or ERC20 tokens)
category: query
- name: get_native_balance
description: Get native tRBTC balance of a wallet address
category: query
- name: send_transaction
description: Send native tokens or ERC20 tokens
category: transaction
- name: get_transaction
description: Get transaction details by hash
category: query
- name: get_block
description: Get block information
category: query
- name: get_network_info
description: Get network status and information
category: query
- name: estimate_gas
description: Estimate transaction gas costs
category: utility
- name: set_current_wallet
description: Set active wallet for transactions
category: wallet
- name: get_current_wallet
description: Get current active wallet info
category: wallet
- name: deploy_erc20_token
description: Deploy new ERC20 token contracts (standard or mintable) with custom parameters
category: token
parameters:
- name: name
type: string
required: true
description: Token name (e.g., "My Token")
- name: symbol
type: string
required: true
description: Token symbol (e.g., "MTK")
- name: decimals
type: number
required: false
description: Token decimals (default: 18)
- name: initialSupply
type: string
required: true
description: Initial token supply
- name: mintable
type: boolean
required: false
description: Whether token should be mintable (default: false)
- name: gasLimit
type: string
required: false
description: Gas limit for deployment
- name: gasPrice
type: string
required: false
description: Gas price for deployment
- name: get_token_info
description: Get comprehensive ERC20 token information including name, symbol, decimals, supply, and owner
category: token
parameters:
- name: tokenAddress
type: string
required: true
description: ERC20 token contract address
- name: mint_tokens
description: Mint additional tokens for mintable ERC20 contracts (owner only)
category: token
parameters:
- name: tokenAddress
type: string
required: true
description: ERC20 token contract address
- name: to
type: string
required: true
description: Address to mint tokens to
- name: amount
type: string
required: true
description: Amount of tokens to mint
- name: gasLimit
type: string
required: false
description: Gas limit for minting
- name: gasPrice
type: string
required: false
description: Gas price for minting
- name: deploy_erc721_token
description: Deploy new ERC721 (NFT) token contracts with custom parameters
category: nft
parameters:
- name: name
type: string
required: true
description: NFT collection name (e.g., "My NFT Collection")
- name: symbol
type: string
required: true
description: NFT collection symbol (e.g., "MYNFT")
- name: mintable
type: boolean
required: false
description: Whether NFT should be mintable (default: false)
- name: gasLimit
type: string
required: false
description: Gas limit for deployment
- name: gasPrice
type: string
required: false
description: Gas price for deployment
- name: get_nft_info
description: Get comprehensive ERC721 NFT information including collection details and specific token info
category: nft
parameters:
- name: tokenAddress
type: string
required: true
description: ERC721 NFT contract address
- name: tokenId
type: string
required: false
description: Optional token ID to get specific token info
- name: mint_nft
description: Mint a new NFT for mintable ERC721 contracts (owner only)
category: nft
parameters:
- name: tokenAddress
type: string
required: true
description: ERC721 NFT contract address
- name: to
type: string
required: true
description: Address to mint NFT to
- name: tokenId
type: string
required: true
description: Unique token ID for the new NFT
- name: tokenURI
type: string
required: false
description: Metadata URI for the NFT (optional)
- name: gasLimit
type: string
required: false
description: Gas limit for minting
- name: gasPrice
type: string
required: false
description: Gas price for minting
examples:
- name: Configuration Setup
description: Configure your private key for ERC20/ERC721 token deployment
code: |
// Required environment variables for token operations:
// ROOTSTOCK_RPC_URL=https://public-node.testnet.rsk.co
// ROOTSTOCK_PRIVATE_KEYS=3cf90f4acdaee72ab90c0da7eda158ec1e908a5698aaf11a99070bba5da18b17
// Optional environment variables:
// ROOTSTOCK_CHAIN_ID=31
// ROOTSTOCK_CURRENT_ADDRESS=0x742d35Cc6634C0532925a3b8D4C9db96590c6C87
// Import your wallet if not configured via environment
await mcp.callTool('import_wallet', {
privateKey: '3cf90f4acdaee72ab90c0da7eda158ec1e908a5698aaf11a99070bba5da18b17'
});
- name: Basic Wallet Operations
description: Create wallet, check balance, send transaction
code: |
// Create a new wallet
await mcp.callTool('create_wallet', {
name: 'MyWallet'
});
// Check native balance
await mcp.callTool('get_native_balance', {
address: '0x742d35Cc6634C0532925a3b8D4C9db96590c6C87'
});
// Send transaction
await mcp.callTool('send_transaction', {
to: '0x1234567890123456789012345678901234567890',
amount: '0.1'
});
- name: ERC20 Token Deployment and Management
description: Deploy and manage ERC20 tokens
code: |
// Deploy a new ERC20 token
await mcp.callTool('deploy_erc20_token', {
name: 'My Token',
symbol: 'MTK',
decimals: 18,
initialSupply: '1000000',
mintable: true
});
// Get token information
await mcp.callTool('get_token_info', {
tokenAddress: '0xTokenContractAddress'
});
// Mint additional tokens (for mintable tokens)
await mcp.callTool('mint_tokens', {
tokenAddress: '0xTokenContractAddress',
to: '0x1234567890123456789012345678901234567890',
amount: '1000'
});
- name: ERC721 NFT Deployment and Management
description: Deploy and manage ERC721 NFTs
code: |
// Deploy a new ERC721 NFT contract
await mcp.callTool('deploy_erc721_token', {
name: 'My NFT Collection',
symbol: 'MYNFT',
mintable: true
});
// Get NFT collection information
await mcp.callTool('get_nft_info', {
tokenAddress: '0xNFTContractAddress'
});
// Mint a new NFT
await mcp.callTool('mint_nft', {
tokenAddress: '0xNFTContractAddress',
to: '0x1234567890123456789012345678901234567890',
tokenId: '1',
tokenURI: 'https://example.com/metadata/1.json'
});
documentation:
setup: |
1. Install Node.js 18 or higher
2. Clone the repository
3. Run `npm install`
4. Copy `.env.example` to `.env` and configure
5. Run `npm run build`
6. Start with `npm start`
configuration: |
Configure environment variables in `.env`:
- ROOTSTOCK_RPC_URL: Blockchain RPC endpoint
- ROOTSTOCK_PRIVATE_KEYS: Comma-separated private keys
- ROOTSTOCK_CURRENT_ADDRESS: Default wallet address
usage: |
The server provides comprehensive tools for:
- Wallet management (create, import, list, switch)
- Balance queries (native tRBTC and ERC20 tokens)
- Transaction operations (send, query, track)
- ERC20 token deployment (standard and mintable contracts)
- ERC721 NFT deployment (standard and mintable contracts)
- Token management (info retrieval, minting, transfers)
- NFT management (info retrieval, minting, transfers)
- Blockchain queries (blocks, network info, gas estimation)
- Explorer integration (direct links to transactions and contracts)
support:
documentation: https://github.com/cuongpo/rootstock-mcp-server/blob/main/README.md
issues: https://github.com/cuongpo/rootstock-mcp-server/issues
discussions: https://github.com/cuongpo/rootstock-mcp-server/discussions