Pump.fun MCP Server
by noahgsolomon
# pumpfun-mcp
A Model Context Protocol (MCP) server for interacting with the [Pump.fun](https://pump.fun) platform on Solana. This server enables AI assistants to create, buy, and sell tokens on the Pump.fun platform.
<img src="https://pump.fun/logo.png" width="250" height="250" alt="Pump.fun MCP Demo">
## Usage
https://github.com/user-attachments/assets/0b0f1f6f-6ea6-4ca8-92a8-b4cc895814e4
To use this server with Claude or other MCP-compatible AI assistants, add the following configuration to your MCP client:
If you're on MacOS and want to run this in Claude Desktop, in your ~/Library/Application \Support/Claude/claude_desktop_config.json file, write the following:
```json
{
"mcpServers": {
"pumpfun": {
"command": "node",
"args": ["/Users/noahsolomon/Desktop/pumpfun-mcp/build/index.js"], // note this should be YOUR absolute path to index.js, not mine.
"env": {
"HELIUS_RPC_URL": "https://your-helius-rpc-url.com"
}
}
}
}
```
Replace `https://your-helius-rpc-url.com` with your [Helius RPC URL](https://dev.helius.xyz/).
## Installation
1. Clone this repository:
```
git clone https://github.com/noahgsolomon/pumpfun-mcp.git
cd pumpfun-mcp
```
2. Install dependencies:
```
npm install
```
3. Create a `.env` file with your Solana RPC URL:
```
HELIUS_RPC_URL=https://your-helius-rpc-url.com
```
You can get a free RPC URL from [Helius](https://dev.helius.xyz/).
To use an existing Solana wallet, add your private key to the `.env` file:
```
PRIVATE_KEY=your-base58-encoded-private-key
```
Then run the conversion script to create a keypair file:
```
node convert-key.js
```
This will create a `default.json` file in the `.keys` folder with your keypair.
4. Build the project:
```
npm run build
```
5. Run the MCP server:
```
node build/index.js
```
## Components
### Tools
- **get-token-info**
- Get information about a Pump.fun token
- Input parameters:
- `tokenAddress` (string, required): The token's mint address
- **create-token**
- Create a new Pump.fun token
- Input parameters:
- `name` (string, required): Token name
- `symbol` (string, required): Token symbol
- `description` (string, required): Token description
- `imageUrl` (string, optional): Path to local image file
- `initialBuyAmount` (number, required): Initial buy amount in SOL (min 0.0001)
- `accountName` (string, optional): Name of the account to use (defaults to "default")
- **buy-token**
- Buy a Pump.fun token
- Input parameters:
- `tokenAddress` (string, required): The token's mint address
- `buyAmount` (number, required): Amount to buy in SOL (min 0.0001)
- `accountName` (string, optional): Name of the account to use (defaults to "default")
- `slippageBasisPoints` (number, optional): Slippage tolerance in basis points (defaults to 100)
- **sell-token**
- Sell a Pump.fun token
- Input parameters:
- `tokenAddress` (string, required): The token's mint address
- `sellAmount` (number, required): Amount of tokens to sell (use 0 to sell all)
- `accountName` (string, optional): Name of the account to use (defaults to "default")
- `slippageBasisPoints` (number, optional): Slippage tolerance in basis points (defaults to 100)
- **list-accounts**
- List all accounts in the keys folder
- No input parameters required
- **get-account-balance**
- Get the SOL and token balances for an account
- Input parameters:
- `accountName` (string, optional): Name of the account to check (defaults to "default")
- `tokenAddress` (string, optional): Token address to check balance for
### Account Management
The MCP automatically creates and manages Solana keypairs in the `.keys` folder. Each keypair is stored as a JSON file with the account name as the filename.
When creating a token, the mint keypair is also saved in the `.keys` folder with the prefix `mint-`.
To use the MCP with your own account, you need to:
1. Add your private key to the `.env` file and run `node convert-key.js`
2. Have sufficient SOL in that wallet
## Standalone Scripts
The project includes several standalone scripts that can be run directly:
- **Get Token Info**: `node build/get-token-info.js <token_address>`
- **Create Token**: `node build/create-token.js <name> <symbol> <description> <initial_buy_amount> [account_name] [image_url]`
- **Buy Token**: `node build/buy-token.js <token_address> <buy_amount_sol> [account_name] [slippage_basis_points]`
- **Sell Token**: `node build/sell-token.js <token_address> <sell_amount> [account_name] [slippage_basis_points]`
- **List Accounts**: `node build/list-accounts.js`
- **Get Account Balance**: `node build/get-token-balance.js <account_name> [token_address]`
## Important Notes
- **Security**: The keypairs are stored unencrypted in the `.keys` folder. Make sure to secure this folder appropriately.
- **Fees**: All transactions on Solana require SOL for transaction fees. Make sure your accounts have enough SOL.
- **Slippage**: The default slippage tolerance is 1% (100 basis points). You can adjust this for each transaction.
- **Images**: When creating tokens with images, you must provide a local file path to the image. Remote URLs are not supported.
## Development
### Project Structure
- `src/index.ts`: Main MCP server entry point
- `src/get-token-info.ts`: Token information retrieval
- `src/create-token.ts`: Token creation functionality
- `src/buy-token.ts`: Token buying functionality
- `src/sell-token.ts`: Token selling functionality
- `src/list-accounts.ts`: Account listing functionality
- `src/get-token-balance.ts`: Account balance checking
- `src/utils.ts`: Shared utility functions
- `convert-key.js`: Utility to convert a base58 private key to a keypair JSON file
### Building
```
npm run build
```