Koskamo

Loophole Tape MCP

Provides real-time rug checks and risk analysis for new memecoins on Solana (pump.fun) and Robinhood Chain. It computes calibrated rug probabilities, graduation odds, holder data, and creator records from independent on-chain event capture. The server supports tools for token checks, market regime analysis, and accessing free or paid data feeds via x402 payments or prepaid keys.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Loophole Tape MCP logo, by Loophole TapeCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-07Published by Loophole Tape
You need:Pay per request in USDC on Solana or Base through x402 with no accountprepaid keys ($0.10 trial, $2.00) serve clients without an x402 library
MCP endpoint (Streamable HTTP)
https://api.loopholetape.com/mcp
Vendor documentation

What its tools do

34 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

34 of 34 have a description · 34 of 34 declare behavior hints · 26 of 26 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Perform live rug checks for new pump.fun memecoins on Solana
  • Analyze Robinhood Chain pons launch and token risk cards
  • Access free daily launch datasets and real-time market feeds
  • Monitor creator records and holder distribution for risk assessment

Source and maintenance

Community listingRegistry 0.6.1
Maintenance checked

Protocol and capabilities

Server
loophole tape 0.9.0
MCP protocol negotiated in check
2025-11-25
Tools
34 advertised
Resources
5 advertised
Resource templates
1 advertised
Prompts
4 advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  },
  "prompts": {
    "listChanged": false
  },
  "resources": {
    "subscribe": false,
    "listChanged": false
  },
  "experimental": {}
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Pre-trade rug checks for new pump.fun and Robinhood Chain memecoins: free coarse verdict per token, paid detail per call (USDC via x402 or a trial key). Start with token_check (free): give it any Solana token mint or its pasted link, or a Robinhood Chain pons curve or token 0x address or its pons link (token, or mint), and it answers the verdict word by the fixed public rule (avoid, caution or no_flags_observed: the same word the paid verdict and rhc_curve_card give), one reason, coverage and age_s, with links to the paid detail; 30 calls per hour per client; no_flags_observed is not a safety verdict. Shared public trial key, for trying the API without a wallet: one key shared by every caller, with tiny daily caps ($0.50 a UTC day across all callers and $0.02 a day per caller IP). It pays the paid routes and MCP tools priced up to $0.02 (not the holder table, trade flow, 25-mint batch, dataset files or key purchases). Its calls are free samples, never payments; over a cap the answer is 429 daily_cap_reached and nothing is charged. Your own key: https://api.loopholetape.com/v1/keys/trial ($0.10), or pay per call with x402. Set it in the MCP client's config for this server as the header X-API-Key: lt_bW91U5lAaFnBwB505g9ggditZc8gY7Gh No x402 client? GET https://api.loopholetape.com/v1/keys/transfer?usd=2 quotes an exact USDC amount; send exactly that from any wallet or exchange on Base or Solana, then open the claim URL with the transaction hash and the answer is your key (X-API-Key). Put a key (buy_trial_key, buy_api_key, https://api.loopholetape.com/pricing, the transfer above) in the MCP client's config as the header X-API-Key (Smithery: apiKey): it pays these tools and the HTTP routes. Pay for a paid tool in USDC on Solana mainnet or Base via x402 over MCP: call it, receive an isError result whose first text block is the JSON x402Version/accepts (one entry per network), pay the entry your wallet supports to its payTo, retry with _meta['x402/payment']. The paid tools add the evidence, derived from our own capture of public on-chain data: calibrated rug and graduation odds, mint (holders), creator and wallet cards for new pump.fun memecoins on Solana, and Robinhood Chain pons launch and token risk cards with the deployer record and a sell check (rhc_* tools). Free tools (11): token_check, catalog, health, market_regime, sample_mint, new_launches_free, rhc_regime, check_coverage, watchlist_updates, rhc_swap_build_checked, swap_build_checked (catalog lists every tool with its price and schema). Compact pump.fun checks need full coverage and feed lag <= 5 s; unavailable/stale checks and unchanged watch cursors are unpaid. Every mint argument (mint, and each item of mints) also takes the token's pasted link: pump.fun, GMGN, Solscan, Birdeye or Jupiter, or solana:<mint>; a DexScreener, Axiom or Photon link only when its id is a mint we know. token_check's token also takes a Robinhood Chain token's pons link (www.ponsfamily.com/launchpad/<token>) or explorer link (robinhoodchain.blockscout.com/token/<token>), read as its 0x address. The link is resolved before any payment quote or key charge; an unreadable one is refused unpaid as url_not_recognised or pair_address_not_mint, with an example. Every result is a JSON envelope {ok, schema_version, generated_at, coverage: full|thin, data, meta{feed_lag_s, is_stale, next}} (token_check may also answer coverage not_covered); every tool's output schema is the resource loopholetape://schema/{tool} (also output_schema in https://api.loopholetape.com/v1/x402/resources), not part of tools/list. Label semantics: https://api.loopholetape.com/v1/labels. Prompts (prompts/list): check_before_buying (mint), screen_new_launches, grade_my_calls (mints), robinhood_chain_launches; each is a ready-made task that starts with the free step where one exists and names the prices and the ways to pay. Resources (resources/list, free to read): loopholetape://llms.txt, loopholetape://labels, loopholetape://calibration, loopholetape://pricing, the same documents the HTTP routes serve, loopholetape://coverage, a note on which mints the checks cover, and the template loopholetape://schema/{tool} (resources/templates/list): the output schema of one tool, JSON. Prices: paid tools (23, $0.001 to $5.00 in USDC): mint_risk_card $0.025, pumpfun_recent_launches $0.01, recent_rugs $0.02, recent_graduations $0.02, creator_reputation $0.02, wallet_profile $0.02, rhc_recent_launches $0.01, rhc_curve_card $0.02, rhc_curve_trades $0.02, buy_api_key $2.00, buy_trial_key $0.10, launches_since $0.001, buy_dataset $5.00, check_pumpfun_risk $0.005, check_watchlist_risk $0.01, verdict $0.01, launches_screened $0.01, check_batch_risk $0.04, mint_holders $0.01, mint_flow $0.01, mint_outcome_batch $0.01, mint_outcome $0.001, subscribe_alerts $0.10. Any paid HTTP URL opened in a browser with a wallet offers a checkout. How our rug calls compare, scored against settled outcomes (2100 pump.fun mints, 7 of the last 7 UTC days on record (2026-10-19 to 2026-10-25)): our radar at rug odds of at least 50%, called a median 12.6 s after launch, precision 71.2% (560 of 786, 95% interval 68.0 to 74.3%), recall 72.8% (560 of 769, 95% interval 69.6 to 75.8%) on rugs within 300 s; RugCheck's free public report (any danger risk), read a median 11.7 h after launch, precision 31.3% (78 of 249, 95% interval 25.9 to 37.3%), recall 8.9% (78 of 880, 95% interval 7.2 to 10.9%). The outcome labels are ours and the sample is what our radar listed; method, caveats and every row: https://api.loopholetape.com/compare (https://api.loopholetape.com/v1/compare, https://api.loopholetape.com/v1/compare/rows).

