Solana Mcp Services

by ArcReactor9

2 stars
265 downloads
Not rated
GitHub

About

Solana MCP Services is an MCP (Model Context Protocol) server that enables large language models like Claude to interact with the Solana blockchain. It provides REST APIs and WebSocket interfaces for querying balances, sending tokens, retrieving transaction history, creating…

Details

Author
ArcReactor9
GitHub stars
2
Downloads
265
Categories
Other

- REST API endpoints for Solana blockchain interaction.
- WebSocket support for real-time updates.
- Built-in HTML test interface for feature testing.
- Custom PumpFun token creation capability.
- Secure handling of blockchain operations.
- Comprehensive error handling and logging.

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Solana Mcp Services
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

The easiest way is to use the deployed service at https://mcp.so/. For self-hosting, clone the repository, install dependencies with npm install, configure the .env file, and start the server with npm start. The server runs on http://localhost:3000 by default.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "solana mcp services": {
            "SolanaMcpService": {
                "command": "docker",
                "args": [
                    "build",
                    "-t",
                    "solana-mcp-server",
                    "."
                ]
            }
        }
    }
}

McpServers

{
    "SolanaMcpService": {
        "command": "docker",
        "args": [
            "build",
            "-t",
            "solana-mcp-server",
            "."
        ]
    }
}

Solana MCP (Model Context Protocol) Server

This is an MCP server that allows large language models (LLMs) like Claude to interact with the Solana blockchain. The service provides a set of APIs and WebSocket interfaces that enable AI models to perform operations such as querying balances, sending tokens, retrieving transaction history, creating custom PumpFun tokens, and more.

Live Service: The MCP service is now live and accessible at https://mcp.so/

Features

- Provides REST API endpoints for Solana blockchain interaction
- Supports WebSocket connections for real-time updates
- Includes handlers specifically designed for MCP
- Built-in HTML test interface for easy testing of all features
- Secure handling of blockchain operations
- Comprehensive error handling and logging
- Custom PumpFun token creation capability

Quick Start

Using the Deployed Service

The easiest way to get started is to use our deployed MCP service:

1. Access the service at https://mcp.so/
2. Use the test interface to try out the available features
3. Integrate with your AI applications using the API endpoints

Self-Hosting

Prerequisites

- Node.js (v14+)
- npm or yarn
- Solana CLI tools (optional, for advanced testing)

Installation

1. Clone this repository and install dependencies:

# Install dependencies
npm install

2. Configure environment variables:

# Copy the example configuration file
copy .env.example .env   # For Windows

cp .env.example .env # For Linux

Edit the .env file to set your configuration

3. Start the server:

npm start

The server will run on http://localhost:3000 by default. You can visit this address to view the test interface.

Project Structure

├── src/
│   ├── controllers/    # API endpoint handlers
│   ├── services/       # Business logic
│   ├── models/         # Data models
│   ├── utils/          # Helper functions
│   ├── middleware/     # Express middleware
│   ├── mcp/            # MCP-specific handlers
│   └── index.js        # Entry point
├── public/             # Static assets
├── tests/              # Test files
└── .env                # Environment configuration

API Endpoints

Network Information

GET /api/network

Get the current Solana network status.

Response:

{
"status": "online",
"currentSlot": 123456789,
"network": "devnet"
}

Balance Query

GET /api/balance/:address

Get the SOL balance for a specified address.

Response:

{
"address": "B4QLphqm5gwfzpo8ibW1EmpoyQwoQybj5v7vJRvXoZn6",
"balance": 12.34,
"unit": "SOL"
}

Transaction History

GET /api/transactions/:address

Get recent transaction history for a specified address.

Response:

{
"transactions": [
{
"signature": "xxxxxxxxxxxxxxxxxxxxxx",
"timestamp": "2023-04-15T14:23:45Z",
"type": "transfer",
"amount": 1.5,
"status": "confirmed"
}
]
}

Create Wallet

POST /api/wallet/create

Create a new Solana wallet (including public and private keys).

Response:

{
"publicKey": "B4QLphqm5gwfzpo8ibW1EmpoyQwoQybj5v7vJRvXoZn6",
"secretKey": "[base58 encoded private key]"
}

