pump-fun-connector
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | Port to listen on. Cloud Run sets this itself. | 8080 |
| PUBLIC_URL | No | The deployed service URL. Advertised as the OAuth issuer. Required for the Claude connector UI. | |
| GMGN_WEIGHT | No | Composite blend weight for GMGN. | 0.4 |
| DEFAULT_POOL | No | Default pool. | auto |
| GMGN_API_KEY | No | Optional second risk source. Leave blank to run on RugCheck-only scoring; the composite reweights to 100% RugCheck automatically. | |
| MAX_TRADE_USD | No | Per-trade size cap maximum. | 20 |
| MIN_TRADE_USD | No | Per-trade size cap minimum. | 10 |
| MCP_AUTH_TOKEN | No | Auth token for HTTP transport. Required only for the HTTP transport (`dist/http.js`). The server refuses to start without it for HTTP. | |
| SOLANA_RPC_URL | No | Solana RPC URL. Defaults to the public mainnet RPC; a dedicated RPC (Helius, QuickNode, etc.) will be faster and more reliable for `get_position`. | |
| RUGCHECK_WEIGHT | No | Composite blend weight for RugCheck. | 0.6 |
| GMGN_API_BASE_URL | No | GMGN API base URL. Defaults to `https://openapi.gmgn.ai` and rarely needs setting. | https://openapi.gmgn.ai |
| WALLET_PUBLIC_KEY | Yes | Your Solana wallet's public address (not a private key/seed phrase). | |
| PUMPPORTAL_API_KEY | No | Free key from pumpportal.fun, used only for the real-time data WebSocket (new-token/trade feeds). Not required for building trade transactions. | |
| DAILY_SPEND_CAP_USD | No | Cumulative daily buy cap. | 100 |
| WALLET_KEYPAIR_PATH | No | Path to a wallet secret file, default `keys`. The file must be mode 600 or stricter and must match WALLET_PUBLIC_KEY. | keys |
| AUTO_TRADING_ENABLED | No | Leave `false` for manual signing; set to `true` to enable automatic execution. Never enable this with a wallet holding unrelated funds. | false |
| DEFAULT_SLIPPAGE_PCT | No | Default slippage percentage. | 10 |
| RISK_SCORE_THRESHOLD | No | 0–100, higher = riskier. Buys above this are refused. | 50 |
| WEEKLY_SPEND_CAP_USD | No | Cumulative weekly buy cap. | 400 |
| WALLET_KEYPAIR_SECRET | No | Private key source; alternative to WALLET_KEYPAIR_PATH. Only read when auto-trading is enabled. | |
| DEFAULT_PRIORITY_FEE_SOL | No | Default priority fee in SOL. | 0.0005 |
| RISK_SCORE_FRESHNESS_MIN | No | How recently `get_risk_score` must have run to gate a buy. | 10 |
| MCP_ALLOW_UNAUTHENTICATED | No | Disables the bearer requirement. Private networks only. | false |
| GOOGLE_APPLICATION_CREDENTIALS | No | Local dev only. Path to service account key file. Leave blank on Cloud Run. | |
| GOOGLE_TRADE_LOG_SPREADSHEET_ID | No | The trade-log spreadsheet's ID. Required for the logging layer. | |
| GOOGLE_ACTIVE_POSITIONS_SPREADSHEET_ID | No | The active-positions spreadsheet's ID. Required for the logging layer. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_new_tokensA | List newly launched pump.fun tokens observed by this server's live feed since it started. Returns mint address, name, symbol, creator, and how long ago each was seen. This is a discovery tool only — it does not assess safety, use get_risk_score for that. |
| get_token_detailA | Get price/liquidity/holder/contract detail for a specific pump.fun token mint. Combines this server's live trade feed (bonding curve state, implied price) with RugCheck's on-chain report (holders, mint/freeze authority, metadata). Live price data is only available for tokens this server has observed trades for — call this once to subscribe, then again a few seconds later if price fields are missing. |
| get_risk_scoreA | Compute a composite rug-pull risk score (0-100, higher = riskier) for a token mint by combining RugCheck (mint/freeze authority, LP lock, holder concentration, mutable metadata) and GMGN (rug ratio, bundled/insider buy detection, holder concentration). Returns the score, whether it clears the configured threshold, and a human-readable list of triggered flags. You must call this for a mint (and it must pass) before prepare_buy will accept it. |
| get_positionA | Read the configured wallet's current on-chain holdings (source of truth — reads the chain directly, doesn't rely on this server's own trade history) and, where available, an estimated unrealized P/L based on this server's log of prepared buys for that mint. Since trades are signed manually by you, cost-basis is an estimate: it assumes prepared buys were actually executed at roughly the sizes requested. |
| prepare_buyA | Build an UNSIGNED buy transaction for a pump.fun token, sized within the configured per-trade and spend-cap limits. This server never holds a private key and never signs or broadcasts anything — it returns a base64-encoded transaction for you to review and sign yourself in your own wallet (e.g. paste into a wallet that supports raw transaction signing, or use the accompanying CLI/script). Refuses to build the transaction unless get_risk_score has been called recently for this mint and it passed the configured threshold, and unless the requested USD size is within [MIN_TRADE_USD, MAX_TRADE_USD] and the daily/weekly spend caps. |
| prepare_sellA | Build an UNSIGNED sell transaction for a pump.fun position (take-profit or manual exit), sized as a percentage of your current holdings of that token. Like prepare_buy, this never signs or broadcasts anything — you sign the returned transaction yourself. No risk gate applies to exits (you're always free to sell). |
| execute_buyB | Risk-check, build, sign, and broadcast a pump.fun buy. Requires AUTO_TRADING_ENABLED=true and the configured keypair. |
| execute_sellA | Build, sign, and broadcast a pump.fun sell for part or all of a held position. Requires AUTO_TRADING_ENABLED=true. |
| get_market_activityA | Live trading activity for a token from DexScreener: buy vs sell counts, volume and price change across 5m / 1h / 6h / 24h, aggregated across every pair the token trades on. Returns derived signals too — buy/sell ratio per window, whether buying pressure is strengthening or weakening as the window shortens, volume acceleration against the 24h average, liquidity as a share of market cap, and token age mapped to a lifecycle phase. Use this alongside get_risk_score: risk scoring says whether a token is a scam, this says whether anyone is actually buying it. Works on any token DexScreener has indexed, which for a brand-new pump.fun launch can lag the launch by a few minutes. |
| gdrive_statusA | Check that the connector can reach both Google Sheets. Reports the identity it's authenticating as (the service account email, when running on Cloud Run or with a key file) and each spreadsheet's title and tab names. Run this first — if it reports a permission error, share both spreadsheets with the service account email it prints. |
| create_investment_planA | Create a new investment plan BEFORE any buy. Writes one row to 'Investment Plans' in the permanent trade-log spreadsheet and a matching row (status ACTIVE) to 'Active Positions' in the working spreadsheet, sharing a newly generated Plan ID. Per the spec, no buy should be prepared without a Plan ID existing first — the plan is the thesis on record justifying the trade. The aggregate columns (Total Invested, P&L, Status) are sheet formulas and are never written by this tool. |
| log_transactionA | Append one transaction row (Buy or Sell) to the permanent 'Trade Log' sheet, tagged with its Plan ID. Call this after a trade actually settles on-chain — one row per leg, so a DCA entry or a scaled take-profit exit produces several rows under the same Plan ID. The Investment Plans sheet recalculates its totals automatically from these rows. |
| log_creator_activityA | Append one creator-mention row to the append-only 'Creator Activity' sheet for an open plan. This is the evolving evidence trail used to decide whether to hold or exit — distinct from the static thesis written once at plan creation. Should be logged at least daily while a plan is open. |
| log_creator_activity_batchA | Append several creator-mention rows at once — the efficient way to record a periodic review sweep, since it's one round trip and one spreadsheet write instead of one per mention. Entries may span multiple plans. Prefer this over repeated log_creator_activity calls whenever you have more than one mention to record. |
| update_active_positionA | Update the working columns of an open position in 'Active Positions' — lifecycle phase, social momentum, next review time, and quick notes. Stamps the last-review timestamp automatically. The computed columns (active creator count, creator list, last mention) are sheet formulas and are left untouched, as is the ACTIVE/CLOSED status — use close_plan to change that. |
| get_plansA | Read back all investment plans from the permanent spreadsheet, including the formula-computed totals (Total Invested, Realized P&L, Status). Use this for the track-record loop — reviewing which entry signals actually worked before committing to a new trade. |
| review_positionsA | The full picture of your open positions, rebuilt from the spreadsheets rather than from anything remembered in this conversation. For each open plan it returns: the written thesis and social evidence recorded at entry, the planned buy/sell strategy, position sizing and realized P&L (from the sheet's formulas), the creator-activity trail, and — read live from chain and the price feed, not the sheet — current holdings, price, and unrealized P&L. Also flags positions whose next-review time has passed. Start here when picking up an existing position; it's the durable memory this connector is built around. |
| close_planA | Close out a finished plan: marks its 'Active Positions' row and all its 'Creator Activity' rows as CLOSED in the working spreadsheet. Nothing is deleted — rows stay in place so the evidence trail remains auditable and the sheet's formulas keep their alignment. The permanent trade-log spreadsheet is untouched. Refuses unless the plan's formula-computed Status reads 'Closed' (all bought tokens sold), unless force is set. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| review_sweep | Periodic review of all open positions: refresh state from the sheets, research current creator/social activity on the web, and log what's found. Use this as the recurring trigger. |
| evaluate_token | Evaluate a candidate token end to end: risk screen, social momentum research, and a verdict on whether it clears both gates before any buy is prepared. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |