Solana Mcp

Interact with the Solana blockchain using a private key to retrieve wallet information, check balances, and transfer SOL. This server provides essential blockchain functionalities for applications without complex implementation.

Author

Solana Mcp logo

Grandbusta

No License

Quick Info

GitHub GitHub Stars 10
NPM Weekly Downloads 0
Tools 1
Last Updated 16/6/2025

Tags

solana apis blockchain solana blockchain grandbusta solana interact solana

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