icon for mcp server

Solana Blockchain Interaction

STDIO

MCP server to interact with Solana blockchain using private key.

Solana MCP Server 🌱

smithery badge

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

  1. Clone the repository
git clone https://github.com/Grandbusta/solana-mcp.git
  1. Install dependencies
npm install
  1. Build the project
npm run build
  1. Create a keypair file Create a file named keypair.json anywhere 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:

  1. In the Cursor settings, go to MCP
  2. Click "Add new MCP server"
  3. 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

WTFPL License

Be the First to Experience MCP Now