内容
# cookie-mcp
[](https://www.npmjs.com/package/cookie-mcp)
[](https://www.npmjs.com/package/cookie-mcp)
[](https://registry.modelcontextprotocol.io/v0/servers?search=cookie-mcp)
[](https://github.com/cookiechain/cookie-mcp/actions/workflows/ci.yml)
[](https://nodejs.org)
[](./LICENSE)
一个 [Model Context Protocol](https://modelcontextprotocol.io) (MCP) 服务器,为任何 AI 代理提供 [Cookie Chain](https://www.cookiechain.wtf) 区块链上的工具 — 读取市场,交换,启动代币,管理流动性,质押,交易 NFT,并桥接到 Solana。
它在 **本地通过 stdio 运行** 并 **使用您机器上的密钥签名**,因此设计上是非托管的。它是整个 Cookie Chain 生态系统的社区项目。
<p align="center">
<img src="https://raw.githubusercontent.com/cookiechain/cookie-mcp/main/docs/demo.gif" alt="AI 代理使用 cookie-mcp:检查链健康,桥接 COOK 从 Solana,购买 COOKHOUSE,质押 bCOOK,并桥接回 Solana" width="820">
</p>
## 目录
- [功能介绍](#what-it-can-do)
- [安装](#install) — [Claude Code](#claude-code) · [Claude Desktop](#claude-desktop) · [Cursor](#cursor)
- [启用交易(添加密钥)](#enable-trading-add-a-key)
- [试用](#try-it)
- [配置](#configuration)
- [工具](#tools)
- [安全性](#safety)
- [开发](#development)
## 功能介绍
- **读取市场** — 链健康,池,代币信息,代币搜索,交换报价和钱包余额。不需要密钥。
- **交换** 任意 Cookie Chain 代币对,通过 [Candy Shop](https://swap.cookiescan.io) 聚合器,它跨所有 Cookie Chain DEX 流动性以获得最佳填充。
- **转移** COOK 或任何 SPL / Token-2022 代币。
- **启动代币** — _即将推出_。启动板支持正在迁移到 MomoSwap;`deploy_token` 和 `claim_creator_fees` 已注册但目前返回“即将推出”的通知。
- **管理流动性** — 创建池,添加/删除流动性,领取费用,并永久锁定 Cookiebox DAMM v2,Cookiebox CLMM 和 CookieSwap SAMM(自动检测场地)的位置。
- **流动性质押** COOK 为 bCOOK 并立即赎回。
- **交易 NFT** 在 [Baked Bazaar](https://bakedbazaar.art) — 搜索,浏览,购买,列表和制作/接受报价(Cookie Chain 的 Metaplex 拍卖场 marketplace)。
- **桥接** COOK 在 Cookie Chain 和 Solana 主网之间通过 [Hyperlane](https://hyperlane.cookiescan.io) 进行 1:1 桥接。
默认安全:只读直到您添加密钥,每个交易的硬性支出上限,以及每个资金转移操作在发送前都会模拟。
## 安装
需要 **Node ≥ 22**。无需安装或构建 — `npx` 在第一次运行时获取已发布的包。请选择下面的客户端。它们都使用相同的服务器;唯一的区别是配置文件的位置。
### Claude Code
最快捷的方式 — 一个命令,在 **每个** 项目中都可用:
```bash
claude mcp add --scope user --transport stdio cookie-mcp -- npx -y cookie-mcp
```
此命令注册服务器为只读(无密钥)。请参阅 [启用交易](#enable-trading-add-a-key) 以添加钱包。
**作用域** — `claude mcp add` 将写入三个位置之一;请选择 `--scope`:
| `--scope` | 可用项目 | 存储位置 |
| ------------------- | ------------------------ | ----------------------------- |
| `user` | 所有项目 | `~/.claude.json` |
| _(省略)_ `local` | 当前项目目录 | `~/.claude.json`(每个文件夹) |
| `project` | 任何克隆的仓库 | `.mcp.json` 在仓库根目录 |
仅当您希望将服务器 **提交到特定仓库** 时,请使用 `--scope project` — 它会写入一个 `.mcp.json` 文件,需要团队成员在第一次使用时批准。对于此类通用工具,`--scope user` 是正确的默认设置。
验证它是否已注册:
```bash
claude mcp list # 所有服务器
claude mcp get cookie-mcp # 此服务器的详细信息
# 或在 Claude Code 会话中运行 /mcp
```
### Claude Desktop
编辑配置文件(如果不存在则创建),然后重启 Claude Desktop:
- **macOS** — `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows** — `%APPDATA%\Claude\claude_desktop_config.json`
在 `mcpServers` 下添加以下 [服务器块](#server-block)。
### Cursor
编辑 `~/.cursor/mcp.json`(全局适用)或 `.cursor/mcp.json`(在项目中适用),然后添加 [服务器块](#server-block)。
### 服务器块
Claude Desktop,Cursor 和 Claude Code 的 `.mcp.json` 使用相同的结构:
```json
{
"mcpServers": {
"cookie-mcp": {
"type": "stdio",
"command": "npx",
"args": ["-y", "cookie-mcp"],
"env": {
"COOKIE_RPC_URL": "https://rpc.cookiescan.io",
"COOKIE_PRIVATE_KEY": ""
}
}
}
}
```
## 启用交易(添加密钥)
读取操作无需密钥。要让代理 **交换,转移,启动,质押,LP,购买 NFT 或桥接**,请通过 `COOKIE_PRIVATE_KEY` 提供钱包 — base58 私钥,`solana-keygen` JSON 字节数组或密钥对文件路径。
- **配置文件客户端(Desktop / Cursor / `.mcp.json`):** 在上面的 `env` 块中添加它。
- **Claude Code:** 重新运行添加命令,并使用 `--env`(注意:此数据保存到 `~/.claude.json`;避免在 shell 历史记录中留下原始密钥):
```bash
claude mcp add --scope user --transport stdio cookie-mcp \
--env COOKIE_RPC_URL=https://rpc.cookiescan.io \
--env COOKIE_PRIVATE_KEY=<your-key-or-path> \
-- npx -y cookie-mcp
```
您的密钥永远不会离开您的机器,仅用于本地签名,并在输出中被遮蔽。每个交易的支出上限(`COOKIE_MAX_TRADE_COOK`,默认为 100 COOK)限制了任何单个操作可以花费的金额。
## 试用
注册后,自然地与您的代理交互:
- _"Cookie Chain 当前的健康状况如何?"_ → `chain_health`
- _"查找 cookhouse 代币并显示其价格和流动性。"_ → `search_tokens` → `get_token_info`
- _"报价交换 10 COOK 为 bCOOK。"_ → `get_quote`
- _"交换 10 COOK 为 bCOOK。"_ → `get_quote` → `trade`(需要密钥;有上限 + 模拟)
- _"有哪些 COOKHOUSE NFT 被列出,购买价格低于 50 COOK 的最便宜的 NFT?"_ → `search_nfts` → `buy_nft`
代理将名称解析为 mint 地址,使用 `search_tokens` / `search_nfts`,然后对 mint 进行操作 — 它永远不会直接将名称转换为交易。
## 配置
| 变量 | 默认值 | 目的 |
| ----------------------- | ------------------------------------- | ------------------------------------------------------ |
| `COOKIE_RPC_URL` | `https://rpc.cookiescan.io` | Cookie Chain RPC |
| `COOKIE_PRIVATE_KEY` | — | 用于资金转移工具的钱包密钥。无密钥时为只读。 |
| `COOKIE_MAX_TRADE_COOK` | `100` | 单笔交易支出上限(COOK),`0` 禁用 |
| `COOKIE_SLIPPAGE_BPS` | `500` | 默认滑点(bps) |
| `SOLANA_RPC_URL` | `https://api.mainnet-beta.solana.com` | Solana 主网 RPC(仅桥接) |
Candy Shop API,Baked Bazaar API 和 Hyperlane warp-route 程序 ID 都附带了主网的默认设置,因此您无需设置它们 — 仅在需要针对不同部署时覆盖它们(请参见 `src/core/config.ts`)。
## 工具
**读取**(无密钥):`chain_health`,`get_pools`,`get_token_info`,`search_tokens`(将代币名称/代号解析为其 mint),`get_quote`,`get_balance`,`stake_info`(bCOOK 流动性质押率 / TVL / APY / 费用)和 NFT 读取 `get_nft_listings`,`search_nfts`(将 NFT/收藏名称解析为列出的 mint),`get_nft`,`get_wallet_nfts`,`get_nft_offers`,`get_nft_market_stats`。
**资金转移**(需要 `COOKIE_PRIVATE_KEY`):`trade`(通过 Candy Shop 交换),`transfer`(COOK 或任何代币),`stake` / `unstake`(COOK ⇄ bCOOK 流动性质押)。
**启动板**(_即将推出_):`deploy_token`(启动代币)和 `claim_creator_fees`(认领您已启动的代币所赚取的创作者交易费用)已注册但暂不可用 — 启动板支持正在迁移到 MomoSwap。
**流动性**(需要 `COOKIE_PRIVATE_KEY`):`create_pool`,`add_liquidity`,`remove_liquidity`,`claim_fees`(Cookiebox DAMM v2,Cookiebox CLMM 和 CookieSwap SAMM,自动检测场地),`lock_liquidity`(Cookiebox DAMM v2,永久)。集中流动性场地(CLMM / SAMM)默认开启全范围仓位。
**NFT 市场**(需要 `COOKIE_PRIVATE_KEY`,[Baked Bazaar](https://bakedbazaar.art)):`buy_nft`,`list_nft`,`cancel_listing`,`make_offer`,`accept_offer`,`cancel_offer`。基于 Cookie Chain 的 Metaplex 拍卖场(1% 市场费用 + 创作者版税);每个操作都在本地构建和签署。`buy_nft` / `make_offer` 尊重支出上限。
**桥接**(需要 `COOKIE_PRIVATE_KEY`):`bridge` 在 Cookie Chain 和 Solana 主网之间通过 [Hyperlane](https://hyperlane.cookiescan.io) 进行 1:1 桥接(`direction` = `cookie-to-solana` | `solana-to-cookie`)。源链签名一次性调度转账;中继器在几分钟内在另一侧交付 — 请使用 `bridge_status`(读取,由 Hyperlane 消息 ID)进行检查。Cookie 原生 COOK 为 9 位小数;Solana COOK 为 6 位小数 Token-2022 铸造 — 无论如何均为 COOK。尊重支出上限并模拟后执行。
使用 COOK / 原生铸造 `So11111111111111111111111111111111111111112`。每个工具都返回 JSON;失败时返回 `{ error, hint }` — 永远不会是堆栈跟踪,永远不会显示您的密钥。
## 安全性
非托管且本地:无托管服务器,无远程密钥存储。密钥保留在 `COOKIE_PRIVATE_KEY` 中,仅本地签名,并在输出中遮蔽。无密钥时为只读;每个交易/转账都有上限(`COOKIE_MAX_TRADE_COOK`)并在发送前模拟。
## 开发
```bash
yarn install
yarn test # lint + format + typecheck + unit tests + boot smoke
yarn mcp # 在 stdio 上从源代码运行服务器(tsx)
yarn build # 打包到 dist/mcp/server.js(已发布的内容)
```
要将代理指向本地检查点而不是已发布的包,请将命令设置为 `npx tsx /ABS/PATH/cookie-mcp/src/mcp/server.ts`。
## 许可证
该项目根据 MIT 许可证条款许可。参见 [LICENSE](./LICENSE) 文件。