Tools

34 advertised

token_check — Free pre-trade rug check (any Solana token, pons on Robinhood Chain)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Free. Coarse pre-trade rug check for one token: a Solana mint or link, or a Robinhood Chain pons 0x address or link. Returns verdict (avoid | caution | no_flags_observed), a reason and coverage; any other Solana mint gets a thin on-chain answer, never avoid on that evidence. Not a safety verdict. Next: verdict $0.01, mint_risk_card $0.025, rhc_curve_card $0.02. Use it first before you buy.

token_check input schema
{
  "type": "object",
  "properties": {
    "mint": {
      "type": "string",
      "description": "Alias of token, either name works: takes a mint or a pump.fun/gmgn/solscan/birdeye link, or a pons 0x address."
    },
    "token": {
      "type": "string",
      "maxLength": 512,
      "minLength": 32,
      "description": "The token to check. Solana: a mint or a pump.fun/gmgn/solscan/birdeye link (a base58 SPL or Token-2022 mint, 32-44 chars; a link is resolved to its mint). Robinhood Chain: a pons v2 curve or token address (0x + 40 hex), or its pons link (www.ponsfamily.com/launchpad/<token>) or explorer link (robinhoodchain.blockscout.com/token/<token>)."
    }
  }
}
token_check output schema
{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "data": {
      "type": [
        "object",
        "null"
      ]
    },
    "meta": {
      "type": "object"
    },
    "coverage": {
      "type": "string"
    }
  }
}
token_check annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
catalog — Catalog (free)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Free. Start here: every tool with its price, arguments and x402 payment terms (USDC on Solana or Base), plus the label semantics URL. Use it first to choose a tool and budget; it carries no market data.

catalog input schema
{
  "type": "object",
  "properties": {}
}
catalog output schema
{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "data": {
      "type": [
        "object",
        "null"
      ]
    },
    "meta": {
      "type": "object"
    },
    "coverage": {
      "type": "string"
    }
  }
}
catalog annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
health — Feed health (free)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Free. Feed health: feed_lag_s (seconds behind the newest event), is_stale, last Solana slot, chain_lag_s and slots_behind (how far the tape is behind the chain, estimated from slots against the Solana RPC's processed tip). Use it before trusting a card's freshness.

health input schema
{
  "type": "object",
  "properties": {}
}
health output schema
{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "data": {
      "type": [
        "object",
        "null"
      ]
    },
    "meta": {
      "type": "object"
    },
    "coverage": {
      "type": "string"
    }
  }
}
health annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
market_regime — Market regime (free)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Free. pump.fun market regime: launches and curve buys and sells per minute, mayhem share, migrations vs true graduations, rug flags per hour. Use it to judge the market as a whole; for one mint use check_pumpfun_risk. No arguments.

market_regime input schema
{
  "type": "object",
  "properties": {}
}
market_regime output schema
{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "data": {
      "type": [
        "object",
        "null"
      ]
    },
    "meta": {
      "type": "object"
    },
    "coverage": {
      "type": "string"
    }
  }
}
market_regime annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
sample_mint — Sample risk card (free)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Free. One full risk card (the exact paid mint_risk_card shape) for a mint aged >= 300 s with >= 3 buys, delayed. Use it to see every field before paying; the server picks the mint, so it is not a check on yours. No arguments.

sample_mint input schema
{
  "type": "object",
  "properties": {}
}
sample_mint output schema
{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "data": {
      "type": [
        "object",
        "null"
      ]
    },
    "meta": {
      "type": "object"
    },
    "coverage": {
      "type": "string"
    }
  }
}
sample_mint annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
new_launches_free — New pump.fun launches live, with rug and graduation odds (free)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Free. New Solana tokens ranked: ten covered pump.fun mints under 30 s old by P(rug within 300 s) and ten under 15 min by P(true graduation), refreshed every 5 s, each with its paid check. Use it to find new memecoin launches worth a paid check. No arguments.

new_launches_free input schema
{
  "type": "object",
  "properties": {}
}
new_launches_free output schema
{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "data": {
      "type": [
        "object",
        "null"
      ]
    },
    "meta": {
      "type": "object"
    },
    "coverage": {
      "type": "string"
    }
  }
}
new_launches_free annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
check_coverage — Check mint coverage (free)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Free. Whether one to five pump.fun mints have full live coverage and a fresh feed (<= 5 s), with the exact prices. Use it right before a paid check; it returns no risk findings.

