Autonomous Solana meme-coin sniper — controlled by Claude, Cursor, Devin, or any MCP-compatible AI.
32+ MCP tools. Pump.fun + Jupiter execution. Built-in safety, trend matching, take-profit ladders, and P&L tracking.
What Is This?
Solana Snipe Bot MCP is a Model Context Protocol (MCP) server that gives AI assistants full control over the Solana Sniper Bot. It exposes 32+ tools for starting and stopping the bot, buying and selling tokens, tuning every strategy setting, querying positions and P&L, monitoring Pulse trends, managing wallets, and more.
How It Works
Your AI Assistant (Claude, Cursor, Devin, etc.)
│
│ talks MCP (stdio)
▼
solana_snipe_bot_mcp/server.py ← runs on your machine
│
│ reads/writes JSON state files in your snipe-bot directory
▼
SolanaSniperBot.exe (optional) ← the Windows GUI / bot executable
│
▼
Helius Solana RPC / WebSocket ← scans new launches and executes transactions
│
▼
Pump.fun bonding curve ← direct buy/sell instructions
Jupiter Aggregator ← graduated-token swaps
The MCP server runs as a separate process and communicates with the running bot through a command_queue.json file. It also reads config.json, open_positions.json, trade_history.json, pnl_tally.json, positions_status.json, and pulse_data.json to give your AI assistant a complete, real-time view of the bot's state.
Quick Start
Prerequisites
- Windows 10/11
- Python 3.10+
- A funded Solana wallet (trading wallet + savings wallet keypairs)
- Helius RPC endpoint with API key
- An MCP-compatible AI assistant (Claude Desktop, Cursor, Devin, Codex, etc.)
Step 1 — Install the MCP Server
From PyPI:
pip install solana-snipe-bot-mcp
Or run it directly from the repo:
git clone https://github.com/Solara-Snipe-Bot/Solara-Snipe-Bot.git
cd Solara-Snipe-Bot
python -m solana_snipe_bot_mcp
Step 2 — Configure Your AI Assistant
Set the project directory so the MCP server can find your bot's state files:
# Windows
set SOLANA_SNIPER_BOT_DIR=P:\snipe-bot
# Or on the command line when launching
python -m solana_snipe_bot_mcp
Claude Desktop
Edit claude_desktop_config.json:
{
"mcpServers": {
"solana-snipe-bot": {
"command": "python",
"args": ["-m", "solana_snipe_bot_mcp"],
"env": {
"SOLANA_SNIPER_BOT_DIR": "P:\\snipe-bot"
}
}
}
}
Cursor
Edit .cursor/mcp.json:
{
"mcpServers": {
"solana-snipe-bot": {
"command": "python",
"args": ["-m", "solana_snipe_bot_mcp"],
"env": {
"SOLANA_SNIPER_BOT_DIR": "P:\\snipe-bot"
}
}
}
}
Devin
Add to mcp_config.json:
{
"mcpServers": {
"snipe-bot": {
"command": "python",
"args": ["P:\\snipe-bot\\mcp_server.py"]
}
}
}
Claude Code
claude mcp add solana-snipe-bot -- python -m solana_snipe_bot_mcp
Any MCP Client (generic)
The server uses stdio transport. Launch it with:
set SOLANA_SNIPER_BOT_DIR=P:\snipe-bot
python -m solana_snipe_bot_mcp
Step 3 — Start the Bot
Ask your AI assistant:
"Start the Solana sniper bot"
The assistant calls start_bot. Then try:
"What is my wallet balance and open positions?"
Architecture
MCP Server (solana_snipe_bot_mcp/server.py)
A standalone FastMCP server that:
- Reads
config.jsonand all bot state files fromSOLANA_SNIPER_BOT_DIR - Writes commands to
command_queue.jsonfor the running bot to poll - Exposes 32+ tools grouped by function
- Returns JSON summaries for config, positions, P&L, Pulse, wallet, fees, and log
Bot (snipe_bot.py)
The Windows bot that:
- Subscribes to Solana WebSocket for new token launches
- Runs safety and market filters
- Executes Pump.fun bonding-curve or Jupiter swaps
- Monitors open positions with take-profit, stop-loss, and rug signals
- Writes state files that the MCP server reads
All 32+ Tools
Bot Control (6 tools)
| Tool | Parameters | Description |
|---|---|---|
start_bot |
— | Start the snipe bot (equivalent to the GUI 'Start Bot' button) |
stop_bot |
— | Stop the snipe bot gracefully |
sell_all |
— | Panic-sell ALL open positions immediately |
sell_position |
mint |
Sell a single position by mint address |
buy_mint |
mint |
Buy a specific token by mint address after safety checks |
get_bot_stats |
— | Get operational statistics from the bot log |
Configuration (3 tools)
| Tool | Parameters | Description |
|---|---|---|
get_config |
— | Get the current config.json as JSON |
update_config |
key, value |
Update a single config key; some settings require a restart |
save_settings |
— | Persist current settings to config.json |
Positions & Status (5 tools)
| Tool | Parameters | Description |
|---|---|---|
get_open_positions |
— | List all unsold (open) positions |
get_positions_status |
— | Real-time P&L, portfolio value, SOL price, active count |
get_graduation_status |
mint (optional) |
Check if a token graduated from Pump.fun to Raydium |
close_position |
mint |
Manually close a position without executing an on-chain sell |
get_bot_status |
— | Summary of open positions, wallet, and P&L |
Trade History & P&L (4 tools)
| Tool | Parameters | Description |
|---|---|---|
get_trade_history |
limit |
Get recent BUY/SELL records |
clear_trade_history |
— | Clear trade_history.json (irreversible) |
get_pnl_tally |
— | Get the persistent all-time P&L tally |
reset_pnl_tally |
— | Reset the P&L tally to zero |
P&L, Fees & Wallet (4 tools)
| Tool | Parameters | Description |
|---|---|---|
get_wallet_balances |
— | Trading wallet, savings wallet, and open-position values |
transfer_sol |
direction, amount_sol |
Move SOL between trading and savings wallets |
move_all_sol |
direction |
Move ALL SOL between wallets |
get_fee_summary |
— | Transaction fees, ATA rent locked/recoverable |
P&L Refresh (1 tool)
| Tool | Parameters | Description |
|---|---|---|
refresh_pnl |
— | Force a full P&L recompute from history and balances |
Pulse Trend Matching (4 tools)
| Tool | Parameters | Description |
|---|---|---|
get_pulse_results |
— | Get tokens that matched current Google/X trending topics |
set_pulse_match_mode |
mode |
Set match mode: exact, word, or fuzzy |
clear_pulse_results |
— | Clear pulse_data.json |
get_pulse_price_history |
mint |
Get price-at-match, current price, and price history |
Log (2 tools)
| Tool | Parameters | Description |
|---|---|---|
get_log |
tail_lines |
Read the last N lines of snipe_bot.log |
clear_log |
— | Clear the log file |
Command Queue (2 tools)
| Tool | Parameters | Description |
|---|---|---|
get_pending_commands |
— | View the current command_queue.json |
clear_commands |
— | Clear the command queue |
ATA Rent (1 tool)
| Tool | Parameters | Description |
|---|---|---|
close_empty_token_accounts |
— | Close all empty token accounts and reclaim ~0.002 SOL each |
Example Conversations with Your AI
"Start the bot"
→ start_bot
"What are my open positions and what is the current P&L?"
→ get_open_positions + get_positions_status
"Buy this mint: 6EF8rBh8gKQj6n5hX2P9Yq3wL4ZmN7vK8xT5fD1sQ2aR"
→ buy_mint
"Sell half of my MEMRA position"
→ Note: partial sells are not yet a standalone tool; use the GUI or queue a custom command.
"How much have I paid in fees and ATA rent?"
→ get_fee_summary
"Show me the last 50 log lines"
→ get_log(50)
Safety & Risk
This is a live-trading tool. The included filters reduce but do not eliminate risk. Use only funds you can afford to lose. All MCP actions execute immediately with no confirmation unless the client itself asks for one.
License & Support
This project is freeware for personal use. If it helps you, tips are appreciated.
GitHub: https://github.com/Solara-Snipe-Bot/Solara-Snipe-Bot
PyPI: https://pypi.org/project/solana-snipe-bot-mcp/
Landing Page: https://solara-snipe-bot.github.io/Solara-Snipe-Bot/
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file solana_snipe_bot_mcp-1.0.1-py3-none-any.whl.
File metadata
- Download URL: solana_snipe_bot_mcp-1.0.1-py3-none-any.whl
- Upload date:
- Size: 9.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
001aaa5e4b29da92679a9ff0dc4769811c469cce6fba6c7743bed91f95b666fe
|
|
| MD5 |
4fd79aa021c4cb94cb3b16533d2a75df
|
|
| BLAKE2b-256 |
57c23cf2296e2ed90554922793b9b066e41a68738d34fc634c0a8a77b735aad4
|