Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/opensvm/solana-mcp-server
solana mcp sever to enable solana rpc methods
https://github.com/opensvm/solana-mcp-server
agent agent-tools mpc mpc-tools opensvm solana
Last synced: 12 days ago
JSON representation
solana mcp sever to enable solana rpc methods
- Host: GitHub
- URL: https://github.com/opensvm/solana-mcp-server
- Owner: openSVM
- Created: 2025-01-14T01:17:16.000Z (23 days ago)
- Default Branch: main
- Last Pushed: 2025-01-22T11:04:47.000Z (15 days ago)
- Last Synced: 2025-01-22T11:28:12.178Z (15 days ago)
- Topics: agent, agent-tools, mpc, mpc-tools, opensvm, solana
- Language: Rust
- Homepage: http://opensvm.com
- Size: 98.6 KB
- Stars: 3
- Watchers: 0
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Solana MCP Server
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.
## Installation
### Using Pre-built Binaries
1. Go to the [Releases](https://github.com/opensvm/solana-mcp-server/releases) page
2. 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`
3. Make the binary executable (Linux/macOS):
```bash
chmod +x solana-mcp-server-*
```
4. Configure Claude Desktop:
```bash
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"
```### Building from Source
```bash
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; }
```## Available RPC Methods
### Account Methods
- `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- `getMultipleAccounts`: Returns account information for a list of Pubkeys
- Input: `pubkeys` (array of strings) - List of Pubkeys to query
- Returns: Array of account information- `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- `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)- `getLargestAccounts`: Returns the 20 largest accounts by lamport balance
- Input: None
- Returns: Array of accounts with their balances### Block Methods
- `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- `getBlocks`: Returns a list of confirmed blocks between two slots
- Input: `start_slot` (integer), `end_slot` (integer)
- Returns: Array of block slots- `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- `getBlockTime`: Returns estimated production time of a block
- Input: `slot` (integer)
- Returns: Unix timestamp (seconds since epoch)- `getBlockHeight`: Returns current block height
- Input: None
- Returns: Current block height- `getBlockCommitment`: Returns commitment for particular block
- Input: `slot` (integer)
- Returns: Block commitment information- `getBlockProduction`: Returns recent block production information
- Input: None
- Returns: Block production stats### System Methods
- `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### Epoch and Inflation Methods
- `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), optional `epoch` (integer)
- Returns: Array of inflation rewards### Token Methods
- `getTokenAccountBalance`: Returns token balance of an SPL Token account
- Input: `accountAddress` (string) - Token account to query
- Returns: Token amount with decimals- `getTokenAccountsByDelegate`: Returns all token accounts by approved delegate
- Input: `delegateAddress` (string)
- Returns: Array of token accounts- `getTokenAccountsByOwner`: Returns all token accounts by token owner
- Input: `ownerAddress` (string)
- Returns: Array of token accounts- `getTokenLargestAccounts`: Returns 20 largest accounts of a token type
- Input: `mint` (string) - Token mint to query
- Returns: Array of largest token accounts- `getTokenSupply`: Returns total supply of an SPL Token type
- Input: `mint` (string) - Token mint to query
- Returns: Total supply with decimals### Transaction Methods
- `getTransaction`: Returns transaction details for confirmed transaction
- Input: `signature` (string) - Transaction signature
- Returns: Transaction info and status- `getSignaturesForAddress`: Returns signatures for address's transactions
- Input: `address` (string), optional `limit` (integer)
- Returns: Array of transaction signatures- `getSignatureStatuses`: Returns statuses of a list of signatures
- Input: `signatures` (array of strings)
- Returns: Array of transaction statuses- `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- `sendTransaction`: Send a transaction
- Input: `transaction` (string) - Signed encoded transaction
- Returns: Transaction signature### Other Methods
- `getFeeForMessage`: Get the fee for a message
- Input: `message` (string) - Encoded message
- Returns: Fee in lamports- `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- `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## Usage Examples
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 ..."## Environment Variables
- `SOLANA_RPC_URL`: (Optional) The Solana RPC endpoint to use. Defaults to "https://api.mainnet-beta.solana.com" if not specified.
## Development
### Prerequisites
- Rust and Cargo
- Solana CLI tools (optional, for testing)### Building
```bash
cargo build
```### Running
```bash
cargo run
```## License
MIT License