Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.cookiechain/cookie-mcp

NPM · COOKIE-MCP · SCANNED SEP 20

Cookie Chain tools for AI agents: swap, launch, liquidity, staking, NFTs, and a Solana bridge.

Available components

+15 this week 77 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security89
  • No malware found by supply-chain analysis.Pass
  • CVE check failed: a known high-severity CVE affects toml 3.0.0, reached via @coral-xyz/anchor > toml. A fixed version is available. View diagnostics → Fail
  • No install/post-install scripts declared.Pass
  • 73 of 213 dependencies flagged as unhealthy (2 deprecated). View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability72
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 9135 tokens (~172/item across 53 items; 53 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management82
  • Stability check failed: the tool surface changed between 0.2.2 and 0.5.0: 0 tool removals, 1 breaking changes, 21 additions. See how to fix → Fail
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 5 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "trade" implies "execute" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 53 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the io.github.cookiechain/cookie-mcp server?

io.github.cookiechain/cookie-mcp runs locally as an npm package, launched with npx -y cookie-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · cookie-mcp

# add to Claude Code
claude mcp add cookiechain-cookie-mcp -- npx -y cookie-mcp
// .cursor/mcp.json
{
  "mcpServers": {
    "cookiechain-cookie-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "cookie-mcp"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "cookiechain-cookie-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "cookie-mcp"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add cookiechain-cookie-mcp -- npx -y cookie-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "cookiechain-cookie-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "cookie-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add cookiechain-cookie-mcp --command npx --arg -y --arg cookie-mcp
# ~/.hermes/config.yaml
mcp_servers:
  cookiechain-cookie-mcp:
    command: "npx"
    args: ["-y", "cookie-mcp"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "cookiechain-cookie-mcp": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "cookie-mcp"
      ]
    }
  }
}
# add to Vellum
assistant mcp add cookiechain-cookie-mcp -t stdio -c npx -a -y cookie-mcp
// mcp.json
{
  "mcpServers": {
    "cookiechain-cookie-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "cookie-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 20 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 78 to 82.

  • 19 Sept 26 −3

    No change was recorded against any check on this day. Stability & Change Management went from 98 to 78.

  • 18 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 95 to 98.

  • 16 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 88 to 92.

  • 15 Sept 26 +15
    • Malware scan: unverified → pass security
  • 14 Sept 26 0
    • Malware scan: unverified → pass security
    • Package version: 0.4.0 → 0.5.0 functional
  • 13 Sept 26 −19
    • Malware scan: pass → unverified security
    • Stability: pass → fail security
    • Schema quality: 110 → 167 functional
    • Security disclosure: fail → unverified functional
    • Stability: pass → 0.83 functional
    • Package version: 0.2.2 → 0.4.0 functional
  • 12 Sept 26 +1
    • Stability: 0.97 → pass security
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Analysed npm/cookie-mcp@0.5.0

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Vulnerabilities 5 findings
ID CVE Severity Vector Fix available
GHSA-3gc7-fjrx-p6mg CVE-2025-3194 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H no
GHSA-528h-pc64-c93x CVE-2026-71429 medium CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yes
GHSA-82x6-q7mm-w9cf CVE-2026-77465 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yes
GHSA-v5mp-jgw5-2x6j CVE-2026-63376 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:L yes
GHSA-w5hq-g745-h8pq CVE-2026-41907 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N yes

Background: What a vulnerability scan can and cannot prove →

Dependencies 213 packages
Packages resolved 213
Deprecated 2
Stale 68
No linked repository 4
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 53 exposed · ~9,135 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
accept_offer ~85

Accept an offer on an NFT you own, selling it to the bidder for the escrowed COOK (minus the 1% fee and royalties). Takes the highest active offer unless you pass `buyer`. Simulates before sending. Requires COOKIE_PRIVATE_KEY.

NameTypeReqDescription
buyerstringbidder wallet, if multiple offers exist
mintstringyesthe NFT mint you own

No output schema declared.

No examples provided.

add_liquidity ~118

Add liquidity to a pool by opening a new position; the venue (Cookiebox DAMM v2, Cookiebox CLMM, or CookieSwap BAMM) is auto-detected from the pool. Concentrated-liquidity venues (CLMM/BAMM) open a full-range position by default. Simulates before sending. Requires COOKIE_PRIVATE_KEY.

NameTypeReqDescription
amountAUI amount of token A
amountBUI amount of token B
poolPkstringyespool address (see get_pools)

No output schema declared.

No examples provided.

bridge ~449

Bridge COOK 1:1 between Cookie Chain and Solana mainnet via Hyperlane. `direction` is 'cookie-to-solana' (locks native COOK on Cookie, credits SPL COOK to the recipient's Solana account) or 'solana-to-cookie' (locks SPL COOK on Solana, credits native COOK on Cookie). `to` is the recipient on the DESTINATION chain (base58; both chains share your keypair, so it defaults to your own wallet). `amount` is a UI amount of COOK. Signs and sends one transaction on the source chain; a relayer delivers on the far side in a few minutes. Simulates first, and preflights the far side before signing: the destination's collateral must cover the release. On cookie-to-solana, if the recipient has no SPL COOK account yet, `bridge` creates it from this wallet first (one extra Solana tx, ~0.0021 SOL of account rent) — the warp route can do this itself but pays from a PDA that runs dry, and when it is dry the delivery fails inside the relayer and the transfer hangs with no error anywhere. Requires COOKIE_PRIVATE_KEY plus COOKIE_WARP_PROGRAM_ID / SOLANA_WARP_PROGRAM_ID. Returns the source tx signature and the Hyperlane message id (use bridge_status to confirm delivery); pass waitForDelivery to poll up to ~3 min inline. A wait that times out is not a failure — the transfer is still in flight; re-check with bridge_status.

NameTypeReqDescription
amountyesUI amount of COOK to bridge, e.g. 5
createRecipientAccountbooleancookie-to-solana: create the recipient's SPL COOK account from this wallet if they have none (default true). False relies on the warp route's own ATA payer instead, and is refused when that payer can…
directionstringyesbridge direction
tostringrecipient on the destination chain (base58); omit to bridge to your own wallet
waitForDeliverybooleanpoll the destination chain for delivery (up to ~3 min) before returning

No output schema declared.

No examples provided.

bridge_status ~100

Check whether a bridged COOK transfer has been delivered on the destination chain, by its Hyperlane message id (returned by `bridge`). `direction` must match the original transfer. Returns delivered true/false and the destination-chain delivery tx once relayed. No wallet needed.

NameTypeReqDescription
directionstringyesthe direction of the original transfer
messageIdstringyesthe Hyperlane message id from bridge (0x… 64 hex chars)

No output schema declared.

No examples provided.

buy_domain ~177

Buy a .cook name that is listed for sale, paying the seller and the marketplace fee in one transaction; the name leaves escrow and belongs to this wallet, permanently. ⚠️ EXPENSIVE and FINAL: listings run into the millions of COOK. `maxPriceCook` is REQUIRED as an explicit spend confirmation — the instruction carries no price argument, so this cap is the only guard. Called without it, this quotes the live asking price and spends nothing. Use get_domain_listings to find names in budget. Simulates before sending. Requires COOKIE_PRIVATE_KEY.

NameTypeReqDescription
maxPriceCookthe most COOK you accept paying; omit to be told the asking price without spending anything
namestringyesthe .cook name, with or without the suffix (e.g. "bot" or "bot.cook")

No output schema declared.

No examples provided.

buy_nft ~95

Buy a listed NFT at its current listing price: funds escrow, bids, and settles the sale in one transaction; the NFT lands in your wallet. Optionally pass `maxPrice` (COOK) as a guard. Simulates before sending. Requires COOKIE_PRIVATE_KEY.

NameTypeReqDescription
maxPricerefuse if the listing price (COOK) is above this
mintstringyesthe listed NFT mint to buy

No output schema declared.

No examples provided.

cancel_domain_listing ~105

Take a .cook name this wallet listed back off the CookOven domain marketplace. The escrow returns it to this wallet and the listing rent is refunded, so transfer_domain, update_domain and set_primary_domain work on it again. Only the wallet that created the listing can cancel it. Simulates before sending. Requires COOKIE_PRIVATE_KEY.

NameTypeReqDescription
namestringyesthe .cook name, with or without the suffix (e.g. "bot" or "bot.cook")

No output schema declared.

No examples provided.

cancel_limit_order ~162

Cancel one of your open limit / stop orders and get the remaining input back. Requires COOKIE_PRIVATE_KEY; only the maker can cancel. The refund lands in the order's pinned input account (recreated first if it was closed); a native-COOK order is refunded as COOK, a wCOOK-funded one is unwrapped in the same tx unless `unwrapSol: false`. Also how an EXPIRED order's input is recovered. The built transaction is decoded and checked (your order, refund to you, known programs only) and simulated before signing.

NameTypeReqDescription
orderstringyesthe `order` address from get_limit_orders
unwrapSolbooleandefault true. false = leave a wCOOK refund wrapped in the token account

No output schema declared.

No examples provided.

cancel_listing ~38

Cancel your active Baked Bazaar listing for an NFT and reclaim it. Requires COOKIE_PRIVATE_KEY.

NameTypeReqDescription
mintstringyesthe listed NFT mint

No output schema declared.

No examples provided.

cancel_offer ~45

Cancel your active offer on an NFT and withdraw the escrowed COOK back to your wallet. Requires COOKIE_PRIVATE_KEY.

NameTypeReqDescription
mintstringyesthe NFT mint you bid on

No output schema declared.

No examples provided.

chain_health ~55

Live Cookie Chain snapshot: slot heights per commitment, finalization lag (the key health signal — a stall causes BlockhashNotFound), epoch progress, validator/node counts, version, block-production rate, and RPC latency. No arguments.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

claim_creator_fees ~107

Sweep the creator's share of trading fees (35% of the 1% trade fee) from a launchpad token you created, into your wallet as native COOK. Only the pool's creator can claim; fails early with the pending amount when nothing has accrued yet. Requires COOKIE_PRIVATE_KEY.

NameTypeReqDescription
refstringyesthe token mint or the launchpad pool address (either works)
unwrapbooleanunwrap the swept fees to native COOK (default true)

No output schema declared.

No examples provided.

claim_fees ~81

Claim the swap fees your liquidity position has accrued in a pool (venue auto-detected: Cookiebox DAMM v2, Cookiebox CLMM, or CookieSwap BAMM). Sweeps fees to your wallet without removing the position. Simulates before sending. Requires COOKIE_PRIVATE_KEY.

NameTypeReqDescription
poolPkstringyespool address you hold a position in

No output schema declared.

No examples provided.

claim_launchpad ~195

Settle a launchpad position. By default the right claim is picked from the pool's state: graduated → your real SPL tokens; expired (or `ended`) in fair mode → a pro-rata COOK refund; expired in jackpot/survivor mode → your Merkle payout (the proof is fetched for you). A fair refund works even on an `ended` pool that has not been settled on-chain yet — the claim settles it too; the other modes have to wait for the expiry transition. Creators can pass kind=creator_vest to claim their vested allocation after graduation. Dead-mode expiries have no holder payout. Simulates before sending, so a claim that cannot land costs nothing. Requires COOKIE_PRIVATE_KEY.

NameTypeReqDescription
kindstringwhich claim to make (default auto — chosen from the pool state)
refstringyesthe token mint or the launchpad pool address (either works)

No output schema declared.

No examples provided.

create_pool ~291

Create a new pool for a token pair and seed it with an initial deposit (the deposit ratio sets the starting price). `dex` selects the venue: cookiebox-damm (default), cookiebox-clmm (concentrated liquidity, full-range seed, default 0.25% fee tier), or cookieswap-bamm (concentrated liquidity; fee tier/tick spacing chosen by `ammConfig`, full-range seed). Simulates before sending; caps the COOK side. Requires COOKIE_PRIVATE_KEY.

NameTypeReqDescription
ammConfigstringBAMM only: AmmConfig address (selects fee tier/tick spacing); omit for the default
amountAyesUI amount of token A to seed
amountByesUI amount of token B to seed
configstringPoolConfig address (DAMM only); omit for the default
dexstringvenue (default cookiebox-damm)
feeTiernumberCLMM fee tier in bps: 25 (default), 30, 100, 200, or 400
initialPriceCLMM/BAMM only: starting price as tokenB per tokenA; omit to derive from the amounts
tokenAMintstringyesfirst token mint
tokenBMintstringyessecond token mint (e.g. the COOK mint)

No output schema declared.

No examples provided.

deploy_token ~864

Launch a new token on the MomoSwap launchpad (bonding curve priced in COOK, graduates to the open market at the raise target). Mint + freeze authority are renounced and the metadata is immutable, so a launch is FINAL — nothing about the token can be changed afterwards. Costs the launchpad's creation fee, read live from its config (0 on the current deployment, so a launch usually costs only account rent) plus any devBuyCook. A LOGO IS REQUIRED: pass `imagePath` (preferred for a file on this machine — the server reads and types it itself, so never base64 a local file yourself), `imageBase64` with `imageMimeType` (for an image you generated), or `imageUrl` (downloaded and re-pinned, so the logo outlives its original host). The bytes are pinned to IPFS either way. Launching without one is refused unless you set `noLogo: true`, because the metadata is immutable and a logo can never be added later. The mint address is chosen by the launchpad (the program requires one ending in `momo`). Set `devBuyCook` (or `devBuyPctOfTotalSupply` for a share of the supply) to make your own buy the atomic first trade. Requires COOKIE_PRIVATE_KEY.

NameTypeReqDescription
antiSnipebooleancap each wallet during the opening window (default true)
descriptionstringshort description for the token page
devBuyCookoptional COOK amount to buy atomically in the launch transaction
devBuyPctOfTotalSupplynumberdev buy sized as a percent of the TOTAL supply (e.g. 1 for 1%), priced off the live launch curve. Use this when the user asks for a share rather than a COOK amount — note the launchpad UI quotes a de…
durationSecsintegerhow long the launch stays open, 60s–7d (default 86400)
expiryModestringwhat happens if it never graduates: fair = pro-rata refund (default), dead = unraised funds swept to treasury, jackpot = Merkle payout to the top 10%, survivor = top 3
imageBase64stringlogo bytes as base64 (preferred; a data: prefix is fine) — pinned to IPFS
imageMimeTypestringMIME type of imageBase64, e.g. "image/png" (required with imageBase64)
imagePathstringpath to a logo file on this machine (PNG/JPEG/GIF/WebP, max 5 MB, `~` ok) — preferred over imageBase64 for a local file: the server reads the bytes and detects the type, so the image never has to be…
imageUrlstringan already-hosted https image URL — its bytes are downloaded and re-pinned to IPFS, so the logo survives the original host going away
loginSignatureobjectexternal-signer mode only: the wallet's ed25519 signature (base58) over the launchpad login `message` a previous deploy_token call returned as needs_signature { kind: 'message' }. Pass both back verb…
maxBuyPerWalletCooklifetime cap per wallet in COOK (default none)
minBuyCookminimum buy per trade in COOK (default none)
namestringyestoken name, max 32 chars
noLogobooleanlaunch deliberately without a logo. Only set this if the user asked for it — the token metadata is immutable, so no logo can ever be added and most UIs show a blank image
symbolstringyesticker, max 10 chars (upper-cased)
telegramstringTelegram handle or URL
twitterstringX/Twitter handle or URL
websitestringproject website URL

No output schema declared.

No examples provided.

get_balance ~183

Native COOK + SPL/Token-2022 token balances for a wallet, with USD values. Defaults to the configured wallet (COOKIE_PRIVATE_KEY); pass `wallet` to inspect any address or .cook name. In read-only mode (no key), `wallet` is required. Pass `chain: 'solana'` for the far side of the Hyperlane bridge instead: the wallet's SPL COOK on Solana mainnet (what a `solana-to-cookie` bridge spends) plus its SOL, which pays that transfer's fee and interchain gas. That view is COOK + SOL only — it does not enumerate other Solana tokens.

NameTypeReqDescription
chainstringwhich chain to read; defaults to cookie (Cookie Chain)
walletstringwallet address (base58) or .cook name; omit to use the configured wallet

No output schema declared.

No examples provided.

get_domain_listings ~254

Every .cook name listed for sale on the CookOven domain marketplace, read straight from the program — no indexer, no key needed. Filter by `name` (substring match), `seller`, `maxPriceCook` or `maxLength` (short names are the scarce ones), and sort by 'price' (cheapest first), 'length' or 'recent' (default). Also returns the live marketplace fee, which the SELLER pays out of the sale price, and the floor price of the matched set. Use resolve_domain for one specific name, or register_domain for a name nobody owns yet — the market only holds names that are already registered.

NameTypeReqDescription
limitintegermax listings to return (default 20)
maxLengthintegeronly names with at most this many characters
maxPriceCookonly listings at or below this price in COOK
namestringonly listings whose name contains this text (the .cook suffix is ignored)
sellerstringonly listings from this wallet address or .cook name
sortstringprice = cheapest first, length = shortest first, recent = newest first (default)

No output schema declared.

No examples provided.

get_launchpad_pools ~164

Browse MomoSwap launchpad pools: name/symbol/mint, curve price in COOK, amount raised vs the graduation target (with progress %), participants, settlement mode and the launch window. Defaults to `live` launches (currently tradeable), sorted closest-to-graduation first. `ended` means the launch window closed but nobody has settled the pool on-chain yet, so it is neither tradeable nor claimable — filter for it explicitly, or use `all`, since a `live` filter may or may not include such pools depending on the launchpad's deployed version. Read-only — no key needed.

NameTypeReqDescription
limitintegermax pools to return (default 20)
statusstringlifecycle filter (default live)

No output schema declared.

No examples provided.

get_launchpad_positions ~192

Every MomoSwap launchpad position a wallet holds, across all launches — the view get_balance CANNOT give, because pre-graduation holdings are program-tracked curve shares rather than SPL tokens. Per position: shares, COOK invested vs withdrawn, what a live curve would pay to sell now, and the `action` if something is outstanding (unclaimed tokens after graduation, an unclaimed Fair-mode refund, a settlement payout). Also lists launches this wallet created that have unclaimed creator fees or vesting. Use this to answer 'what do I hold / what can I claim'. Reads only: pass `owner` for any wallet, or omit it to use COOKIE_PRIVATE_KEY's.

NameTypeReqDescription
includeClosedbooleanalso list fully exited / already-settled positions (default false)
ownerstringwallet address or .cook name to inspect (defaults to your own wallet)

No output schema declared.

No examples provided.

get_launchpad_token ~176

Full state of one launchpad launch: curve price, raise vs graduation target, settlement mode, fee split, and — when COOKIE_PRIVATE_KEY is set — this wallet's curve position (shares, invested COOK, current sell value, what it already claimed) plus pending creator fees if it created the launch. Pass `quoteCook` to preview how many tokens a buy of that size would get. A `status` of `ended` means trading closed but the pool is not settled on-chain yet — nothing can be traded, and only a Fair-mode refund can be claimed (the claim settles the pool itself). Read-only.

NameTypeReqDescription
quoteCookoptional COOK amount to quote a buy for, e.g. 10
refstringyesthe token mint or the launchpad pool address (either works)

No output schema declared.

No examples provided.

get_limit_orders ~168

Open limit / stop orders resting in the Cookiebox limit-order escrow for a wallet (yours by default, or `owner` = any address or .cook name). Read straight from the chain via the Cookiebox aggregator — no key needed. Each order shows the remaining input, the gross output the program enforces (`minReceive`), what the wallet actually receives after the maker fee (`netAfterFee`), the price (a stop's TRIGGER), fill progress, expiry and status (`open` / `filling` / `expired` — an expired order still holds its input until it is cancelled). `fees` is the live on-chain schedule in bps (null when unavailable).

NameTypeReqDescription
ownerstringwallet address or .cook name; defaults to the configured wallet

No output schema declared.

No examples provided.

get_nft ~62

Full detail for one NFT mint: metadata (name, image, attributes, collection), whether it's listed and at what price, the best current offer, and the collection floor. No wallet needed.

NameTypeReqDescription
mintstringyesthe NFT mint address (base58)

No output schema declared.

No examples provided.

get_nft_listings ~125

Active NFT listings on Baked Bazaar with prices in COOK, seller, and collection. Filter by `collection` (symbol or collection key) or `seller`, and sort by price (cheapest first) or recency. No wallet needed. Use to find NFTs to buy.

NameTypeReqDescription
collectionstringfilter by collection symbol (e.g. GORI) or collection key
limitintegermax listings (default 20)
sellerstringfilter by seller wallet
sortstringsort key (default recent)

No output schema declared.

No examples provided.

get_nft_market_stats ~78

Marketplace-wide Baked Bazaar stats: active listing count, floor price, total and 24h volume, and sales counts (COOK). Optionally pass `collection` for a collection's supply and holder count. No wallet needed.

NameTypeReqDescription
collectionstringcollection symbol (e.g. GORI) for collection-level stats

No output schema declared.

No examples provided.

get_nft_offers ~82

Offers a wallet has made and offers it has received (bids on NFTs it holds), with prices in COOK. Defaults to the configured wallet; pass `wallet` to inspect any address. Use before accept_offer / cancel_offer.

NameTypeReqDescription
walletstringwallet address (base58) or .cook name; omit to use the configured wallet

No output schema declared.

No examples provided.

get_owned_domains ~87

Every .cook name a wallet owns, plus which one is its primary (the name apps show instead of the raw address). Defaults to the configured wallet; pass `wallet` to inspect any address or .cook name. Reads the registry on-chain — no indexer, no key needed.

NameTypeReqDescription
walletstringwallet address or .cook name; omit to use the configured wallet

No output schema declared.

No examples provided.

get_pools ~90

Liquidity pools across every Cookie Chain DEX (Cookiebox DAMM/CLMM, CookieSwap BAMM/xYBN) with TVL (USD) and 24h volume, sorted by TVL or volume. Use to find the most liquid markets.

NameTypeReqDescription
limitintegermax pools to return (default 20)
sortstringsort key (default tvl)

No output schema declared.

No examples provided.

get_quote ~388

Quote a swap across all Cookie Chain DEX liquidity via one of two aggregators: `cookiebox` (Cookiebox Swap API) or `cookiescan` (Candy Shop / Cookiescan Swap API). Quote both to compare and pick the better output. Returns expected output, output after any aggregator fee, minimum out after slippage, price impact, and the route. Quote-only — no wallet needed. `amount` is a UI amount of the input token. Pass `chain: 'solana'` to price the bridged SPL COOK (mint 36ZrtQoab5MhhySaP1YSTwUahSk6GRVUTtZ6cuVfm9e1) against SOLANA MAINNET liquidity via Jupiter. Scoped to COOK: one of inputMint/outputMint MUST be that mint — unrelated Solana pairs are refused. Needs no RPC and no wallet. On that chain So1111..112 is wSOL, NOT COOK.

NameTypeReqDescription
aggregatorstringwhich swap aggregator to quote: cookiebox (default, no fee) or cookiescan (Candy Shop, ~20 bps fee). Cookie Chain only — ignored/rejected when chain is "solana", which always uses Jupiter
amountyesUI amount of the input token, e.g. 10 for 10 COOK
chainstringwhich chain to quote on; defaults to cookie (Cookie Chain). "solana" quotes Solana mainnet via Jupiter and requires a COOK leg — note So1111..112 means COOK on Cookie Chain but wSOL on Solana
inputMintstringyesinput token mint (use the COOK/native mint for COOK)
outputMintstringyesoutput token mint
slippageBpsintegerslippage tolerance in bps (default 500)

No output schema declared.

No examples provided.

get_token_info ~67

Metadata + market data for a token mint: name/symbol/decimals, price (USD and COOK), 24h change, market cap, liquidity, 24h volume, holder count, and supply.

NameTypeReqDescription
mintstringyesthe token mint address (base58)

No output schema declared.

No examples provided.

get_wallet ~130

Which wallet this server acts for: the public key derived from COOKIE_PRIVATE_KEY (signer 'local'), or the wallet supplied by the request / COOKIE_WALLET_ADDRESS (signer 'external', where money tools return needs_signature instead of signing), whether it is read-only, and the Cookie Chain RPC it is pointed at. No arguments, no RPC call — so it answers even when the chain is unreachable. Use it before any money-moving tool to confirm the identity, and to tell apart the key a running server booted with from a key that has since changed on disk. Never returns the secret.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_wallet_nfts ~74

NFTs held by a wallet, each with any active Baked Bazaar listing. Defaults to the configured wallet (COOKIE_PRIVATE_KEY); pass `wallet` to inspect any address (required in read-only mode).

NameTypeReqDescription
walletstringwallet address (base58) or .cook name; omit to use the configured wallet

No output schema declared.

No examples provided.

launchpad_buy ~186

Buy a launchpad token on its bonding curve with COOK (the launchpad wraps the COOK and opens any missing accounts). ⚠️ You receive program-tracked CURVE SHARES, not SPL tokens: they will not show in get_balance and trade cannot swap them — exit with launchpad_sell, or claim the real token with claim_launchpad after the pool graduates. There is no slippage parameter (the program has no min-out), so the fill can move if others trade first. A 1% trade fee applies. Simulates before sending. Requires COOKIE_PRIVATE_KEY.

NameTypeReqDescription
amountCookyeshow much COOK to spend, e.g. 10
refstringyesthe token mint or the launchpad pool address (either works)
referrerstringoptional referrer wallet that earns the referral fee share (not your own)

No output schema declared.

No examples provided.

launchpad_sell ~136

Sell curve shares back to a launchpad bonding curve for COOK (unwrapped to native COOK by default). Only works while the pool is live and only for shares bought via launchpad_buy — a graduated token's SPL balance is sold with `trade` instead. A 1% trade fee applies. Simulates before sending. Requires COOKIE_PRIVATE_KEY.

NameTypeReqDescription
refstringyesthe token mint or the launchpad pool address (either works)
sharesyeshow many tokens (curve shares) to sell, as a UI amount
unwrapbooleanunwrap the proceeds to native COOK (default true)

No output schema declared.

No examples provided.

list_domain ~207

Put a .cook name this wallet owns up for sale on the CookOven domain marketplace at `priceCook`. ⚠️ The name moves into the marketplace ESCROW in the same instruction: until the listing is bought or cancelled, the registry reports the escrow as its owner, so this wallet cannot transfer the name, update its pointers or set it as primary, and the name no longer resolves to a payable address. cancel_domain_listing reverses it at any time. There is no re-price instruction — cancel and list again. Costs only the listing account's rent (~0.0018 COOK, refunded when the listing ends); the marketplace fee is taken from the sale price, not from you now. Simulates before sending. Requires COOKIE_PRIVATE_KEY.

NameTypeReqDescription
namestringyesthe .cook name, with or without the suffix (e.g. "bot" or "bot.cook")
priceCookyesasking price in COOK, e.g. 25000

No output schema declared.

No examples provided.

list_nft ~96

List an NFT you own for sale on Baked Bazaar at `price` COOK (creates the auction-house sell order). Simulates before sending; signs locally. Requires COOKIE_PRIVATE_KEY. The 1% marketplace fee and creator royalties are taken from the sale proceeds when it sells.

NameTypeReqDescription
mintstringyesthe NFT mint you own
priceyessale price in COOK, e.g. 12.5

No output schema declared.

No examples provided.

lock_liquidity ~124

⚠️ IRREVERSIBLE. Permanently locks your liquidity in a Cookiebox position; the venue is auto-detected from the pool. DAMM v2 locks the position's unlocked liquidity; CLMM locks the WHOLE position (the program offers no partial or vesting lock). Locked liquidity can never be withdrawn and the position can never be closed, but fees stay claimable via claim_fees. Not supported on CookieSwap BAMM. Requires COOKIE_PRIVATE_KEY.

NameTypeReqDescription
poolPkstringyesCookiebox DAMM v2 or CLMM pool address

No output schema declared.

No examples provided.

make_offer ~78

Place a public offer (bid) on an NFT at `price` COOK. The COOK is escrowed with the auction house until the offer is accepted or you cancel it. Simulates before sending. Requires COOKIE_PRIVATE_KEY.

NameTypeReqDescription
mintstringyesthe NFT mint to bid on
priceyesoffer price in COOK

No output schema declared.

No examples provided.

place_limit_order ~649

Rest an order in the Cookiebox limit-order escrow: the input is locked in a program-owned reserve and a keeper fills it through the same router `trade` uses once the executable rate reaches the price, paying the pinned output account (partial fills possible). Requires COOKIE_PRIVATE_KEY. `kind: 'limit'` (default, take-profit) fills at the price OR BETTER; the price must sit ABOVE the current rate. `kind: 'stop'` is a stop-loss, stop-MARKET: `price` is the TRIGGER, which must sit BELOW the current rate; once the rate falls to it the keeper sells at market and passes the proceeds through — a hidden on-chain floor 50% below the trigger (override with `floorPrice`) only caps what a rogue keeper could pay. Fee: the maker receives the price minus the on-chain maker fee (10 bps at launch, read live); no placement fee. Before signing, the built transaction is decoded and checked against the request (maker, amounts, kind, pinned accounts, programs) and simulated. Refuses an order that would fill or trigger immediately (use `trade` for that) unless `skipMarketCheck` is set. Native COOK input is wrapped inside the same transaction; cancel / expiry refunds it as COOK. Returns the `order` address for get_limit_orders / cancel_limit_order.

NameTypeReqDescription
amountyesUI amount of the input token to sell, e.g. 10 for 10 COOK
expiresInSecondsintegerlifetime in seconds (default 604800 = 1 week, max one year); 0 = good-til-cancelled. An expired order is NOT auto-refunded until cancelled or reaped
floorPricestop only: override the on-chain safety floor (default 50% below the trigger). Must be at or below the trigger. Not what you receive — a cap on a compromised keeper
inputMintstringyestoken to sell (COOK/native mint for COOK)
kindstringlimit (default: take-profit, fills at price or better) or stop (stop-market sell once the rate falls to price)
outputMintstringyestoken to receive
priceyesoutput per input in human units, the limit for a take-profit or the trigger for a stop. Pass a decimal STRING (e.g. "0.000012") for tiny prices — a number that would print in exponent form is refused
skipMarketCheckbooleandefault false. Place even if the order would fill/trigger at once against the current rate, or no route exists yet
unwrapSolbooleandefault true. When the output is COOK: a fill pays native COOK to the wallet. false = receive wCOOK in the token account
wrapSolbooleandefault true. When the input is COOK: wrap the lamport shortfall into wCOOK in the same tx and refund native COOK on cancel/expiry. false = pay from an existing wCOOK balance and be refunded wCOOK

No output schema declared.

No examples provided.

register_domain ~208

Claim an unregistered .cook name on the CookOven name service. ⚠️ EXPENSIVE and PERMANENT: the price is set in USD by the registry and paid in COOK — thousands of COOK at the current config — and registration is non-refundable with no expiry. `maxPriceCook` is REQUIRED as an explicit spend confirmation: call resolve_domain (or this tool without it) to learn the live price first, then pass that number. Refuses before signing if the name is taken or the price exceeds `maxPriceCook`. Simulates before sending. Requires COOKIE_PRIVATE_KEY.

NameTypeReqDescription
maxPriceCookthe most COOK you accept paying; omit to be told the live price without spending anything
namestringyesthe .cook name, with or without the suffix (e.g. "bot" or "bot.cook")
setPrimarybooleanalso make it this wallet's primary name, in the same transaction (default false)

No output schema declared.

No examples provided.

remove_liquidity ~93

Remove liquidity from your position in a pool (venue auto-detected). `bps` is the fraction to remove for DAMM v2 and CLMM (default 10000 = all, which also closes a CLMM position); BAMM removes the whole position. Requires COOKIE_PRIVATE_KEY.

NameTypeReqDescription
bpsintegerbasis points to remove (default all)
poolPkstringyespool address

No output schema declared.

No examples provided.

resolve_domain ~134

Look up a .cook name on the CookOven name service: who owns it, when it was registered, its resolver/metadata pointers, and whether it is the owner's primary name. If the name is NOT registered, returns availability plus the live registration price (short 1–3 character names cost more than 4+ character ones). Use this before register_domain — it is free and touches no key. For the reverse direction (wallet → names) use get_owned_domains.

NameTypeReqDescription
namestringyesthe .cook name, with or without the suffix (e.g. "bot" or "bot.cook")

No output schema declared.

No examples provided.

search_nfts ~147

Resolve an NFT or collection name to a mint by searching active Baked Bazaar listings by name, symbol, or collection — partial and case-insensitive — or by mint prefix. Returns matching listed NFTs (cheapest first) with mint, collection, price in COOK, and seller. Use this FIRST whenever the user names an NFT or collection to buy but you don't have its mint, then pass the chosen mint to get_nft / buy_nft. Only currently-listed NFTs are searchable. No wallet needed.

NameTypeReqDescription
limitintegermax results (default 20)
querystringyesNFT name, collection symbol, or mint prefix, e.g. "cookhouse"

No output schema declared.

No examples provided.

search_tokens ~153

Resolve a token name or ticker to its mint by searching the Cookiescan registry (every Cookie Chain token) by symbol/name — partial and case-insensitive — or by mint prefix. Returns ranked candidates (most liquid first) with mint, price, liquidity, 24h volume, and holders. Use this FIRST whenever the user names a token but you don't have its mint, then pass the chosen mint to get_token_info / get_quote / trade. Multiple tokens can share a symbol — compare liquidity and confirm the mint before trading. No wallet needed.

NameTypeReqDescription
limitintegermax results (default 20)
querystringyestoken name, ticker, or mint prefix, e.g. "cookhouse"

No output schema declared.

No examples provided.

set_primary_domain ~115

Point this wallet's primary record at one of the .cook names it owns, so apps label it by that name instead of its address. Pass `clear: true` instead of `name` to unset it (the wallet keeps the name either way). Simulates before sending. Requires COOKIE_PRIVATE_KEY.

NameTypeReqDescription
clearbooleanunset the current primary name instead of setting one
namestringthe .cook name, with or without the suffix (e.g. "bot" or "bot.cook")

No output schema declared.

No examples provided.

stake ~101

Stake COOK into the bCOOK liquid-staking pool (SPL Stake Pool): deposits COOK and mints bCOOK to your wallet (≈ amount × 0.995 / rate, after the 0.5% deposit fee). bCOOK keeps earning as the rate rises and stays liquid/transferable. Simulates first. Requires COOKIE_PRIVATE_KEY.

NameTypeReqDescription
amountyesUI amount of COOK to stake, e.g. 10

No output schema declared.

No examples provided.

stake_info ~69

Live bCOOK (liquid-staked COOK) stats: the COOK-per-bCOOK exchange rate (only ever rises), TVL, bCOOK supply, deposit/withdraw fees, and an estimated APY. Use before `stake`/`unstake`. No key needed.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

submit_signed_tx ~260

Second half of an externally signed action. When the server runs with an external signer (no private key), every money-moving tool stops at the signing step and returns `{ status: 'needs_signature', transactionBase64, submit, blockhash, lastValidBlockHeight, what, step }`. Sign `transactionBase64` with the user's wallet WITHOUT modifying it (it is already verified, simulated and co-signed), then call this with the signed bytes and the same `submit`, `blockhash`, `lastValidBlockHeight` and `what` fields. It sends on the named route, confirms, and returns the signature. If the original result said `step: 'intermediate'`, call the original tool again afterwards to continue. Refuses bytes that still lack a signature. Never builds or alters transactions.

NameTypeReqDescription
blockhashstring`blockhash` from needs_signature
lastValidBlockHeightinteger`lastValidBlockHeight` from needs_signature
signedTransactionBase64stringyesthe fully signed transaction, base64
submitthe `submit` object from needs_signature (default: the Cookie Chain RPC)
whatstring`what` from needs_signature (names the action)

No output schema declared.

No examples provided.

trade ~542

Execute a swap via the chosen aggregator (`cookiebox` by default, or `cookiescan` = Candy Shop): the aggregator quotes and builds the tx; we simulate, sign locally with the configured wallet, submit, and confirm. Non-custodial. Requires COOKIE_PRIVATE_KEY. Use get_quote first to compare aggregators. `amount` is a UI amount of the input token. Returns the tx signature + explorer link. Pass `chain: 'solana'` to buy or sell the bridged SPL COOK on SOLANA MAINNET via Jupiter, paying fees in SOL. Scoped to COOK: one of inputMint/outputMint MUST be 36ZrtQoab5MhhySaP1YSTwUahSk6GRVUTtZ6cuVfm9e1 — unrelated Solana pairs are refused. The SAME COOKIE_PRIVATE_KEY signs on both chains, and that path requires SOLANA_RPC_URL to point at a dedicated RPC (the public endpoint is refused). On Solana So1111..112 is wSOL, NOT COOK. COOK and wCOOK (wrapped, SPL) share the native mint: pass `wrapSol: false` to pay from a wCOOK balance, `unwrapSol: false` to receive wCOOK (cookiebox aggregator only).

NameTypeReqDescription
aggregatorstringwhich swap aggregator to execute through: cookiebox (default, no fee) or cookiescan (Candy Shop, ~20 bps fee). Cookie Chain only — rejected when chain is "solana", which always uses Jupiter
amountyesUI amount of the input token, e.g. 10 for 10 COOK
chainstringwhich chain to swap on; defaults to cookie (Cookie Chain). "solana" buys/sells COOK on Solana mainnet via Jupiter (a COOK leg is required) and REQUIRES SOLANA_RPC_URL to be set to a dedicated RPC
inputMintstringyesinput token mint (COOK/native mint for COOK)
outputMintstringyesoutput token mint
slippageBpsintegerslippage tolerance in bps (default 500)
unwrapSolbooleandefault true. false = receive wCOOK: leave a native-COOK output in the wallet's wrapped-COOK token account instead of unwrapping it. Cookiebox aggregator only
wrapSolbooleandefault true. false = the input is wCOOK: pay from the wallet's wrapped-COOK token account instead of wrapping native COOK. Cookiebox aggregator only

No output schema declared.

No examples provided.

transfer ~186

Send native COOK (omit `mint` or use the COOK mint) or an SPL/Token-2022 token to another wallet, creating the recipient's token account if needed. An optional `memo` is written to the transaction through the SPL Memo program, signed by this wallet — pass it when paying an invoice or payment request whose app matches transfers by memo. Simulates before sending. Requires COOKIE_PRIVATE_KEY.

NameTypeReqDescription
amountyesUI amount to send
memostringtext recorded on-chain with the transfer via the SPL Memo program (UTF-8, up to 566 bytes), e.g. an invoice reference; omit for a plain transfer
mintstringtoken mint to send; omit for native COOK
tostringyesrecipient wallet address (base58) or .cook name (e.g. "bot.cook")

No output schema declared.

No examples provided.

Common questions

What is the io.github.cookiechain/cookie-mcp server?

io.github.cookiechain/cookie-mcp is listed in the public MCP registry as io.github.cookiechain/cookie-mcp. Cookie Chain tools for AI agents: swap, launch, liquidity, staking, NFTs, and a Solana bridge. This page covers its npm package (cookie-mcp).

Is the io.github.cookiechain/cookie-mcp server safe to use?

io.github.cookiechain/cookie-mcp scores 77 out of 100 on VerifyMCP. We recorded 5 known advisories against it as of 20 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.cookiechain/cookie-mcp server expose?

io.github.cookiechain/cookie-mcp exposes 53 tools: submit_signed_tx, chain_health, get_pools, get_token_info, search_tokens, and 48 more. Their descriptions and schemas cost roughly 9,135 tokens of context every time the server is loaded.

Is the io.github.cookiechain/cookie-mcp server still maintained?

io.github.cookiechain/cookie-mcp is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the io.github.cookiechain/cookie-mcp server under?

io.github.cookiechain/cookie-mcp declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.