Endpoints: 30,862MCP servers: 18,583Payout addresses: 2,106Paid calls: 1,607Letters: 14Defects: 1,351counted 3 min ago
teppi

Server definition

Hash
sha256:347362282470b4582f6c2ac8816db6e9498a7157261381d81482dc97dc3b9e7d
What it is
What a remote MCP server returned when asked what it offers: 21 tools

The blob, as servednamed by its sha256

{ "instructions": "Free, read-only pump.fun + Solana intelligence tools from three.ws. ORACLE CONVICTION (highest-signal trade read): get_oracle_conviction returns the fused 0–100 Oracle score for a mint — a 4-pillar synthesis of pedigree (smart-money presence), structure (organic vs bundle, holder concentration, bubblemaps connectivity), narrative (category, meme virality, news hook), and momentum (velocity, timing). Includes the tier (prime ≥86 / strong ≥72 / lean ≥54 / watch ≥36 / avoid), natural-language reasons, badge labels, and the full classified trader roster with win-rates. COIN INTELLIGENCE (raw signals): get_coin_intel returns every signal recorded during the observation window — bundle/organic verdict, bubblemaps cluster connectivity, smart-money wallet details, dev behaviour, category, news-meme detection, risk flags, quality score, and now also includes the Oracle score inline. Token discovery (search_tokens, get_trending_tokens, get_new_tokens, get_graduated_tokens, get_king_of_the_hill), on-chain analysis (get_bonding_curve, get_token_holders, get_token_details, get_token_trades), creator intelligence (get_creator_profile, pumpfun_list_claims, pumpfun_watch_claims, pumpfun_first_claims), Solana Name Service (sns_resolve, sns_reverseLookup), market signals (kol_leaderboard, pumpfun_quote_swap, pumpfun_watch_whales), and social sentiment (social_cashtag_sentiment, social_x_post_impact). Discovery tools require the indexer backend — call pumpfun_bot_status (always available) to check. LAUNCH A COIN: to deploy a new pump.fun coin as an agent, call pumpfun_upload_metadata (bearer required) to pin name/symbol/description/image to IPFS and get a uri, then POST to /api/pump/launch-agent with agent_id + uri to build, sign, and submit the launch transaction using the agent's custodial wallet. All data is live; most tools need no key.", "tools": [ { "description": "Bonding curve analysis: real reserves, virtual reserves, and graduation progress (on-chain). Pre-graduation only: these reserves come from the pump program bonding-curve account, not from a PumpSwap pool. Pump renamed the quote-side fields on-chain (real_sol_reserves -> real_quote_reserves, virtual_sol_reserves -> virtual_quote_reserves) once a non-SOL quote asset became possible; the response keys below keep their original names and are still denominated in SOL, because the curve quote_mint is the SOL default on every coin created to date. Once complete=true the curve is retired and pricing moves to the PumpSwap pool, so use pumpfun_quote_swap from that point on.", "inputSchema": { "properties": { "mint": { "type": "string" }, "network": { "default": "mainnet", "enum": [ "mainnet", "devnet" ], "type": "string" } }, "required": [ "mint" ], "type": "object" }, "name": "get_bonding_curve", "outputSchema": { "additionalProperties": true, "properties": { "complete": { "description": "true once the curve has graduated", "type": "boolean" }, "graduationPercent": { "description": "0–100 graduation progress", "type": "number" }, "mint": { "type": "string" }, "network": { "type": "string" }, "solReserves": { "description": "Real quote reserves in SOL (4-decimal string). On-chain field: real_quote_reserves.", "type": "string" }, "tokenReserves": { "description": "Real token reserves (raw base units)", "type": "string" }, "virtualSolReserves": { "description": "Virtual quote reserves (lamports). On-chain field: virtual_quote_reserves (u64). Spot price = virtual_quote_reserves / virtual_token_reserves. Distinct from the identically-named PumpSwap Pool.virtual_quote_reserves (an i128), which applies only after graduation.", "type": "string" }, "virtualTokenReserves": { "description": "Virtual token reserves (raw base units)", "type": "string" } }, "required": [ "mint", "network", "complete", "graduationPercent", "solReserves", "tokenReserves", "virtualSolReserves", "virtualTokenReserves" ], "type": "object" } }, { "description": "Full Coin Intelligence snapshot for a pump.fun mint. Returns every signal the engine recorded during the observation window: bundle vs organic verdict, bubblemaps-style cluster connectivity, smart-money presence (with wallet labels and win-rates), dev behaviour, category/classification, news-meme detection with the matching headline, risk flags, and a 0–100 quality score. Also returns the outcome if the coin is old enough to be labeled (graduated/rugged/ATH multiple). This is the single highest-signal read for a trade decision — call this before entering any position.", "inputSchema": { "properties": { "mint": { "description": "Solana mint address (base58).", "type": "string" }, "network": { "default": "mainnet", "enum": [ "mainnet", "devnet" ], "type": "string" } }, "required": [ "mint" ], "type": "object" }, "name": "get_coin_intel", "outputSchema": { "additionalProperties": true, "properties": { "bubblemap_connectivity": { "description": "0–1 wallet-cluster share. null = enrichment not yet run.", "nullable": true, "type": "number" }, "bundle_score": { "description": "0–1, coordinated-launch likelihood.", "type": "number" }, "category": { "type": "string" }, "dev_buy_sol": { "nullable": true, "type": "number" }, "dev_sold": { "type": "boolean" }, "found": { "type": "boolean" }, "is_news_meme": { "type": "boolean" }, "mint": { "type": "string" }, "name": { "type": "string" }, "news_headline": { "nullable": true, "type": "string" }, "oracle": { "description": "Fused Oracle conviction score (null if the Oracle engine has not yet scored this coin). Call get_oracle_conviction for the full read including who's-in roster and narrative.", "nullable": true, "properties": { "badges": { "items": { "type": "string" }, "type": "array" }, "pillars": { "description": "Per-pillar scores: pedigree, structure, narrative, momentum (each 0–100).", "type": "object" }, "reasons": { "description": "Natural-language explanation of the score.", "items": { "type": "string" }, "type": "array" }, "score": { "description": "0–100 fused Oracle score.", "type": "number" }, "tier": { "enum": [ "prime", "strong", "lean", "watch", "avoid" ], "type": "string" } }, "type": "object" }, "oracle_url": { "description": "Oracle deep-link for the coin — opens the Oracle war-room drawer directly.", "type": "string" }, "organic_score": { "description": "0–1, organic-demand likelihood.", "type": "number" }, "outcome": { "description": "Labeled outcome if available (graduated, ath_multiple, etc).", "nullable": true, "type": "object" }, "quality_score": { "description": "0–100 composite quality.", "type": "number" }, "risk_flags": { "items": { "type": "string" }, "type": "array" }, "smart_money_count": { "description": "Proven wallets (score≥65) in this coin.", "type": "integer" }, "smart_money_notable": { "items": { "type": "object" }, "type": "array" }, "smart_money_score": { "nullable": true, "type": "number" }, "symbol": { "type": "string" }, "unique_buyers": { "type": "integer" }, "verdict": { "properties": { "key": { "enum": [ "strong", "watch", "caution", "avoid" ], "type": "string" }, "label": { "type": "string" }, "tone": { "type": "string" } }, "type": "object" } }, "required": [ "found" ], "type": "object" } }, { "description": "Most recently launched pump.fun tokens.", "inputSchema": { "properties": { "limit": { "default": 10, "maximum": 50, "minimum": 1, "type": "integer" } }, "type": "object" }, "name": "get_new_tokens", "outputSchema": null }, { "description": "Oracle conviction score for a pump.fun mint: the fused 0-100 score the Oracle engine produces by combining four intelligence pillars: pedigree (who bought it), structure (organic vs bundle, holder concentration, bubblemaps connectivity), narrative (category, meme virality, news hook), and momentum (timing, velocity). Returns the tier (prime ≥86 / strong ≥72 / lean ≥54 / watch ≥36 / avoid), the per-pillar breakdown, the natural-language reasons that drove the score, the full \"who's in\" trader roster with reputation labels and win-rates, and the narrative read (category, virality, tags). Call this when you need the highest-confidence trade signal; it synthesises everything get_coin_intel exposes into one actionable score. Pairs with get_coin_intel for raw signals.", "inputSchema": { "properties": { "mint": { "description": "Solana mint address (base58).", "type": "string" }, "network": { "default": "mainnet", "enum": [ "mainnet", "devnet" ], "type": "string" } }, "required": [ "mint" ], "type": "object" }, "name": "get_oracle_conviction", "outputSchema": { "additionalProperties": true, "properties": { "conviction": { "description": "Fused conviction verdict. null if the Oracle has not yet scored this coin.", "nullable": true, "properties": { "badges": { "description": "Short human-readable badges attached to this coin, e.g. \"Smart money: 3 wallets\".", "items": { "type": "string" }, "type": "array" }, "pillars": { "properties": { "momentum": { "description": "Momentum pillar score: velocity, buy/sell ratio, timing entropy (0–100, weight 18%).", "type": "number" }, "narrative": { "description": "Narrative pillar score: category fit, meme virality, news hook (0–100, weight 18%).", "type": "number" }, "pedigree": { "description": "Smart-money pedigree pillar score (0–100, weight 34%).", "type": "number" }, "structure": { "description": "Structure pillar score: organic/bundle/concentration/connectivity (0–100, weight 30%).", "type": "number" } }, "type": "object" }, "reasons": { "description": "Natural-language sentences explaining every signal that drove the score.", "items": { "type": "string" }, "type": "array" }, "score": { "description": "0–100 fused Oracle score.", "type": "number" }, "scored_at": { "description": "ISO timestamp when the conviction was last computed.", "type": "string" }, "structure_cap": { "description": "true when structural flags capped the score below raw pillar math.", "type": "boolean" }, "tier": { "description": "prime ≥86, strong ≥72, lean ≥54, watch ≥36, avoid <36.", "enum": [ "prime", "strong", "lean", "watch", "avoid" ], "type": "string" } }, "type": "object" }, "found": { "type": "boolean" }, "mint": { "type": "string" }, "name": { "type": "string" }, "narrative": { "description": "Narrative classification for the coin.", "nullable": true, "properties": { "category": { "description": "E.g. meme, ai, tech, culture, news, defi.", "type": "string" }, "confidence": { "nullable": true, "type": "number" }, "narrative": { "description": "One-sentence description of the coin's story or hook.", "type": "string" }, "source": { "description": "Classifier that produced the narrative read.", "type": "string" }, "tags": { "items": { "type": "string" }, "type": "array" }, "virality": { "description": "0–1 estimated virality of the narrative.", "nullable": true, "type": "number" } }, "type": "object" }, "outcome": { "description": "Labeled outcome if available.", "nullable": true, "properties": { "ath_market_cap_usd": { "nullable": true, "type": "number" }, "ath_multiple": { "nullable": true, "type": "number" }, "graduated": { "type": "boolean" }, "outcome": { "type": "string" }, "rugged": { "type": "boolean" } }, "type": "object" }, "symbol": { "type": "string" }, "url": { "description": "Oracle deep-link URL for this coin.", "type": "string" }, "whos_in": { "description": "Classified trader roster — every wallet that touched this coin, annotated with their reputation.", "items": { "properties": { "buy_sol": { "description": "Total SOL bought.", "type": "number" }, "early_win_rate": { "description": "Win-rate on early entries specifically.", "nullable": true, "type": "number" }, "funder": { "description": "The wallet that funded this one (if identified).", "nullable": true, "type": "string" }, "is_creator": { "type": "boolean" }, "label": { "description": "Trader archetype: smart_money, kol, sniper, whale, early_degen, recycler, dca_buyer, dca_seller, bot, unproven.", "type": "string" }, "score": { "description": "Brain reputation score (0–100).", "nullable": true, "type": "number" }, "sell_sol": { "description": "Total SOL sold.", "type": "number" }, "source": { "description": "\"brain\" (trained) or \"gmgn\" (seed corpus).", "nullable": true, "type": "string" }, "tag": { "description": "Social handle when known (from seed corpus).", "nullable": true, "type": "string" }, "wallet": { "type": "string" }, "win_rate": { "description": "Historical win-rate (0–1).", "nullable": true, "type": "number" } }, "type": "object" }, "type": "array" } }, "required": [ "found" ], "type": "object" } }, { "description": "Full details for a specific pump.fun token by mint address.", "inputSchema": { "properties": { "mint": { "type": "string" } }, "required": [ "mint" ], "type": "object" }, "name": "get_token_details", "outputSchema": null }, { "description": "Top holders of a token with concentration analysis (on-chain).", "inputSchema": { "properties": { "limit": { "default": 10, "maximum": 20, "minimum": 1, "type": "integer" }, "mint": { "type": "string" }, "network": { "default": "mainnet", "enum": [ "mainnet", "devnet" ], "type": "string" } }, "required": [ "mint" ], "type": "object" }, "name": "get_token_holders", "outputSchema": null }, { "description": "Recent buy/sell history for a token.", "inputSchema": { "properties": { "limit": { "default": 50, "maximum": 200, "minimum": 1, "type": "integer" }, "mint": { "type": "string" } }, "required": [ "mint" ], "type": "object" }, "name": "get_token_trades", "outputSchema": null }, { "description": "Top pump.fun tokens by market cap.", "inputSchema": { "properties": { "limit": { "default": 10, "maximum": 50, "minimum": 1, "type": "integer" } }, "type": "object" }, "name": "get_trending_tokens", "outputSchema": null }, { "description": "Top KOL traders ranked by P&L for a given time window. Returns wallet, pnlUsd, winRate, trades, rank.", "inputSchema": { "properties": { "limit": { "default": 25, "maximum": 100, "minimum": 1, "type": "integer" }, "window": { "default": "7d", "enum": [ "24h", "7d", "30d" ], "type": "string" } }, "type": "object" }, "name": "kol_leaderboard", "outputSchema": null }, { "description": "Returns the configuration and health status of the pump.fun indexer backend. Always available — does not require PUMPFUN_BOT_URL.", "inputSchema": { "properties": {}, "required": [], "type": "object" }, "name": "pumpfun_bot_status", "outputSchema": { "additionalProperties": true, "properties": { "configured": { "description": "true when PUMPFUN_BOT_URL is set on the server", "type": "boolean" }, "error": { "description": "Failure reason when healthy is false", "type": "string" }, "healthy": { "description": "true when the indexer answered the health ping", "type": "boolean" }, "latencyMs": { "description": "Round-trip ms of the health ping (configured backends only)", "type": "number" }, "message": { "description": "Human-readable note when the indexer is unconfigured", "type": "string" } }, "required": [ "configured", "healthy" ], "type": "object" } }, { "description": "First-ever pump.fun creator fee claims in a time window: a cash-out signal. Returns creators who have never claimed before, with creator wallet, mint, lamports, and timestamp.", "inputSchema": { "properties": { "limit": { "default": 20, "maximum": 50, "minimum": 1, "type": "integer" }, "sinceMinutes": { "default": 60, "description": "How far back to look for new claimers (minutes)", "maximum": 1440, "minimum": 1, "type": "integer" } }, "type": "object" }, "name": "pumpfun_first_claims", "outputSchema": null }, { "description": "List recent pump.fun fee-claim events for a creator wallet (on-chain, no indexer needed). Returns signature, mint, lamports, and Unix timestamp for each claim.", "inputSchema": { "properties": { "creator": { "description": "Creator wallet address (base58)", "type": "string" }, "limit": { "default": 20, "maximum": 50, "minimum": 1, "type": "integer" }, "network": { "default": "mainnet", "enum": [ "mainnet", "devnet" ], "type": "string" } }, "required": [ "creator" ], "type": "object" }, "name": "pumpfun_list_claims", "outputSchema": null }, { "description": "Read-only price quote for a pump.fun AMM (PumpSwap) swap. No signing or tx sending. One of inputMint/outputMint must be wSOL (So11111111111111111111111111111111111111112). Only GRADUATED coins have an AMM pool; for a coin still on its bonding curve use get_bonding_curve instead. Pricing runs on the pool effective quote reserves (quote vault balance + pool.virtual_quote_reserves); the base side is the raw base vault balance. Returns amountOut, priceImpactBps, route, expiresAtMs, plus the reserves the quote was computed from so the number can be reproduced.", "inputSchema": { "properties": { "amountIn": { "description": "Input amount in raw base units (lamports for SOL).", "type": "number" }, "inputMint": { "description": "Input token mint (base58).", "type": "string" }, "network": { "default": "mainnet", "enum": [ "mainnet", "devnet" ], "type": "string" }, "outputMint": { "description": "Output token mint (base58).", "type": "string" }, "slippageBps": { "description": "Slippage tolerance in basis points (default 100 = 1%).", "type": "number" } }, "required": [ "inputMint", "outputMint", "amountIn" ], "type": "object" }, "name": "pumpfun_quote_swap", "outputSchema": { "additionalProperties": true, "properties": { "amountOut": { "description": "Expected output amount in raw base units", "type": "string" }, "base_reserve": { "description": "Raw base vault balance. Unchanged by the virtual-reserve rollout.", "type": "string" }, "effective_quote_reserve": { "description": "quote_reserve + virtual_quote_reserves. This is what the quote is priced against.", "type": "string" }, "expiresAtMs": { "description": "Epoch ms after which the quote is stale", "type": "number" }, "priceImpactBps": { "description": "Price impact in basis points", "type": "number" }, "quote_reserve": { "description": "Raw quote vault balance, before virtual reserves are added.", "type": "string" }, "route": { "description": "AMM pool address the quote routes through (base58)", "type": "string" }, "virtual_quote_reserves": { "description": "Pool.virtual_quote_reserves. Quote-side liquidity the pool carries outside its vault. 0 on non-launchpad pools.", "type": "string" } }, "required": [ "amountOut", "priceImpactBps", "route", "expiresAtMs" ], "type": "object" } }, { "description": "Upload coin metadata (name, symbol, description, image) to IPFS and get back a pump.fun-ready metadata URI. Call this before launching a coin — pass the returned uri to the launch-agent endpoint or the studio launch flow. Requires a valid bearer token (API key). Image may be a public HTTPS URL or a base64 data URI (max 10 MB). The returned uri is a permanent ipfs:// link; the call is idempotent for the same content.", "inputSchema": { "properties": { "description": { "description": "Coin description (max 500 chars).", "type": "string" }, "image_url": { "description": "Image for the coin icon. Public HTTPS URL or base64 data URI (data:image/png;base64,…). Square image, at least 400×400 px, under 5 MB.", "type": "string" }, "name": { "description": "Coin name (1–32 chars).", "type": "string" }, "symbol": { "description": "Ticker symbol (1–10 chars, no $).", "type": "string" }, "telegram": { "description": "Telegram URL (optional).", "type": "string" }, "twitter": { "description": "Twitter/X handle or URL (optional).", "type": "string" }, "website": { "description": "Website URL (optional).", "type": "string" } }, "required": [ "name", "symbol", "description", "image_url" ], "type": "object" }, "name": "pumpfun_upload_metadata", "outputSchema": { "additionalProperties": false, "properties": { "cid": { "description": "IPFS CID of the metadata JSON.", "type": "string" }, "image_cid": { "description": "IPFS CID of the uploaded image.", "type": "string" }, "provider": { "description": "IPFS provider used.", "type": "string" }, "uri": { "description": "ipfs:// URI ready for the pump.fun launch-agent `uri` field.", "type": "string" } }, "required": [ "uri", "cid" ], "type": "object" } }, { "description": "Generate a Solana keypair whose address ends/starts with a vanity pattern. Returns publicKey + secretKey (base58). Caller must save the secret key immediately — it is never stored. Hard timeout: 60 s.", "inputSchema": { "properties": { "caseSensitive": { "default": false, "type": "boolean" }, "maxAttempts": { "default": 5000000, "type": "integer" }, "prefix": { "description": "Desired address prefix (case-insensitive by default)", "type": "string" }, "suffix": { "description": "Desired address suffix (case-insensitive by default)", "type": "string" } }, "type": "object" }, "name": "pumpfun_vanity_mint", "outputSchema": { "additionalProperties": true, "properties": { "attempts": { "description": "Keypairs ground before the match", "type": "integer" }, "ms": { "description": "Wall-clock grind time in milliseconds", "type": "number" }, "publicKey": { "description": "Matched Solana address (base58)", "type": "string" }, "secretKey": { "description": "Secret key (base58) — caller is sole custodian", "type": "string" } }, "required": [ "publicKey", "secretKey", "attempts", "ms" ], "type": "object" } }, { "description": "Return all pump.fun fee-claim events for a creator wallet within a look-back window (durationMs). Useful for batch collection after a delay.", "inputSchema": { "properties": { "creator": { "description": "Creator wallet address (base58)", "type": "string" }, "durationMs": { "description": "Look-back window in ms (default 300000 = 5 min, max 1800000)", "type": "number" }, "network": { "default": "mainnet", "enum": [ "mainnet", "devnet" ], "type": "string" } }, "required": [ "creator" ], "type": "object" }, "name": "pumpfun_watch_claims", "outputSchema": null }, { "description": "Collect whale trades on a pump.fun token for a short window (max 10 s). Returns all trades whose USD value meets minUsd.", "inputSchema": { "properties": { "durationMs": { "description": "Collection window in ms (default 5000, max 10000)", "type": "number" }, "minUsd": { "description": "Minimum trade value in USD (default 5000)", "type": "number" }, "mint": { "description": "SPL mint pubkey (base58)", "type": "string" } }, "required": [ "mint" ], "type": "object" }, "name": "pumpfun_watch_whales", "outputSchema": null }, { "description": "Resolve a .sol Solana Name Service domain to its owner wallet address.", "inputSchema": { "properties": { "name": { "description": ".sol domain name, e.g. \"bonfida.sol\"", "type": "string" } }, "required": [ "name" ], "type": "object" }, "name": "sns_resolve", "outputSchema": { "additionalProperties": true, "properties": { "address": { "description": "Owner wallet address (base58)", "type": "string" }, "name": { "description": "The .sol domain that was resolved", "type": "string" } }, "required": [ "name", "address" ], "type": "object" } }, { "description": "Reverse-lookup a Solana wallet address to its primary .sol domain name.", "inputSchema": { "properties": { "address": { "description": "Base58 Solana wallet address", "type": "string" } }, "required": [ "address" ], "type": "object" }, "name": "sns_reverseLookup", "outputSchema": { "additionalProperties": true, "properties": { "address": { "description": "The wallet address that was looked up", "type": "string" }, "name": { "description": "Primary .sol domain for the address", "type": "string" } }, "required": [ "address", "name" ], "type": "object" } }, { "description": "Score social-post sentiment for a cashtag using a deterministic lexicon. Returns score (-1..1), positive/negative/neutral percentages, and example posts.", "inputSchema": { "properties": { "posts": { "description": "Array of post objects. Each must have a text field; id, ts, and author are optional.", "items": { "properties": { "author": { "type": "string" }, "id": { "type": "string" }, "text": { "type": "string" }, "ts": { "type": "string" } }, "required": [ "text" ], "type": "object" }, "type": "array" } }, "required": [ "posts" ], "type": "object" }, "name": "social_cashtag_sentiment", "outputSchema": { "additionalProperties": true, "properties": { "count": { "description": "Number of posts scored", "type": "integer" }, "examples": { "additionalProperties": true, "properties": { "neg": { "items": { "type": "string" }, "type": "array" }, "pos": { "items": { "type": "string" }, "type": "array" } }, "required": [ "pos", "neg" ], "type": "object" }, "negPct": { "description": "Percentage of negative posts (0–100)", "type": "number" }, "neuPct": { "description": "Percentage of neutral posts (0–100)", "type": "number" }, "posPct": { "description": "Percentage of positive posts (0–100)", "type": "number" }, "score": { "description": "Net sentiment, -1 (bearish) to 1 (bullish)", "type": "number" } }, "required": [ "score", "posPct", "negPct", "neuPct", "count", "examples" ], "type": "object" } }, { "description": "Correlate an X (Twitter) post to a memecoin price impact. Fetches post metadata via oEmbed (no API key) and computes price delta from the pump.fun bonding curve in a ±windowMin window around the post.", "inputSchema": { "properties": { "mint": { "description": "Solana token mint address (base58)", "type": "string" }, "network": { "default": "mainnet", "enum": [ "mainnet", "devnet" ], "type": "string" }, "postUrl": { "description": "X post URL (e.g. https://x.com/user/status/123)", "type": "string" }, "windowMin": { "default": 30, "description": "±window in minutes around the post time", "type": "integer" } }, "required": [ "postUrl", "mint" ], "type": "object" }, "name": "social_x_post_impact", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:347362282470b4582f6c2ac8816db6e9498a7157261381d81482dc97dc3b9e7d | sha256sum