check_coverage input schema
{
  "type": "object",
  "required": [
    "mints"
  ],
  "properties": {
    "mints": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 5,
      "minItems": 1,
      "description": "One to five distinct pump.fun mints with full live coverage, each a mint or a pump.fun/gmgn/solscan/birdeye link"
    }
  }
}
check_coverage output schema
{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "data": {
      "type": [
        "object",
        "null"
      ]
    },
    "meta": {
      "type": "object"
    },
    "coverage": {
      "type": "string"
    }
  }
}
check_coverage annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
watchlist_updates — Watch for new risk events (free)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Free. Start or poll a watch cursor for one to five mints: whether new risk or lifecycle events exist, not what they are (a paid check returns them). Cursor lasts 24 h; poll every 15 s or slower. Use it to watch held mints without paying.

watchlist_updates input schema
{
  "type": "object",
  "required": [
    "mints"
  ],
  "properties": {
    "mints": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 5,
      "minItems": 1,
      "description": "One to five distinct pump.fun mints with full live coverage, each a mint or a pump.fun/gmgn/solscan/birdeye link"
    },
    "cursor": {
      "type": [
        "string",
        "null"
      ],
      "default": null,
      "maxLength": 1024,
      "description": "Optional opaque watch cursor for these exact mints; no new watched events returns an unpaid result."
    }
  }
}
watchlist_updates output schema
{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "data": {
      "type": [
        "object",
        "null"
      ]
    },
    "meta": {
      "type": "object"
    },
    "coverage": {
      "type": "string"
    }
  }
}
watchlist_updates annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
check_pumpfun_risk — pump.fun rug check with calibrated odds ($0.005)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

$0.005 per call. Is this Solana token safe? Solana token safety check (rug check) for ONE pump.fun mint: calibrated rug probability and observed flags, not a safety guarantee. Use right before a swap or while holding it. Returns flags_observed | no_flags_observed (never a safety guarantee), findings. Uncovered or stale: refused before payment. Fields: loopholetape://schema/check_pumpfun_risk.

check_pumpfun_risk input schema
{
  "type": "object",
  "required": [
    "mint"
  ],
  "properties": {
    "mint": {
      "type": "string",
      "description": "A pump.fun mint with full live coverage; call the free check_coverage tool first. Accepts a mint or a pump.fun/gmgn/solscan/birdeye link."
    },
    "cursor": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 1024,
      "description": "Optional opaque watch cursor for these exact mints; no new watched events returns an unpaid result."
    }
  }
}
check_pumpfun_risk output schema
{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "data": {
      "type": [
        "object",
        "null"
      ]
    },
    "meta": {
      "type": "object"
    },
    "coverage": {
      "type": "string"
    }
  }
}
check_pumpfun_risk annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
check_watchlist_risk — Rug check for up to five mints ($0.01 total)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

$0.01 per call for 1-5 mints, not per mint. Use when you hold or watch 2-5 pump.fun mints; for one mint check_pumpfun_risk ($0.005) costs less. Each gets the compact check item. Uncovered or stale: refused before payment. Not a safety guarantee. Fields: loopholetape://schema/check_watchlist_risk.

check_watchlist_risk input schema
{
  "type": "object",
  "required": [
    "mints"
  ],
  "properties": {
    "mints": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 512,
        "minLength": 32,
        "description": "a mint or a pump.fun/gmgn/solscan/birdeye link"
      },
      "maxItems": 5,
      "minItems": 1,
      "description": "One to five distinct pump.fun mints, each a mint or a pump.fun/gmgn/solscan/birdeye link. All must have full live coverage.",
      "uniqueItems": true
    },
    "cursor": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 1024,
      "description": "Optional opaque watch cursor for these exact mints; no new watched events returns an unpaid result."
    }
  }
}
check_watchlist_risk output schema
{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "data": {
      "type": [
        "object",
        "null"
      ]
    },
    "meta": {
      "type": "object"
    },
    "coverage": {
      "type": "string"
    }
  }
}
check_watchlist_risk annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
verdict — pump.fun rug-check verdict with a shareable card ($0.01)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

$0.01 per call. Is this Solana token a rug pull? Token safety verdict (rug check) for ONE pump.fun mint: avoid, caution or no_flags_observed (not a safety guarantee). Use when you need one bounded answer before you buy or hold it, with a free card page. Uncovered or stale: refused before payment. no_flags_observed is not a safety guarantee. Fields: loopholetape://schema/verdict.

verdict input schema
{
  "type": "object",
  "required": [
    "mint"
  ],
  "properties": {
    "mint": {
      "type": "string",
      "description": "A pump.fun mint with full live coverage; call the free check_coverage tool first. Accepts a mint or a pump.fun/gmgn/solscan/birdeye link."
    }
  }
}
verdict output schema
{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "data": {
      "type": [
        "object",
        "null"
      ]
    },
    "meta": {
      "type": "object"
    },
    "coverage": {
      "type": "string"
    }
  }
}
verdict annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
mint_risk_card — Memecoin risk card: holders, creator, flags ($0.025)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

$0.025 per call. Solana token safety card for ONE token. Use when you need every field: holders, creator, flags, odds, market, authorities, cohorts with holder reputation. coverage thin = any other SPL mint (authorities, Token-2022). Fields: loopholetape://schema/mint_risk_card.

mint_risk_card input schema
{
  "type": "object",
  "required": [
    "mint"
  ],
  "properties": {
    "mint": {
      "type": "string",
      "examples": [
        "73sfnFgqQzpSRZSimCC4sxpubqghRGYewYLmiUH2pump"
      ],
      "maxLength": 512,
      "minLength": 32,
      "description": "base58 SPL mint address (32-44 chars); pump.fun mints usually end in 'pump'. Accepts a mint or a pump.fun/gmgn/solscan/birdeye link."
    }
  }
}
mint_risk_card output schema
{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "data": {
      "type": [
        "object",
        "null"
      ]
    },
    "meta": {
      "type": "object"
    },
    "coverage": {
      "type": "string"
    }
  }
}
mint_risk_card annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
pumpfun_recent_launches — New pump.fun memecoin launches ($0.01)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