Transfer SOL

POST /api/transfer

Send SOL from one address to another.

Request Body:

{
"fromSecretKey": "[base58 encoded private key]",
"toAddress": "B4QLphqm5gwfzpo8ibW1EmpoyQwoQybj5v7vJRvXoZn6",
"amount": 0.05
}

Response:

{
"transactionId": "xxxxxxxxxxxxxxxxxxxxxx",
"status": "confirmed"
}

Account Information

GET /api/account/:address

Get detailed account information for an address.

Response:

{
"address": "B4QLphqm5gwfzpo8ibW1EmpoyQwoQybj5v7vJRvXoZn6",
"lamports": 12340000000,
"executable": false,
"owner": "11111111111111111111111111111111",
"rentEpoch": 123
}

Create PumpFun Token

POST /api/mcp/execute

Create a custom PumpFun token on the Solana blockchain.

Request Body:

{
"tool": "createPumpFunToken",
"params": {
"name": "My Token Name",
"symbol": "MTN",
"description": "This is my custom token",
"twitter": "https://x.com/xxx",
"telegram": "https://t.me/xxx",
"website": "https://mywebsite.com",
"amount": "0.1",
"slippage": "10",
"priorityFee": "0.0005"
}
}

Response:

{
"success": true,
"transaction": "transaction_signature_hash",
"mint": "token_mint_address",
"metadata": "metadata_address"
}

MCP-Specific

POST /api/mcp/execute

Execute MCP-specific operations such as getting balances, retrieving transaction records, sending SOL, etc.

MCP Integration

This service is specifically designed to support AI models like Claude in interacting with the Solana blockchain. The following MCP operations are supported:

- getNetworkStatus - Get network status
- getBalance - Query balance
- getTransactions - Get transaction history
- createWallet - Create a new wallet
- transferSol - Transfer SOL
- getAccountInfo - Get account information
- createPumpFunToken - Create a custom PumpFun token

Example MCP Request

{
  "action": "getBalance",
  "parameters": {
    "address": "B4QLphqm5gwfzpo8ibW1EmpoyQwoQybj5v7vJRvXoZn6"
  }
}

WebSocket Support

The server supports real-time updates and command sending via WebSocket connections. The WebSocket service runs on the same port as the HTTP server.

Connect to WebSocket at: ws://localhost:3000/ws

WebSocket Events

- connect - Connection established
- balance - Balance updates
- transaction - New transaction notifications
- error - Error notifications

Deployment

Recommended Settings for Production Environment

- Use PM2 or Docker for deployment
- Set appropriate environment variables
- Configure HTTPS (recommended for production)
- Set up proper logging
- Implement rate limiting for public-facing APIs

Docker Deployment

# Build the image
docker build -t solana-mcp-server .

Run the container

docker run -p 3000:3000 -d solana-mcp-server

Linux Server Deployment

# Clone the repository
git clone [repository-url] solana-mcp-server
cd solana-mcp-server

Install dependencies

npm install --production

Configure environment

cp .env.example .env nano .env # Edit as needed

Start with PM2 (recommended for production)

npm install -g pm2 pm2 start ecosystem.config.js

Configure PM2 to start on boot

pm2 startup pm2 save

Troubleshooting

Common Issues

1. Connection errors - Check if Solana network is reachable and verify your RPC endpoint
2. Transaction failures - Ensure you have sufficient SOL for transaction fees
3. API rate limiting - Check if you're hitting rate limits on the Solana RPC endpoints
4. WebSocket disconnections - Implement proper reconnection logic in your client

Logs

Check the logs for detailed error information:

# If using PM2
pm2 logs

If using Docker

docker logs [container-id]

Security Considerations

- Private key data should only be handled on the client side and should not be stored on the server
- Use HTTPS in production environments
- Consider adding appropriate authentication mechanisms
- Configure reasonable rate limits
- Regularly update dependencies to patch security vulnerabilities
- Use environment variables for sensitive configuration

Contributing

Issues and pull requests are welcome. Please follow these steps to contribute:

1. Fork the repository
2. Create a feature branch
3. Commit your changes
4. Push to your branch
5. Create a pull request

License

MIT

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.