A Model Context Protocol (MCP) server that provides comprehensive access to Solana blockchain data through Cline. This server implements a wide range of Solana RPC methods, making it easy to query blockchain information directly through natural language conversations.
- Go to the Releases page
- Download the appropriate binary for your system:
- Linux:
solana-mcp-server-linux-amd64
- macOS Intel:
solana-mcp-server-macos-amd64
- macOS Apple Silicon:
solana-mcp-server-macos-arm64
- Windows:
solana-mcp-server-windows-amd64.exe
- Linux:
- Make the binary executable (Linux/macOS):
chmod +x solana-mcp-server-*
- Configure Claude Desktop:
CONFIG_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/claude" mkdir -p "$CONFIG_DIR" echo "{\"mcpServers\":{\"solana\":{\"command\":\"$PWD/solana-mcp-server-*\",\"env\":{\"SOLANA_RPC_URL\":\"https://api.mainnet-beta.solana.com\"}}}}" > "$CONFIG_DIR/config.json"
TEMP_DIR=$(mktemp -d) && cd "$TEMP_DIR" && git clone https://github.com/opensvm/solana-mcp-server.git . && cargo build --release && CONFIG_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/claude" && mkdir -p "$CONFIG_DIR" && echo "{\"mcpServers\":{\"solana\":{\"command\":\"$PWD/target/release/solana-mcp-server\",\"env\":{\"SOLANA_RPC_URL\":\"https://api.mainnet-beta.solana.com\"}}}}" > "$CONFIG_DIR/config.json" || { rm -rf "$TEMP_DIR"; exit 1; }
-
getAccountInfo
: Returns all information associated with the account of provided Pubkey- Input:
pubkey
(string) - Pubkey of account to query, as base-58 encoded string - Returns: Account data, balance, owner, and other metadata
- Input:
-
getMultipleAccounts
: Returns account information for a list of Pubkeys- Input:
pubkeys
(array of strings) - List of Pubkeys to query - Returns: Array of account information
- Input:
-
getProgramAccounts
: Returns all accounts owned by the provided program Pubkey- Input:
programId
(string) - Program Pubkey to query - Returns: Array of owned accounts with their data
- Input:
-
getBalance
: Returns the SOL balance of an account- Input:
pubkey
(string) - Account Pubkey to query - Returns: Balance in lamports (1 SOL = 1,000,000,000 lamports)
- Input:
-
getLargestAccounts
: Returns the 20 largest accounts by lamport balance- Input: None
- Returns: Array of accounts with their balances
-
getBlock
: Returns identity and transaction information about a confirmed block- Input:
slot
(integer) - Slot number to query - Returns: Block data including hash, parent, and transactions
- Input:
-
getBlocks
: Returns a list of confirmed blocks between two slots- Input:
start_slot
(integer),end_slot
(integer) - Returns: Array of block slots
- Input:
-
getBlocksWithLimit
: Returns a list of confirmed blocks starting at given slot- Input:
start_slot
(integer),limit
(integer) - Returns: Array of block slots up to limit
- Input:
-
getBlockTime
: Returns estimated production time of a block- Input:
slot
(integer) - Returns: Unix timestamp (seconds since epoch)
- Input:
-
getBlockHeight
: Returns current block height- Input: None
- Returns: Current block height
-
getBlockCommitment
: Returns commitment for particular block- Input:
slot
(integer) - Returns: Block commitment information
- Input:
-
getBlockProduction
: Returns recent block production information- Input: None
- Returns: Block production stats
-
getHealth
: Returns current health status of the node- Input: None
- Returns: "ok" if healthy, error otherwise
-
getVersion
: Returns current Solana version running on the node- Input: None
- Returns: Version info including feature set
-
getIdentity
: Returns identity pubkey for the current node- Input: None
- Returns: Node identity pubkey
-
getClusterNodes
: Returns information about all cluster nodes- Input: None
- Returns: Array of node information
-
getVoteAccounts
: Returns account info and stake for all voting accounts- Input: None
- Returns: Current and delinquent vote accounts
-
getEpochInfo
: Returns information about the current epoch- Input: None
- Returns: Epoch info including slot and block height
-
getEpochSchedule
: Returns epoch schedule information- Input: None
- Returns: Epoch schedule parameters
-
getInflationGovernor
: Returns current inflation governor- Input: None
- Returns: Inflation parameters
-
getInflationRate
: Returns specific inflation values for current epoch- Input: None
- Returns: Inflation rates
-
getInflationReward
: Returns inflation reward for list of addresses- Input:
addresses
(array of strings), optionalepoch
(integer) - Returns: Array of inflation rewards
- Input:
-
getTokenAccountBalance
: Returns token balance of an SPL Token account- Input:
accountAddress
(string) - Token account to query - Returns: Token amount with decimals
- Input:
-
getTokenAccountsByDelegate
: Returns all token accounts by approved delegate- Input:
delegateAddress
(string) - Returns: Array of token accounts
- Input:
-
getTokenAccountsByOwner
: Returns all token accounts by token owner- Input:
ownerAddress
(string) - Returns: Array of token accounts
- Input:
-
getTokenLargestAccounts
: Returns 20 largest accounts of a token type- Input:
mint
(string) - Token mint to query - Returns: Array of largest token accounts
- Input:
-
getTokenSupply
: Returns total supply of an SPL Token type- Input:
mint
(string) - Token mint to query - Returns: Total supply with decimals
- Input:
-
getTransaction
: Returns transaction details for confirmed transaction- Input:
signature
(string) - Transaction signature - Returns: Transaction info and status
- Input:
-
getSignaturesForAddress
: Returns signatures for address's transactions- Input:
address
(string), optionallimit
(integer) - Returns: Array of transaction signatures
- Input:
-
getSignatureStatuses
: Returns statuses of a list of signatures- Input:
signatures
(array of strings) - Returns: Array of transaction statuses
- Input:
-
getTransactionCount
: Returns current Transaction count from ledger- Input: None
- Returns: Transaction count
-
simulateTransaction
: Simulate sending a transaction- Input:
transaction
(string) - Encoded transaction - Returns: Simulation results
- Input:
-
sendTransaction
: Send a transaction- Input:
transaction
(string) - Signed encoded transaction - Returns: Transaction signature
- Input:
-
getFeeForMessage
: Get the fee for a message- Input:
message
(string) - Encoded message - Returns: Fee in lamports
- Input:
-
getLatestBlockhash
: Returns the latest blockhash- Input: None
- Returns: Blockhash and last valid slot
-
isBlockhashValid
: Returns whether a blockhash is still valid- Input:
blockhash
(string) - Returns: Validity status
- Input:
-
getStakeMinimumDelegation
: Returns stake minimum delegation- Input: None
- Returns: Minimum stake delegation in lamports
-
getSupply
: Returns information about current supply- Input: None
- Returns: Supply info including total and circulating
-
requestAirdrop
: Request an airdrop of lamports to a Pubkey- Input:
pubkey
(string),lamports
(integer) - Returns: Transaction signature
- Input:
Once configured, you can interact with the Solana blockchain through natural language in Cline. Here are some example queries:
- "What's the SOL balance of address Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr?"
- "Show me the current slot number"
- "Get information about the latest block"
- "What's the current inflation rate?"
- "Show me the token accounts owned by address ..."
SOLANA_RPC_URL
: (Optional) The Solana RPC endpoint to use. Defaults to "https://api.mainnet-beta.solana.com" if not specified.
- Rust and Cargo
- Solana CLI tools (optional, for testing)
cargo build
cargo run
MIT License