$0.01 per call. New Solana tokens: the newest pump.fun memecoin launches (default 1 h) as compact cards: curve SOL, buyers, concentration, flags. Use to screen new launches; poll with launches_since ($0.001). Stale feed: refused before payment. Fields: loopholetape://schema/pumpfun_recent_launches.

pumpfun_recent_launches input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "default": 50,
      "maximum": 100,
      "minimum": 1,
      "description": "max items 1-100"
    },
    "min_rs": {
      "type": "number",
      "default": 0,
      "minimum": 0,
      "description": "minimum curve SOL right now"
    },
    "max_age_s": {
      "type": "number",
      "default": 3600,
      "maximum": 21600,
      "minimum": 30,
      "description": "only mints created within this many seconds (30-21600)"
    },
    "only_alive": {
      "type": "boolean",
      "default": false,
      "description": "drop mints with any rug/close flag"
    },
    "exclude_mayhem": {
      "type": "boolean",
      "default": true,
      "description": "drop mayhem-class launches"
    }
  }
}
pumpfun_recent_launches output schema
{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "data": {
      "type": [
        "object",
        "null"
      ]
    },
    "meta": {
      "type": "object"
    },
    "coverage": {
      "type": "string"
    }
  }
}
pumpfun_recent_launches annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
recent_rugs — Recent memecoin rug flags ($0.02)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

$0.02 per call. Use to see which pump.fun tokens fired rug or close flags in a window and how (creator_sold, bundle_dumped, curve_drained, pool_drained), newest first. Not a check on one mint. Stale feed: refused before payment. Fields: loopholetape://schema/recent_rugs.

recent_rugs input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "default": 50,
      "maximum": 200,
      "minimum": 1,
      "description": "max items 1-200"
    },
    "window_s": {
      "type": "number",
      "default": 3600,
      "maximum": 21600,
      "minimum": 60,
      "description": "look-back seconds 60-21600"
    }
  }
}
recent_rugs output schema
{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "data": {
      "type": [
        "object",
        "null"
      ]
    },
    "meta": {
      "type": "object"
    },
    "coverage": {
      "type": "string"
    }
  }
}
recent_rugs annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
recent_graduations — Recent pump.fun graduations ($0.02)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

$0.02 per call. Use to list recent pump.fun migrations to PumpSwap (default last 6 h): graduated=true means we saw the curve reach 84 SOL; each labelled instant_bundle or organic. Not a live rug check. Stale feed: refused before payment. Fields: loopholetape://schema/recent_graduations.

recent_graduations input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "default": 50,
      "maximum": 100,
      "minimum": 1,
      "description": "max items 1-100"
    },
    "window_s": {
      "type": "number",
      "default": 21600,
      "maximum": 86400,
      "minimum": 60,
      "description": "look-back seconds 60-86400"
    }
  }
}
recent_graduations output schema
{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "data": {
      "type": [
        "object",
        "null"
      ]
    },
    "meta": {
      "type": "object"
    },
    "coverage": {
      "type": "string"
    }
  }
}
recent_graduations annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
creator_reputation — Creator (dev wallet) reputation ($0.02)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

$0.02 per call. Use to judge a new pump.fun token by its creator's earlier launches: graduations, rugs, median seconds to the dev's first sell, last 25 launches. Input: address (base58 wallet). Stale feed: refused before payment. Fields: loopholetape://schema/creator_reputation.

creator_reputation input schema
{
  "type": "object",
  "required": [
    "address"
  ],
  "properties": {
    "address": {
      "type": "string",
      "examples": [
        "11111111111111111111111111111111"
      ],
      "maxLength": 44,
      "minLength": 32,
      "description": "base58 Solana wallet address (32-44 chars)"
    }
  }
}
creator_reputation output schema
{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "data": {
      "type": [
        "object",
        "null"
      ]
    },
    "meta": {
      "type": "object"
    },
    "coverage": {
      "type": "string"
    }
  }
}
creator_reputation annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
wallet_profile — Solana wallet profile ($0.02)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

$0.02 per call. Use to classify a wallet that buys pump.fun tokens (insider, latency_bot or skilled) and read its PnL when it ranks on our leaderboard. Not a mint's risk. Input: address (base58 wallet). Stale feed: refused before payment. Fields: loopholetape://schema/wallet_profile.

wallet_profile input schema
{
  "type": "object",
  "required": [
    "address"
  ],
  "properties": {
    "address": {
      "type": "string",
      "examples": [
        "11111111111111111111111111111111"
      ],
      "maxLength": 44,
      "minLength": 32,
      "description": "base58 Solana wallet address (32-44 chars)"
    }
  }
}
wallet_profile output schema
{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "data": {
      "type": [
        "object",
        "null"
      ]
    },
    "meta": {
      "type": "object"
    },
    "coverage": {
      "type": "string"
    }
  }
}
wallet_profile annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
rhc_regime — Robinhood Chain regime (free)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Free. Robinhood Chain pons regime: launches and graduations per hour, graduation rate, median seconds to graduate, buys per minute, unique buyers, snipe-tax facts. Use it to gauge launch activity as a whole; for one curve use rhc_curve_card. No arguments.

rhc_regime input schema
{
  "type": "object",
  "properties": {}
}
rhc_regime output schema
{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "data": {
      "type": [
        "object",
        "null"
      ]
    },
    "meta": {
      "type": "object"
    },
    "coverage": {
      "type": "string"
    }
  }
}
rhc_regime annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
rhc_recent_launches — Robinhood Chain new memecoin launches ($0.01)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

$0.01 per call. New token launches on Robinhood Chain. Use to screen or poll new pons memecoins (default last hour) as structure cards: raised, taxes, concentration, ring block, each with verdict and basis. Filters: ring_only, since. Not Solana. Fields: loopholetape://schema/rhc_recent_launches.

