索拉纳
STDIO基于MCP协议的索拉纳区块链数据访问服务器
基于MCP协议的索拉纳区块链数据访问服务器
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.
The Solana MCP Server supports two modes of operation:
For integration with Claude Desktop and other MCP clients:
solana-mcp-server stdio # or just: solana-mcp-server
For HTTP API access and integration with web applications:
# Run on default port 3000 solana-mcp-server web # Run on custom port solana-mcp-server web --port 8080
Web Service Endpoints:
POST /api/mcp - MCP JSON-RPC APIGET /health - Health checkGET /metrics - Prometheus metrics📖 Complete Web Service Documentation
🚀 Install Solana MCP Server for Claude Desktop in one command:
curl -fsSL https://raw.githubusercontent.com/opensvm/solana-mcp-server/main/scripts/install.sh | bash
This will:
Alternative install methods:
# Using wget wget -qO- https://raw.githubusercontent.com/opensvm/solana-mcp-server/main/scripts/install.sh | bash # Manual download and run curl -fsSL https://raw.githubusercontent.com/opensvm/solana-mcp-server/main/scripts/install.sh -o install.sh chmod +x install.sh ./install.sh
After installation, restart Claude Desktop and start querying Solana data directly!
solana-mcp-server-linux-amd64solana-mcp-server-macos-amd64solana-mcp-server-macos-arm64solana-mcp-server-windows-amd64.exechmod +x solana-mcp-server-*
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"
git clone https://github.com/opensvm/solana-mcp-server.git cd solana-mcp-server cargo build --release
Then configure Claude Desktop with the path to target/release/solana-mcp-server.
🚀 One-liner deployment scripts for all platforms:
# Local development ./scripts/deploy-local.sh # Docker container ./scripts/deploy-docker.sh # Kubernetes with autoscaling ./scripts/deploy-k8s.sh # AWS Lambda ./scripts/deploy-lambda.sh # Google Cloud Functions ./scripts/deploy-gcf.sh # Vercel Edge Functions ./scripts/deploy-vercel.sh
See scripts/README.md for detailed usage and requirements for each deployment option.
The Solana MCP Server supports dynamic scaling to handle variable load efficiently:
/metrics endpoint/health endpointThe server now supports both traditional stdio transport and HTTP JSON-RPC mode:
# Run as stdio transport (default) solana-mcp-server stdio # Run as web service solana-mcp-server web --port 3000
API Endpoints:
POST /api/mcp - Full MCP JSON-RPC 2.0 APIGET /health - Health check with capability informationGET /metrics - Prometheus metrics📚 Complete MCP JSON-RPC API Documentation
solana_mcp_rpc_requests_total - Total RPC requests by method and networksolana_mcp_rpc_request_duration_seconds - Request latency histogramsolana_mcp_rpc_requests_failed_total - Failed requests by error type# Deploy with Kubernetes autoscaling kubectl apply -f k8s/deployment.yaml kubectl apply -f k8s/hpa.yaml # Check autoscaling status kubectl get hpa solana-mcp-server-hpa --watch # Access metrics kubectl port-forward svc/solana-mcp-service 8080:8080 curl http://localhost:8080/metrics
📊 Complete Autoscaling Documentation | 🐳 Docker Scaling Guide
getAccountInfo: Returns all information associated with the account of provided Pubkey
pubkey (string) - Pubkey of account to query, as base-58 encoded stringgetMultipleAccounts: Returns account information for a list of Pubkeys
pubkeys (array of strings) - List of Pubkeys to querygetProgramAccounts: Returns all accounts owned by the provided program Pubkey
programId (string) - Program Pubkey to querygetBalance: Returns the SOL balance of an account
pubkey (string) - Account Pubkey to querygetLargestAccounts: Returns the 20 largest accounts by lamport balance
filter (string) - Filter by account type (circulating|nonCirculating)getMinimumBalanceForRentExemption: Returns minimum balance for rent exemption
dataSize (integer) - Size of account data in bytesgetBlock: Returns identity and transaction information about a confirmed block
slot (integer) - Slot number to querygetBlocks: Returns a list of confirmed blocks between two slots
start_slot (integer), end_slot (integer)getBlocksWithLimit: Returns a list of confirmed blocks starting at given slot
start_slot (integer), limit (integer)getBlockTime: Returns estimated production time of a block
slot (integer)getBlockHeight: Returns current block height
getBlockCommitment: Returns commitment for particular block
slot (integer)getBlockProduction: Returns recent block production information
identity (string) - Validator identity, range (object)getSlot: Returns the current slot the node is processing
commitment (string) - Commitment levelgetSlotLeaders: Returns slot leaders for a given slot range
startSlot (integer), limit (integer)getFirstAvailableBlock: Returns the lowest confirmed block still available
getGenesisHash: Returns the genesis hash of the ledger
getHealth: Returns current health status of the node
getVersion: Returns current Solana version running on the node
getIdentity: Returns identity pubkey for the current node
getClusterNodes: Returns information about all cluster nodes
getLeaderSchedule: Returns the leader schedule for an epoch
slot (integer), identity (string)getVoteAccounts: Returns account info and stake for all voting accounts
votePubkey (string), configuration parametersgetEpochInfo: Returns information about the current epoch
getEpochSchedule: Returns epoch schedule information
getInflationGovernor: Returns current inflation governor
getInflationRate: Returns specific inflation values for current epoch
getInflationReward: Returns inflation reward for list of addresses
addresses (array of strings), optional epoch (integer)getTokenAccountBalance: Returns token balance of an SPL Token account
accountAddress (string) - Token account to querygetTokenAccountsByDelegate: Returns all token accounts by approved delegate
delegateAddress (string)getTokenAccountsByOwner: Returns all token accounts by token owner
ownerAddress (string)getTokenLargestAccounts: Returns 20 largest accounts of a token type
mint (string) - Token mint to querygetTokenSupply: Returns total supply of an SPL Token type
mint (string) - Token mint to querygetTransaction: Returns transaction details for confirmed transaction
signature (string) - Transaction signaturegetSignaturesForAddress: Returns signatures for address's transactions
address (string), optional limit (integer)getSignatureStatuses: Returns statuses of a list of signatures
signatures (array of strings)getTransactionCount: Returns current Transaction count from ledger
simulateTransaction: Simulate sending a transaction
transaction (string) - Encoded transactionsendTransaction: Send a transaction
transaction (string) - Signed encoded transactiongetFeeForMessage: Get the fee for a message
message (string) - Encoded messagegetLatestBlockhash: Returns the latest blockhash
isBlockhashValid: Returns whether a blockhash is still valid
blockhash (string)getStakeMinimumDelegation: Returns stake minimum delegation
getSupply: Returns information about current supply
requestAirdrop: Request an airdrop of lamports to a Pubkey
pubkey (string), lamports (integer)Once configured, you can interact with the Solana blockchain through natural language in Cline. Here are some example queries:
This project undergoes regular security audits using cargo audit. Our CI/CD pipeline automatically scans for vulnerabilities and generates reports.
docs/security-audit.mdFor detailed security information, vulnerability assessments, and risk analysis, see:
📋 Security Audit Documentation
For comprehensive documentation including architecture, deployment guides, and complete API reference, see:
🚀 Developer Onboarding Guide - Start here if you're new to the project!
SOLANA_RPC_URL: (Optional) The Solana RPC endpoint to use. Defaults to "https://api.mainnet-beta.solana.com" if not specified.SOLANA_COMMITMENT: (Optional) Commitment level (processed|confirmed|finalized). Defaults to "confirmed".SOLANA_PROTOCOL_VERSION: (Optional) MCP protocol version. Defaults to latest.cargo build
cargo run
MIT License