Solana MCP Server
A Model Context Protocol (MCP) server for Solana blockchain interactions, providing comprehensive wallet management, transaction handling, and program interactions.
Features
Wallet Management
- Create new Solana wallets
- Import existing wallets from private keys
- List all managed wallets
- Get wallet balances (SOL and SPL tokens)
Transaction Operations
- Transfer SOL between wallets
- Transfer SPL tokens
- Request SOL airdrops (devnet/testnet only)
- Get transaction details by signature
Account Management
- Get detailed account information
- Create associated token accounts
- List all token accounts for a wallet
- Get token balances
SPL Token Operations (CLI Integration)
- Create new SPL tokens with custom decimals
- Mint tokens to any wallet address
- Burn tokens from accounts
- Freeze/thaw token accounts
- Set and manage token authorities (mint, freeze, account owner, close)
- Get token supply information
- Close token accounts and reclaim rent
- Approve/revoke delegates for token operations
Network Operations
- Switch between Solana networks (mainnet, devnet, testnet, localhost)
- Get network information and status
- Get recent blockhash for transaction building
Installation
npm install
npm run build
Usage
Start the server
npm start
Available Commands
Wallet Management
create_wallet - Create a new Solana wallet
import_wallet - Import existing wallet from private key
list_wallets - List all managed wallets
get_balance - Get SOL balance for a wallet
get_token_balance - Get SPL token balance
Transactions
transfer_sol - Transfer SOL between wallets
transfer_tokens - Transfer SPL tokens
airdrop_sol - Request SOL airdrop (devnet/testnet only)
Account Operations
get_account_info - Get detailed account information
get_transaction - Get transaction details by signature
create_token_account - Create associated token account
get_token_accounts - List all token accounts for a wallet
SPL Token CLI Operations
create_spl_token - Create a new SPL token with custom decimals
mint_tokens - Mint tokens to a wallet address
burn_tokens - Burn tokens from a wallet
freeze_account - Freeze a token account
thaw_account - Thaw (unfreeze) a token account
set_token_authority - Set or change token authority (mint, freeze, account owner, close)
get_token_supply - Get total supply and info for a token
close_token_account - Close a token account and reclaim rent
approve_delegate - Approve a delegate to transfer tokens
revoke_delegate - Revoke delegate approval
Network Operations
switch_network - Switch Solana network
get_network_info - Get current network information
get_recent_blockhash - Get recent blockhash
Supported Networks
- Mainnet: Production Solana network
- Devnet: Development network with free SOL airdrops
- Testnet: Testing network
- Localhost: Local Solana validator
Security Notes
- Private keys are stored in memory only (not persisted)
- For production use, implement secure key storage
- Never share private keys or commit them to version control
Development
npm install
npm run build
npm run dev
Deployment
Smithery Deployment
The server is ready for deployment to Smithery:
smithery build src/index.ts
smithery dev src/index.ts
Manual Deployment
- Clone the repository
- Install dependencies:
npm install
- Build the project:
npm run build
- Run the server:
npm start
Testing
node test-simple.js
node test-comprehensive.js
node test-deployment.js
SPL Token CLI Usage Examples
Create a new SPL token
{
"walletName": "my-wallet",
"decimals": 9,
"freezeAuthority": true
}
Mint tokens
{
"walletName": "my-wallet",
"tokenMint": "TokenMintAddress123...",
"destinationAddress": "RecipientAddress456...",
"amount": 1000
}
Burn tokens
{
"walletName": "my-wallet",
"tokenMint": "TokenMintAddress123...",
"amount": 100
}
Freeze/Thaw accounts
{
"walletName": "my-wallet",
"tokenMint": "TokenMintAddress123...",
"accountAddress": "AccountToFreeze789..."
}
Set token authority
{
"walletName": "my-wallet",
"tokenMint": "TokenMintAddress123...",
"authorityType": "MintTokens",
"newAuthority": "NewAuthorityAddress..."
}
Get token supply
{
"tokenMint": "TokenMintAddress123..."
}
Features Implemented
✅ Wallet Management
- Create new Solana wallets
- Import existing wallets from private keys
- List all managed wallets
- Get wallet balances (SOL and SPL tokens)
✅ Transaction Operations
- Transfer SOL between wallets
- Transfer SPL tokens
- Request SOL airdrops (devnet/testnet only)
- Get transaction details by signature
✅ Account Management
- Get detailed account information
- Create associated token accounts
- List all token accounts for a wallet
- Get token balances
✅ SPL Token CLI Operations
- Create new SPL tokens with custom parameters
- Mint and burn tokens
- Freeze and thaw token accounts
- Manage token authorities (mint, freeze, account owner, close)
- Get token supply and metadata
- Close token accounts and reclaim rent
- Delegate management for token operations
✅ Network Operations
- Switch between Solana networks (mainnet, devnet, testnet, localhost)
- Get network information and status
- Get recent blockhash for transaction building
✅ Performance Optimizations
- Lazy connection initialization (no startup timeouts)
- Network call timeouts (10s default)
- Comprehensive error handling
- Production-ready deployment
License
MIT