rhc_recent_launches input schema
{
  "type": "object",
  "properties": {
    "pair": {
      "type": "string",
      "default": "any",
      "description": "'any' or 'eth' (ETH-paired curves only)"
    },
    "limit": {
      "type": "integer",
      "default": 50,
      "maximum": 200,
      "minimum": 1,
      "description": "max items 1-200"
    },
    "since": {
      "type": [
        "number",
        "null"
      ],
      "default": null,
      "minimum": 0,
      "description": "unix seconds cursor (next_cursor of the previous call): launches after it, oldest first"
    },
    "min_buys": {
      "type": "integer",
      "default": 0,
      "minimum": 0,
      "description": "minimum curve buys observed"
    },
    "max_age_s": {
      "type": "number",
      "default": 3600,
      "maximum": 21600,
      "minimum": 30,
      "description": "only launches within this many seconds (30-21600)"
    },
    "only_live": {
      "type": "boolean",
      "default": false,
      "description": "drop completed / graduated curves"
    },
    "ring_only": {
      "type": "boolean",
      "default": false,
      "description": "ring screen: only curves matching the measured same-block direct-buy cluster structure (unique_buyers >= 8 and same_block_direct_cluster_share >= 0.5)"
    }
  }
}
rhc_recent_launches output schema
{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "data": {
      "type": [
        "object",
        "null"
      ]
    },
    "meta": {
      "type": "object"
    },
    "coverage": {
      "type": "string"
    }
  }
}
rhc_recent_launches annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
buy_api_key — Buy a prepaid API key ($2.00)
Advertised by the server during the last successful anonymous check.
Open-world

$2.00 once. Use when your client cannot sign x402 on every call: a prepaid key lt_... holding $2.00 of credit, sent as the X-API-Key header on POST /mcp or any paid HTTP route; each call's price is deducted. A bearer secret; credit does not expire. Try first: buy_trial_key. No arguments.

buy_api_key input schema
{
  "type": "object",
  "properties": {}
}
buy_api_key output schema
{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "data": {
      "type": [
        "object",
        "null"
      ]
    },
    "meta": {
      "type": "object"
    },
    "coverage": {
      "type": "string"
    }
  }
}
buy_api_key annotations
{
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
buy_dataset — Buy one day of pump.fun launches ($5.00)
Advertised by the server during the last successful anonymous check.
Open-world

$5.00 per day file. Use to backtest or train a rug or graduation model on one UTC day of pump.fun launches (about 15k-35k rows), not for live decisions. Input: day (YYYY-MM-DD; days on sale at free GET /v1/datasets). Returns a one-hour download URL.

buy_dataset input schema
{
  "type": "object",
  "required": [
    "day"
  ],
  "properties": {
    "day": {
      "type": "string",
      "examples": [
        "2026-09-11"
      ],
      "maxLength": 10,
      "minLength": 10,
      "description": "UTC day YYYY-MM-DD listed by the free index /v1/datasets"
    }
  }
}
buy_dataset output schema
{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "data": {
      "type": [
        "object",
        "null"
      ]
    },
    "meta": {
      "type": "object"
    },
    "coverage": {
      "type": "string"
    }
  }
}
buy_dataset annotations
{
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
launches_since — New pump.fun launches with rug odds ($0.001)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

$0.001 per poll. New Solana tokens: every covered pump.fun memecoin launch after `since`, each with verdict and P(rug within 300 s). Use when polling: pass next_cursor back as since; an empty page costs the same. Stale feed: refused before payment. Fields: loopholetape://schema/launches_since.

launches_since input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "default": 100,
      "maximum": 100,
      "minimum": 1,
      "description": "launches per call"
    },
    "since": {
      "type": [
        "number",
        "null"
      ],
      "default": null,
      "description": "unix seconds of the last launch seen (next_cursor of the previous call); omit for the last 60 s"
    },
    "no_avoid": {
      "type": "boolean",
      "default": false,
      "description": "true or 1: leave out items whose verdict is avoid"
    },
    "min_p_grad": {
      "type": "number",
      "default": 0,
      "maximum": 1,
      "minimum": 0,
      "description": "keep items whose P(true graduation) is at least this (0 = no floor)"
    }
  }
}
launches_since output schema
{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "data": {
      "type": [
        "object",
        "null"
      ]
    },
    "meta": {
      "type": "object"
    },
    "coverage": {
      "type": "string"
    }
  }
}
launches_since annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
buy_trial_key — Buy a $0.10 trial key
Advertised by the server during the last successful anonymous check.
Open-world

$0.10 once. Use to try the paid tools: a prepaid key lt_... holding $0.10 of credit, sent as the X-API-Key header on POST /mcp or any paid HTTP route. A bearer secret. Larger credit: buy_api_key. No arguments.

buy_trial_key input schema
{
  "type": "object",
  "properties": {}
}
buy_trial_key output schema
{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "data": {
      "type": [
        "object",
        "null"
      ]
    },
    "meta": {
      "type": "object"
    },
    "coverage": {
      "type": "string"
    }
  }
}
buy_trial_key annotations
{
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
rhc_curve_card — Robinhood Chain token risk card ($0.02)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

$0.02 per call. Use when you hold or are about to trade ONE pons v2 token on Robinhood Chain: verdict, basis, reasons, deployer record, exact sell_check, taxes, holders, ring screen. Input: address (0x). Unknown address: refused before payment. Fields: loopholetape://schema/rhc_curve_card.

rhc_curve_card input schema
{
  "type": "object",
  "required": [
    "address"
  ],
  "properties": {
    "address": {
      "type": "string",
      "examples": [
        "0x1d63d24f2d6e726fa53c45cefcbee2c1b8ffa855"
      ],
      "maxLength": 42,
      "minLength": 42,
      "description": "0x-prefixed 40-hex pons v2 curve OR token address on Robinhood Chain"
    }
  }
}
rhc_curve_card output schema
{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "data": {
      "type": [
        "object",
        "null"
      ]
    },
    "meta": {
      "type": "object"
    },
    "coverage": {
      "type": "string"
    }
  }
}
rhc_curve_card annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
rhc_curve_trades — Robinhood Chain per-trade reserves ($0.02)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

