About Solana MCP Server 🌱
Solana MCP Server is an MCP server for interacting with Solana using a configured private key. It reads network and wallet information and can transfer SOL; its default RPC endpoint is Solana devnet.
Key features
- 01Get the latest slot
- 02Read wallet address and balance
- 03Transfer SOL to an address
Use cases
- 01Check the latest Solana slot
- 02Review SOL, Lamports, and USD balances
- 03Transfer SOL from the configured wallet
MCP support
It exposes Solana slot lookup, wallet details, and SOL transfers as tools for MCP clients. A keypair file is required; the default RPC endpoint is Solana devnet.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMESolana MCP Server 🌱
A MCP server to interact with the Solana blockchain with your own private key.
📖 Table of Contents
✨ Features
- Get latest slot
- Get wallet address
- Get wallet balance
- Transfer SOL
⚙️ Setup
Installing via Smithery
To install Solana MCP for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @Grandbusta/solana-mcp --client claude
Manual Setup
- Clone the repository
git clone https://github.com/Grandbusta/solana-mcp.git
- Install dependencies
npm install
- Build the project
npm run build
- Create a keypair file
Create a file named
keypair.jsonanywhere you want and copy your private key into it. Check the example-keypair.json file for an example.
NB: RPC endpoint is set to api.devnet.solana.com by default. If you want to use a different endpoint, you can set it in the run.sh file.
Integration with Cursor
To integrate with Cursor, follow these steps:
- In the Cursor settings, go to MCP
- Click "Add new MCP server"
- Enter the following information:
- Name: Solana MCP
- Type: command
- Command:
/path/to/your/solana-mcp/run.sh /path/to/your/keypair.json
Example command: /Users/username/projects/solana-mcp/run.sh /Users/username/Documents/keypair.json
🛠️ Available Tools
1. get-latest-slot
Returns the latest slot number:
368202671
2. get-wallet-address
Returns the wallet address:
5GTuMBag1M8tfe736kcV1vcAE734Zf1SRta8pmWf82TJ
3. get-wallet-balance
Returns the wallet balance in SOL, Lamports, and USD:
{
"lamportsBalance": "4179966000",
"solanaBalnce": 4.179966,
"usdBalance": "553.0513"
}
4. transfer
Transfers SOL to a recipient address:
{
"blockTime": "1742316463",
"meta": {
"computeUnitsConsumed": "150",
"err": null,
"fee": "5000",
"innerInstructions": [],
"loadedAddresses": {
"readonly": [],
"writable": []
},
"logMessages": [
"Program 11111111111111111111111111111111 invoke [1]",
"Program 11111111111111111111111111111111 success"
],
"postBalances": [
"4179966000",
"819999000",
"1"
],
"postTokenBalances": [],
"preBalances": [
"4399970000",
"600000000",
"1"
],
"preTokenBalances": [],
"rewards": [],
"status": {
"Ok": null
}
},
"slot": "368211978",
"transaction": {
"message": {
"accountKeys": [
"6qhddtBoEHqTc3VM35a3rb3aLUe6vDQfmLigo2G4r5s1",
"5GTuMBag1M8tfe736kcV1vcAE734Zf1SRta8pmWf82TJ",
"11111111111111111111111111111111"
],
"addressTableLookups": [],
"header": {
"numReadonlySignedAccounts": 0,
"numReadonlyUnsignedAccounts": 1,
"numRequiredSignatures": 1
},
"instructions": [
{
"accounts": [
0,
1
],
"data": "3Bxs452Q9hdvHuwd",
"programIdIndex": 2,
"stackHeight": null
}
],
"recentBlockhash": "BLqtPS9BHPp9CRFTrVAsrxFMWC98VTUAQ3vi12bSquLo"
},
"signatures": [
"3bLyqbPn26ofkaxSAVqadQnHqXu9hyoryixmKCn69nunKg2cSryDVAWnfCcYPcGtjSmXcMHfrzc3bw25zFTabXvs"
]
},
"version": "0"
}
🧑💻 Contributing
Contributions are welcome! Please open an issue or submit a pull request.
🔖 License
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.