PumpView — Solana Trading & Live Data
by pumpview.fun · remote · no sign-in to list tools · v1.2.3 · published by fun.pumpview
Solana swaps with local signing, confirmed receipts, trading volume and filtered live trade data.
14 tools: 1 can delete or cancel things, 2 do something that can't be undone, 3 change things and 8 only read.
Scanned Oct 21, 2026
- Deletes or cancels1Claude Code: deny: see these tools
- Can't be undone2Claude Code: ask: see these tools
- Changes things3Claude Code: ask: see these tools
- Only reads8Claude Code: allow: see these tools
2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http trading https://api.pumpview.fun/mcp/ --header 'Authorization: <your-authorization>'Findings
Matches of fixed checks, with the text they matched.
The server marks "get_recent_trades" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "get_recent_trades" says "get": a word for reading.
The server marks "prepare_invoice_payment" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "prepare_invoice_payment" says "payment": a word that usually means money moves, which cannot be taken back.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
14 tools
Deletes or cancels 1Claude Code: deny
submit_swapBroadcast the wallet-approved, signed build through Kolibrio.No findings
Why it is in this group
- The name "submit_swap" says "submit": a word for a change.
- The description's first verb is "broadcast": a word for sending, and what is sent cannot be taken back.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Broadcast the wallet-approved, signed build through Kolibrio. This can spend funds. Requires a Bearer key for the account that built the swap. Only the exact build_swap message is accepted; the wallet must already have reviewed and authorized its amounts and costs. Returns the swap ID, signature and current status; submitted is not confirmation. Repeating the same ID and signed bytes cannot create a different trade. After a timeout or uncertain delivery, poll get_swap_status; never automatically build a replacement or change its blockhash.
Annotations the server declares
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: false
Can't be undone 2Claude Code: ask
confirm_invoice_paymentVerify an already-broadcast invoice payment and activate the purchased data package.No findings
Why it is in this group
- The name "confirm_invoice_payment" says "payment": a word that usually means money moves, which cannot be taken back.
Description, as the server wrote it Verify an already-broadcast invoice payment and activate the purchased data package. Bearer key for the invoice owner required; no data credits consumed. Reads Solana at finalized and validates payer, recipient, USDC amount, memo and payment window. It never broadcasts a payment. Returns paid=true and invoice_id on settlement. Repeating the same invoice/signature is safe and never grants access twice. 409 may mean payment not finalized: retry this confirmation with backoff, not the payment. 400 means transaction mismatch; 404 means missing/foreign invoice; 503 means RPC unavailable. After success, use get_access_status, then get_recent_trades or get_stream_connection.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: false
prepare_invoice_paymentPrepare an unsigned USDC payment for an existing unpaid, unexpired invoice.1 finding
Why it is in this group
- The name "prepare_invoice_payment" says "payment": a word that usually means money moves, which cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "prepare_invoice_payment" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "prepare_invoice_payment" says "payment": a word that usually means money moves, which cannot be taken back.
Description, as the server wrote it Prepare an unsigned USDC payment for an existing unpaid, unexpired invoice. Bearer key required; no package or data credits needed. Returns a base64 legacy Solana transaction and last_valid_block_height. Review it against get_invoice_status: payer, recipient, mint, amount and pumpview:<id> memo. Your authorized wallet signs and broadcasts locally, using USDC plus SOL for network fees and possible token-account rent. PumpView never receives the private key. This tool does not sign, submit or activate the package. Next call confirm_invoice_payment with the wallet's broadcast signature. A 409 means expired/paid invoice. On blockhash expiry, check the old signature before preparing a replacement for the same invoice; never pay twice.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
Changes things 3Claude Code: ask
build_swapBuild and simulate an unsigned ExactIn swap, without spending funds.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Build and simulate an unsigned ExactIn swap, without spending funds. Requires a Bearer API key and its linked wallet, but no data subscription or credits. Check get_trading_config first. At least one leg must be SOL/WSOL or USDC; minimum value is $5 unless Unlimited is active. Execution costs 0.5% plus tips and network fees. Returns id, unsigned transaction_base64, expiry, expected/minimum output and cost breakdown. Review them, sign locally, then call submit_swap. Persist request_id; retry the identical intent after a build timeout. A 409 means conflicting intent; 410 means expired build and requires an explicit decision to create a new intent. Never silently increase slippage.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: false
get_payment_instructionsCreate a new unpaid USDC invoice for a live-data package; this spends no funds.No findings
Why it is in this group
- The name "get_payment_instructions" says "get": a word for reading.
- The description's first verb is "create": a word for a change.
Description, as the server wrote it Create a new unpaid USDC invoice for a live-data package; this spends no funds. Call only after choosing a current plan with list_data_plans and checking get_access_status. Trading alone needs no data subscription. Requires a Bearer key and linked Solana wallet; missing wallet returns 409, unknown plan 404, disabled sales 503. Returns invoice id, payer, recipient, mint, atomic amount, memo and Unix expiry. Each call creates another invoice, so retain its ID rather than retry blindly. Next use prepare_invoice_payment, review/sign/broadcast with your wallet, then confirm_invoice_payment with the transaction signature. get_invoice_status checks settlement. submit_swap is for swaps, not invoice payments. Never pay an expired invoice or repeat a payment while confirmation is pending.
Annotations the server declares
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
- readOnlyHint: false
get_recent_tradesRead filtered market swap summaries from PumpView's supported SOL-pair feed.1 finding
Why it is in this group
- The name "get_recent_trades" says "get": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "get_recent_trades" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "get_recent_trades" says "get": a word for reading.
Description, as the server wrote it Read filtered market swap summaries from PumpView's supported SOL-pair feed. Use for recent market activity, not your submitted swap receipt (get_swap_status). Requires a Bearer key, active data grant and sufficient key budget. Each call consumes max(1, returned event count) credits; repeated reads also count. Unlimited has no package event cap, but an explicit key budget still applies. Returns events in feed order, a cursor and health. Filtering follows batch scanning, so advance using the returned cursor even for an empty batch. On 409 cursor_expired restart without after and record a gap; 402 means access or budget exhausted, 503 means unavailable source. Use get_stream_connection for continuous WSS delivery. Amounts are decoder floats, not full transaction accounting.
Annotations the server declares
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
- readOnlyHint: false
Only reads 8Claude Code: allow
get_access_statusInspect the authenticated account's live-data grants, rate limit and feed health.No findings
Why it is in this group
- The name "get_access_status" says "get": a word for reading.
Description, as the server wrote it Inspect the authenticated account's live-data grants, rate limit and feed health. Call before consuming data or after an access error. Bearer key required; no data credits consumed. Returns unexpired grants (remaining=-1 means Unlimited), http_rate_limit shared across account keys, and source health. An empty grants list means no unexpired package; a grant can still have zero credits. Key-specific budgets are managed in the dashboard and are not in this response. Use get_trading_usage for swap volume, get_trading_config for swap policy, and get_payment_instructions to create a data-package invoice.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
get_invoice_statusRead one of your account's existing invoices without creating or paying another.No findings
Why it is in this group
- The name "get_invoice_status" says "get": a word for reading.
Description, as the server wrote it Read one of your account's existing invoices without creating or paying another. Bearer key required; no package or data credits needed. Returns payer, recipient, exact atomic USDC amount, memo, expires (Unix seconds) and paid. paid=false means not yet settled by PumpView, not proof of no on-chain payment. If your wallet already broadcast, use confirm_invoice_payment with that signature. Do not pay again while waiting. Missing or another account's invoice returns 404.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
get_onboarding_instructionsGet API-key setup and integration instructions before your first PumpView call.No findings
Why it is in this group
- The name "get_onboarding_instructions" says "get": a word for reading.
Description, as the server wrote it Get API-key setup and integration instructions before your first PumpView call. Public: no key or data credits needed. Returns dashboard/Agent Kit/docs URLs, ordered HTTP wallet-challenge steps, and separate trading/data workflows. Does not create an account, sign, pay or trade. Once connected, use get_trading_config for swap policy or get_access_status for your purchased access.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
get_stream_connectionGet WSS setup for continuous live trades instead of polling get_recent_trades.No findings
Why it is in this group
- The name "get_stream_connection" says "get": a word for reading.
Description, as the server wrote it Get WSS setup for continuous live trades instead of polling get_recent_trades. Requires a Bearer key with an active eligible data grant/budget; 402 means access is unavailable. Returns url, an Authorization header template, first_message JSON and cursor-resume instructions. This lookup consumes no data credits and opens no background connection. Your runtime must connect and insert its own key; all keys share one concurrent WSS connection per account. Delivered events consume data credits/budget under the plan. Persist the last cursor to resume; an expired cursor requires a fresh snapshot and gap handling.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
get_swap_statusCheck an existing account swap after submission, including after a timeout.No findings
Why it is in this group
- The name "get_swap_status" says "get": a word for reading.
Description, as the server wrote it Check an existing account swap after submission, including after a timeout. Requires the owning account's Bearer key; no data credits consumed. Returns id, signature, status and receipt. States are built, submitted, confirmed, finalized, failed or expired. Execution receipts start at confirmed and may still be null while RPC metadata catches up. Poll this ID with backoff within the account rate limit; use get_trading_usage for aggregate volume. This call refreshes stored status/receipts but never submits, signs or rebuilds a trade.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
get_trading_configRead the current server's swap policy before choosing build_swap parameters.No findings
Why it is in this group
- The name "get_trading_config" says "get": a word for reading.
Description, as the server wrote it Read the current server's swap policy before choosing build_swap parameters. Public: no API key or data credits needed. Returns enabled, mint aliases, allowed pair assets, fee basis points, USD minimums, tip limits and build TTL. enabled is configuration status, not a liquidity quote or an RPC health check. Use get_trading_usage for executed account volume and get_access_status for grants.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
get_trading_usageRead all-time executed volume for the authenticated account and each API key.No findings
Why it is in this group
- The name "get_trading_usage" says "get": a word for reading.
Description, as the server wrote it Read all-time executed volume for the authenticated account and each API key. Use for accounting, not market history (get_recent_trades) or one receipt (get_swap_status). Bearer key required; no data package or credits consumed. Returns available, totals and by_api_key. Successful swaps count once from confirmed; finalization never adds them again. SOL/USDC amounts are decimal strings; USD uses build-time prices. available=false means temporary unavailability, not zero volume. Newly confirmed receipts may appear shortly later.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
list_data_plansList current data packages and prices before buying a live-data subscription.No findings
Why it is in this group
- The name "list_data_plans" says "list": a word for reading.
Description, as the server wrote it List current data packages and prices before buying a live-data subscription. Public: no key or credits needed. Returns plan IDs, price in atomic USDC (6 decimals), duration, event allowance, filters, account request/connection limits and sales_enabled. -1 credits means Unlimited. Trading alone needs no data package. If sales are enabled, choose a plan and call get_payment_instructions with its exact id to create an unpaid invoice.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.2.3. Values in angle brackets are yours to fill in.
claude mcp add --transport http trading https://api.pumpview.fun/mcp/ --header 'Authorization: <your-authorization>'Run in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__trading__get_onboarding_instructions",
"mcp__trading__get_trading_config",
"mcp__trading__get_trading_usage",
"mcp__trading__get_swap_status",
"mcp__trading__get_access_status",
"mcp__trading__list_data_plans",
"mcp__trading__get_invoice_status",
"mcp__trading__get_stream_connection"
],
"ask": [
"mcp__trading__build_swap",
"mcp__trading__get_recent_trades",
"mcp__trading__get_payment_instructions",
"mcp__trading__prepare_invoice_payment",
"mcp__trading__confirm_invoice_payment"
],
"deny": [
"mcp__trading__submit_swap"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as trading. Review it before you use it.