$0.02 per page. Use to index or price a pons curve: Robinhood Chain reserves rebuilt to the wei, per buy, sell and buyback in block order: amounts, fee, taxes, price, next_cursor. Input: address, since, limit. ETH-paired curves up to 90 min old. Fields: loopholetape://schema/rhc_curve_trades.

rhc_curve_trades input schema
{
  "type": "object",
  "required": [
    "address"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "default": 100,
      "maximum": 500,
      "minimum": 1,
      "description": "events per page (1-500)"
    },
    "since": {
      "type": "string",
      "example": "70746901:1",
      "maxLength": 40,
      "description": "optional start, exclusive: next_cursor 'block:log_index' of the previous page, a block number, or unix seconds (values >= 1e9); omitted = from the curve's first trade"
    },
    "address": {
      "type": "string",
      "description": "0x-prefixed 40-hex pons v2 curve OR token address on Robinhood Chain"
    }
  }
}
rhc_curve_trades output schema
{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "data": {
      "type": [
        "object",
        "null"
      ]
    },
    "meta": {
      "type": "object"
    },
    "coverage": {
      "type": "string"
    }
  }
}
rhc_curve_trades annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
launches_screened — New pump.fun launches screened by verdict ($0.01)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

$0.01 per call. New Solana tokens screened. Use to get new pump.fun memecoin launches (last 15 min) that the fixed rule does not mark avoid, ranked by P(true graduation). Stale feed or empty screen: refused before payment. Not a safety guarantee. Fields: loopholetape://schema/launches_screened.

launches_screened input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "default": 25,
      "maximum": 50,
      "minimum": 1,
      "description": "items to return, 1-50"
    },
    "max_age_s": {
      "type": "number",
      "default": 900,
      "maximum": 3600,
      "minimum": 30,
      "description": "launches created within this many seconds (30-3600)"
    }
  }
}
launches_screened output schema
{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "data": {
      "type": [
        "object",
        "null"
      ]
    },
    "meta": {
      "type": "object"
    },
    "coverage": {
      "type": "string"
    }
  }
}
launches_screened annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
check_batch_risk — Rug check for up to 25 mints ($0.04 total)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

$0.04 per call for one to 25 mints, not per mint. Use when a screener checks a list, some possibly outside the live window: the compact check item per covered mint, others listed as unavailable. Charged if any is covered. Not a safety guarantee. Fields: loopholetape://schema/check_batch_risk.

check_batch_risk input schema
{
  "type": "object",
  "required": [
    "mints"
  ],
  "properties": {
    "mints": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 512,
        "minLength": 32,
        "description": "a mint or a pump.fun/gmgn/solscan/birdeye link"
      },
      "maxItems": 25,
      "minItems": 1,
      "description": "One to 25 distinct pump.fun mints, each a mint or a pump.fun/gmgn/solscan/birdeye link; a mint outside the live window is listed as coverage unavailable.",
      "uniqueItems": true
    }
  }
}
check_batch_risk output schema
{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "data": {
      "type": [
        "object",
        "null"
      ]
    },
    "meta": {
      "type": "object"
    },
    "coverage": {
      "type": "string"
    }
  }
}
check_batch_risk annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
mint_holders — Holders of one pump.fun memecoin ($0.01)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

$0.01 per call. Solana token holder concentration for ONE pump.fun token. Use when you need who holds it now: top-5 and top-10 share, HHI, cohorts (dev, bundlers, snipers) with holder reputation. Labels are observations, not a verdict on a wallet. Fields: loopholetape://schema/mint_holders.

mint_holders input schema
{
  "type": "object",
  "required": [
    "mint"
  ],
  "properties": {
    "mint": {
      "type": "string",
      "description": "A pump.fun mint with full live coverage; call the free check_coverage tool first. Accepts a mint or a pump.fun/gmgn/solscan/birdeye link."
    },
    "limit": {
      "type": "integer",
      "default": 50,
      "maximum": 100,
      "minimum": 1,
      "description": "holder rows to return, largest first (1-100)"
    }
  }
}
mint_holders output schema
{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "data": {
      "type": [
        "object",
        "null"
      ]
    },
    "meta": {
      "type": "object"
    },
    "coverage": {
      "type": "string"
    }
  }
}
mint_holders annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
mint_flow — Who bought and sold one pump.fun memecoin ($0.01)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

$0.01 per page. Use when you need who bought and sold ONE pump.fun token trade by trade, or to poll its new trades: curve buys and sells in slot order, summaries, demand, cohorts with holder reputation. Input: mint or link, since, limit. Fields: loopholetape://schema/mint_flow.

mint_flow input schema
{
  "type": "object",
  "required": [
    "mint"
  ],
  "properties": {
    "mint": {
      "type": "string",
      "description": "A pump.fun mint with full live coverage; call the free check_coverage tool first. Accepts a mint or a pump.fun/gmgn/solscan/birdeye link."
    },
    "limit": {
      "type": "integer",
      "default": 100,
      "maximum": 500,
      "minimum": 1,
      "description": "trades per page (1-500)"
    },
    "since": {
      "type": "string",
      "example": "449819861:37",
      "maxLength": 40,
      "description": "optional start, exclusive: next_cursor 'slot:index' of the previous page, a slot number, or unix seconds (values >= 1e9); omitted = from the launch"
    }
  }
}
mint_flow output schema
{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "data": {
      "type": [
        "object",
        "null"
      ]
    },
    "meta": {
      "type": "object"
    },
    "coverage": {
      "type": "string"
    }
  }
}
mint_flow annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
mint_outcome — Outcome labels for one pump.fun memecoin ($0.001)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

$0.001 per call. Use to grade your own rug or graduation calls or backtest a signal: the outcome of ONE pump.fun launch by a fixed public rule (rugged and when, graduated and when), null until settled. A mint we never recorded is refused unpaid. Fields: loopholetape://schema/mint_outcome.

mint_outcome input schema
{
  "type": "object",
  "required": [
    "mint"
  ],
  "properties": {
    "mint": {
      "type": "string",
      "description": "Any pump.fun mint (base58, 32-44 characters); one we never recorded is refused unpaid. Accepts a mint or a pump.fun/gmgn/solscan/birdeye link."
    }
  }
}
mint_outcome output schema
{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "data": {
      "type": [
        "object",
        "null"
      ]
    },
    "meta": {
      "type": "object"
    },
    "coverage": {
      "type": "string"
    }
  }
}
mint_outcome annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
mint_outcome_batch — Outcome labels for up to 40 pump.fun memecoins ($0.01)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

$0.01 per call whatever the answers. Use to grade a list of your own calls: the outcomes of 1 to 40 pump.fun mints, as mint_outcome ($0.001 alone). Input: mints. Fields: loopholetape://schema/mint_outcome_batch.

mint_outcome_batch input schema
{
  "type": "object",
  "required": [
    "mints"
  ],
  "properties": {
    "mints": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 512,
        "minLength": 32,
        "description": "a mint or a pump.fun/gmgn/solscan/birdeye link"
      },
      "maxItems": 40,
      "minItems": 1,
      "description": "One to 40 distinct pump.fun mints, each a mint or a pump.fun/gmgn/solscan/birdeye link, known to our capture or not.",
      "uniqueItems": true
    }
  }
}
mint_outcome_batch output schema
{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "data": {
      "type": [
        "object",
        "null"
      ]
    },
    "meta": {
      "type": "object"
    },
    "coverage": {
      "type": "string"
    }
  }
}
mint_outcome_batch annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
rhc_swap_build_checked — Robinhood Chain swap builder, 0.25% disclosed fee (free)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Free. Use it to swap a graduated pons token on Robinhood Chain: returns the UNSIGNED KyberSwap transaction to sign. Fee 0.25% (25 bps) to 0x25d408eF54e60F3006bD13d5A040d525E2F359c2 via router 0x6131B5fae19EA4f9D964eAc0408E4408b66337b5. Refused if our verdict is avoid or the quote is over 30 seconds old; live curve: sell_check on rhc_curve_card. Holds no keys; nothing is sent.

rhc_swap_build_checked input schema
{
  "type": "object",
  "required": [
    "token",
    "wallet",
    "amount"
  ],
  "properties": {
    "side": {
      "type": "string",
      "default": "buy",
      "maxLength": 8,
      "description": "buy (spend ETH for the token, default) or sell (sell the token for ETH)"
    },
    "token": {
      "type": "string",
      "examples": [
        "0x9029d5c35457a684067beba8d7707ab6a39b634a"
      ],
      "maxLength": 42,
      "minLength": 42,
      "description": "0x address of a graduated pons v2 token on Robinhood Chain (42 characters)"
    },
    "amount": {
      "type": "string",
      "examples": [
        "0.01"
      ],
      "maxLength": 40,
      "minLength": 1,
      "description": "Decimal whole units, at most 18 decimals: ETH for side buy, tokens for side sell"
    },
    "wallet": {
      "type": "string",
      "examples": [
        "0x000000000000000000000000000000000000dEaD"
      ],
      "maxLength": 42,
      "minLength": 42,
      "description": "0x address that will sign and receive; put in the calldata as sender and recipient"
    },
    "slippage_pct": {
      "type": "number",
      "default": 1,
      "maximum": 5,
      "minimum": 0.01,
      "description": "Slippage in percent: default 1, at most 5, at most two decimals"
    }
  }
}
rhc_swap_build_checked output schema
{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "data": {
      "type": [
        "object",
        "null"
      ]
    },
    "meta": {
      "type": "object"
    },
    "coverage": {
      "type": "string"
    }
  }
}
rhc_swap_build_checked annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
swap_build_checked — Solana swap builder, 0.25% disclosed fee (free)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Free. Use it when you buy or sell a pump.fun token (curve or PumpSwap pool): without wallet an estimated quote (output, impact, fee) from curve or pool reserves; with wallet the UNSIGNED Jupiter swap. Refused on avoid/block. Fee: a disclosed 0.25% (25 bps) to loophole tape's wallet. Holds no keys.

swap_build_checked input schema
{
  "type": "object",
  "required": [
    "mint",
    "amount",
    "side"
  ],
  "properties": {
    "mint": {
      "type": "string",
      "maxLength": 512,
      "minLength": 32,
      "description": "the pump.fun token: a mint or a pump.fun/gmgn/solscan/birdeye link"
    },
    "side": {
      "enum": [
        "buy",
        "sell"
      ],
      "type": "string",
      "description": "buy or sell, required: amount is in lamports for buy, token base units for sell"
    },
    "amount": {
      "type": "string",
      "description": "whole base units: lamports for buy (max 50 SOL), token base units for sell"
    },
    "wallet": {
      "type": "string",
      "maxLength": 44,
      "minLength": 32,
      "description": "optional: the signing wallet's base58 key; without it, an estimated quote"
    },
    "slippage_pct": {
      "type": "number",
      "default": 1,
      "maximum": 5,
      "minimum": 0.01,
      "description": "percent, default 1"
    }
  }
}
swap_build_checked output schema
{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "data": {
      "type": [
        "object",
        "null"
      ]
    },
    "meta": {
      "type": "object"
    },
    "coverage": {
      "type": "string"
    }
  }
}
swap_build_checked annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
subscribe_alerts — Push pump.fun and Robinhood Chain alerts to Discord or Telegram ($0.10)
Advertised by the server during the last successful anonymous check.
Open-world

$0.10 once, for 30 days. Use when a Discord or Telegram room you own should get pump.fun and Robinhood Chain alerts without a server. Input: destination (Discord webhook URL or telegram:<bot_token>:<chat_id>), kinds. A test message goes first; a failed test is unpaid. At most 20 messages an hour.

subscribe_alerts input schema
{
  "type": "object",
  "required": [
    "destination",
    "kinds"
  ],
  "properties": {
    "kinds": {
      "type": "array",
      "items": {
        "enum": [
          "graduation_odds",
          "ring_flags",
          "graduations",
          "avoid_flips"
        ],
        "type": "string"
      },
      "maxItems": 4,
      "minItems": 1,
      "description": "One or more of graduation_odds, ring_flags, graduations, avoid_flips.",
      "uniqueItems": true
    },
    "label": {
      "type": "string",
      "default": "",
      "maxLength": 40,
      "description": "optional name printed at the start of every message (letters, digits, spaces and basic punctuation)"
    },
    "rhc_only": {
      "type": "boolean",
      "default": false,
      "description": "true: leave out the pump.fun kinds"
    },
    "max_age_s": {
      "type": "number",
      "default": 0,
      "maximum": 86400,
      "minimum": 0,
      "description": "keep items whose launch was at most this many seconds old when the item was recorded; for graduations the time to graduation (0 = no limit)"
    },
    "min_p_grad": {
      "type": "number",
      "default": 0,
      "maximum": 1,
      "minimum": 0,
      "description": "graduation_odds and avoid_flips: keep items whose P(true graduation) at publication is at least this (0 = no floor)"
    },
    "destination": {
      "type": "string",
      "maxLength": 300,
      "minLength": 20,
      "description": "Your room's delivery endpoint: a Discord webhook URL https://discord.com/api/webhooks/<id>/<token>, or telegram:<bot_token>:<chat_id> for a Telegram bot you own. Send it in the POST JSON body or the X-Alert-Destination header: a query string can be recorded by proxies."
    },
    "pumpfun_only": {
      "type": "boolean",
      "default": false,
      "description": "true: leave out the Robinhood Chain kind (ring_flags)"
    }
  }
}
subscribe_alerts output schema
{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "data": {
      "type": [
        "object",
        "null"
      ]
    },
    "meta": {
      "type": "object"
    },
    "coverage": {
      "type": "string"
    }
  }
}
subscribe_alerts annotations
{
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}

Prompts

4 advertised

check_before_buying — Check a pump.fun token before buying

Advertised by the server during the last successful anonymous check.

Check one pump.fun mint before buying: the free token_check first (the verdict word, one reason, coverage), then the $0.01 verdict or the $0.025 mint_risk_card when the word is caution or you want the odds or the holders, with the verdict words explained.

mint
the pump.fun mint address (base58, 32 to 44 characters), or its pump.fun link (required)
screen_new_launches — Screen new pump.fun launches

Advertised by the server during the last successful anonymous check.

One $0.01 call that screens the newest pump.fun launches (avoid verdicts left out) and ranks them by calibrated P(true graduation), with how to read that number.

No arguments advertised.

grade_my_calls — Grade my calls

Advertised by the server during the last successful anonymous check.

Grade your own rug or graduation calls on pump.fun mints against the public outcome labels ($0.01 per 40 mints) and compute hit rates.

mints
the pump.fun mint addresses you made calls on, separated by commas or spaces (up to 400) (required)
robinhood_chain_launches — Robinhood Chain launches

Advertised by the server during the last successful anonymous check.

The newest Robinhood Chain (pons) memecoin launches with the ring screen ($0.01), and how to read the ring flag and the creator tax.

No arguments advertised.

Resources

5 advertised

llms.txt — Agent guide (llms.txt)

Advertised by the server during the last successful anonymous check.

Free. The plain-text guide for LLM agents: every route and tool, prices, payment terms and label notes; the text GET /llms.txt serves.

llms.txt URI
loopholetape://llms.txt

MIME type: text/plain

labels — Label semantics

Advertised by the server during the last successful anonymous check.

Free. What every label, flag, verdict word and outcome rule means, with market base rates; the JSON GET /v1/labels serves.

labels URI
loopholetape://labels

MIME type: application/json

calibration — Calibration tables

Advertised by the server during the last successful anonymous check.

Free. The out-of-time validation tables behind the calibrated rug and graduation probabilities; the JSON GET /v1/calibration serves.

calibration URI
loopholetape://calibration

MIME type: application/json

pricing — Prices

Advertised by the server during the last successful anonymous check.

Free. Every price: paid routes and their MCP tools, prepaid keys, free routes and the payment rails; the JSON GET /pricing.json serves.

pricing URI
loopholetape://pricing

MIME type: application/json

coverage — Coverage note

Advertised by the server during the last successful anonymous check.

Free. Which pump.fun mints the checks can answer (the live window), the feed-freshness rule, the free check_coverage tool and the feed lag right now.

coverage URI
loopholetape://coverage

MIME type: text/plain

tool_schema — Output schema of one tool

Advertised by the server during the last successful anonymous check.

Free. The JSON Schema of one tool's result: anyOf the success envelope, the x402 PaymentRequired answer and a refusal. tools/list carries no outputSchema; read this for the tool you call, or output_schema in /v1/x402/resources.

tool_schema URI template
loopholetape://schema/{tool}

MIME type: application/json

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (5 of 5 answered).

  1. 2026-11-07: 1 of 1 checks answered
  2. 2026-11-09: 2 of 2 checks answered
  3. 2026-11-10: 2 of 2 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
2003 ms
95th percentile latency
2003 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 2003 ms · metadata changed · 34 tool(s), 5 resource(s), 1 resource template(s), 4 prompt(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http loophole-tape-mcp https://api.loopholetape.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add loophole-tape-mcp --url https://api.loopholetape.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable loophole-tape-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "loophole-tape-mcp": {
      "url": "https://api.loopholetape.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "loophole-tape-mcp": {
      "type": "streamableHttp",
      "url": "https://api.loopholetape.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start loophole-tape-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "loophole-tape-mcp": {
      "type": "http",
      "url": "https://api.loopholetape.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http loophole-tape-mcp https://api.loopholetape.com/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://api.loopholetape.com/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "loophole-tape-mcp": {
      "serverUrl": "https://api.loopholetape.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Loophole Tape MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.