mcpField
U
Unclaimed Sol Scanner

Unclaimed Sol Scanner

本地服务
unclaimedsol.com金融数据59 周前更新

关于 Unclaimed Sol Scanner

Unclaimed Sol Scanner 是面向 Solana 钱包的 MCP 服务,可供 AI Agent 扫描并回收闲置 SOL。它覆盖代币账户、程序缓冲区、停用质押和 DeFi 奖励,并通过本地签名与预览流程控制交易风险。

主要功能

  1. 01扫描可回收 SOL
  2. 02清理闲置代币账户与垃圾 NFT
  3. 03回收程序缓冲区和停用质押
  4. 04领取 DeFi 奖励
  5. 05试运行与限时执行令牌
  6. 06本地签名并校验交易

适用场景

  1. 01检查钱包中可回收的 SOL
  2. 02预览关闭闲置账户的费用与收益
  3. 03领取未收取的 DeFi 奖励
  4. 04回收已停用质押账户中的 SOL

MCP 相关

向 MCP 客户端提供钱包扫描、闲置 SOL 回收、奖励领取和质押回收工具。扫描可在只读模式下运行;执行交易需本地密钥对签名,并先进行试运行。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"unclaimed-sol": {
"command": "npx",
"args": [
"-y",
"@unclaimed-sol/mcp"
],
"env": {
"SOLANA_KEYPAIR_PATH": "<SOLANA_KEYPAIR_PATH>",
"SOLANA_PRIVATE_KEY": "<SOLANA_PRIVATE_KEY>",
"SOLANA_RPC_URL": "<SOLANA_RPC_URL>",
"UNCLAIMED_SOL_API_URL": "<UNCLAIMED_SOL_API_URL>"
}
}
}
}
启动命令npx -y @unclaimed-sol/mcp
需要配置的环境变量
SOLANA_KEYPAIR_PATH密钥Path to a Solana keypair JSON file. Enables Vibe Claiming (claim tools).
SOLANA_PRIVATE_KEY密钥Alternative to SOLANA_KEYPAIR_PATH (base58 or JSON byte array). Prefer the keypair path.
SOLANA_RPC_URLSolana RPC endpoint. Defaults to the public mainnet-beta RPC.
UNCLAIMED_SOL_API_URLBackend API URL. Defaults to https://unclaimedsol.com.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@unclaimed-sol/mcp1.3.1

工具

1

收录的工具列表 · 更新于 2 周前

参数类型必填说明
wallet_addressstring是Solana 钱包地址(base58 公钥)

详细介绍

Unclaimed SOL MCP

首个 Vibe Claiming MCP 服务——让你的 AI Agent 扫描并收回 Solana 上沉睡的 SOL。

npm version npm downloads Node >=18 License: MIT CI

Unclaimed SOL MCP——首个 Vibe Claiming MCP 服务。一个服务涵盖六种回收类别:沉睡的代币账户(包括 Token-2022)、垃圾 NFT、程序缓冲账户、已停用的质押、DeFi 奖励和超额 lamports。只读扫描,无需配置;领取操作提供试运行预览、有效期 60 秒的一次性执行令牌,并在本地签名。你的密钥对绝不会离开你的设备。永远不会要求你提供助记词。

适用于 UnclaimedSOL 的 MCP 服务——可与 AI Agent 和助手(Claude、Cursor、Windsurf、Codex CLI,以及任何 Model Context Protocol 客户端)配合使用。

另请参阅:

Agent 为何使用它

  • 赚取,而不只是支出——Solana Agent 需要支付网络费用,但钱包中也可能有存放在旧账户、缓冲账户、质押和奖励中的可回收 SOL。
  • 默认安全——只读扫描模式无需配置;领取操作需要试运行,并使用有效期 60 秒的一次性执行令牌。
  • 本地签名——无需助记词;交易签名前会验证程序允许列表并设置费用上限。
  • 可供 Agent 使用——可与 Claude Desktop/Code、Cursor、Windsurf、Codex CLI 及其他 MCP 客户端配合使用。

覆盖范围

截至 2026 年 7 月的覆盖范围:

能力常见的代币账户清理工具Unclaimed SOL MCP
沉睡的代币账户是是,包括 Token-2022
垃圾 NFT有时是
程序缓冲账户很少是
已停用的质押很少是
DeFi 奖励很少是
超额 lamports很少是
只读扫描模式无需配置有时是
密钥对文件选项有时是,通过 SOLANA_KEYPAIR_PATH

功能介绍

Solana 钱包中的 SOL 会因沉睡的代币账户(包括 Token-2022)、垃圾 NFT、程序缓冲账户、已停用的质押、DeFi 奖励和超额 lamports 而被锁定为租金。此 MCP 服务可让 AI Agent 和助手:

  • 扫描任意钱包,检查其中沉睡的代币账户和程序缓冲账户是否有可回收的 SOL。
  • 领取(Vibe Claiming)——销毁毫无价值的代币余额,关闭沉睡账户,并回收租金 SOL。通过 UnclaimedSOL 链上程序在本地签名并广播交易。清理代币时,用户每关闭一个账户最多可保留 0.002 SOL;缓冲账户收取 5% 费用。
  • 领取奖励——领取尚未收取的 DeFi 奖励(返现、创作者费用等)。Pump/PumpSwap 收取 3%,上限为 1 SOL 或 100 USDC;其他奖励收取 15%。
  • 领取质押——从已停用的质押账户中领取 SOL。费用为 3%。
费用
类别费用
扫描免费
代币清理用户每关闭一个账户最多可保留 0.002 SOL
程序缓冲账户5%
DeFi 奖励通常为 15%
Pump/PumpSwap 奖励3%,上限为 1 SOL / 100 USDC
已停用的质押3%

资金不会经过 MCP 服务。

工具

scan_claimable_sol

**注释标题:**扫描钱包中可领取的 SOL

扫描钱包,查找锁定在休眠代币账户(包括 Token-2022)和程序缓冲账户中的 SOL。只读操作——不会发起交易,也无需密钥对。DeFi 奖励和已停用的质押账户通过 claim_rewards 和 claim_stakes 的试运行来发现。

输入:wallet_address(Base58 公钥;在启用领取模式下可选,默认使用已配置的密钥对钱包)

claim_sol

**注释标题:**领取休眠 SOL(Vibe Claiming)

领取可回收的 SOL。需要配置密钥对。采用两步流程:

  1. 试运行(默认)——显示可回收账户、预估 SOL、费用和交易数量的明细。返回一个有效期为 60 秒的一次性 execution_token。
  2. 执行——再次调用时传入 dry_run: false 和 execution_token,即可签名并广播交易。

输入:wallet_address(在启用领取模式下可选,默认使用已配置的密钥对钱包)、dry_run(默认值为 true)、execution_token、max_transactions(默认值为 10)、exclude(执行时可选,用于跳过的代币符号或名称)

此操作不可逆——账户关闭后无法恢复。

claim_rewards

**注释标题:**领取 DeFi 奖励

领取未领取的 DeFi 奖励(返现、创作者费用等)。需要配置密钥对。采用与 claim_sol 相同的两步试运行/执行流程。Pump/PumpSwap 的费用上限为 3%,最高为 1 SOL 或 100 USDC;其他奖励的费用为 15%。

输入:wallet_address(在启用领取模式下可选,默认使用已配置的密钥对钱包)、dry_run(默认值为 true)、execution_token

claim_stakes

**注释标题:**领取已停用质押账户中的 SOL

领取已停用质押账户中的 SOL。需要配置密钥对。采用相同的两步试运行/执行流程。也可以传入特定质押账户地址进行领取。

输入:wallet_address(在启用领取模式下可选,默认使用已配置的密钥对钱包)、dry_run(默认值为 true)、execution_token、stake_accounts(可选数组)

示例提示词

  • “扫描我的钱包,查找可回收的 SOL”
  • “我可以回收多少 SOL?”
  • “先试运行,看看我能领取什么”
  • “领取我休眠的代币账户中的 SOL”
  • “领取我钱包的奖励”
  • “领取我已停用质押账户中的 SOL”
  • “我可以从 <wallet_address> 回收多少 SOL?”
  • “扫描 <wallet_address>,查找可回收的 SOL”
  • “每天早上扫描我的钱包,并在有超过 0.05 SOL 可回收时告诉我”
  • “试运行完整领取流程,并在执行前向我展示费用明细”
  • “领取所有内容,但跳过我的 BONK 账户”

设置

先决条件
  • Node.js 18+
  • npm
快速安装(推荐)

如果你的 MCP 客户端支持包命令,则无需克隆或构建:

npx -y @unclaimed-sol/mcp
安装并构建(替代方案)
git clone https://github.com/unclaimed-sol/unclaimed-sol-mcp.git && cd unclaimed-sol-mcp
npm install
npm run build

配置

Vibe Claiming 模式(推荐)

开放所有工具(scan_claimable_sol、claim_sol、claim_rewards、claim_stakes)。使用你的密钥对在本地签名交易,并将交易广播到 Solana 网络。

用于 Claude Desktop / Cursor / Windsurf

使用 npm 包(推荐):

{
  "mcpServers": {
    "unclaimed-sol": {
      "command": "npx",
      "args": ["-y", "@unclaimed-sol/mcp"],
      "env": {
        "SOLANA_KEYPAIR_PATH": "~/.config/solana/id.json",
        "SOLANA_RPC_URL": "https://your-rpc-provider.com"
      }
    }
  }
}

使用本地构建:

{
  "mcpServers": {
    "unclaimed-sol": {
      "command": "node",
      "args": ["/absolute/path/to/unclaimed-sol-mcp/dist/index.js"],
      "env": {
        "SOLANA_KEYPAIR_PATH": "~/.config/solana/id.json",
        "SOLANA_RPC_URL": "https://your-rpc-provider.com"
      }
    }
  }
}
用于 Claude Code

使用 npm 包(推荐):

claude mcp add unclaimed-sol \
  -e SOLANA_KEYPAIR_PATH=~/.config/solana/id.json \
  -e SOLANA_RPC_URL=https://your-rpc-provider.com \
  -- npx -y @unclaimed-sol/mcp

使用本地构建:

claude mcp add unclaimed-sol \
  -e SOLANA_KEYPAIR_PATH=~/.config/solana/id.json \
  -e SOLANA_RPC_URL=https://your-rpc-provider.com \
  -- node /absolute/path/to/unclaimed-sol-mcp/dist/index.js
用于 Codex CLI

使用 npm 包(推荐):

codex mcp add unclaimed-sol \
  --env SOLANA_KEYPAIR_PATH=~/.config/solana/id.json \
  --env SOLANA_RPC_URL=https://your-rpc-provider.com \
  -- npx -y @unclaimed-sol/mcp

使用本地构建:

codex mcp add unclaimed-sol \
  --env SOLANA_KEYPAIR_PATH=~/.config/solana/id.json \
  --env SOLANA_RPC_URL=https://your-rpc-provider.com \
  -- node /absolute/path/to/unclaimed-sol-mcp/dist/index.js
可选的仅扫描模式(无需密钥对)

仅开放 scan_claimable_sol 工具。不会签名或发送任何交易。

使用 npm 包:

{
  "mcpServers": {
    "unclaimed-sol": {
      "command": "npx",
      "args": ["-y", "@unclaimed-sol/mcp"]
    }
  }
}

使用本地构建:

{
  "mcpServers": {
    "unclaimed-sol": {
      "command": "node",
      "args": ["/absolute/path/to/unclaimed-sol-mcp/dist/index.js"]
    }
  }
}

验证安装

  • Claude Code:运行 claude mcp list,并确认列表中包含 unclaimed-sol。
  • Codex CLI:运行 codex mcp list,并确认列表中包含 unclaimed-sol。
  • 冒烟测试:让你的助手运行 scan wallet <your_wallet>,并确认 scan_claimable_sol 已执行。

故障排查

  • 如果工具未显示,请在更改配置后重启 MCP 客户端。
  • 如果使用本地构建,请确保 dist/index.js 存在(npm run build),且路径为绝对路径。
  • 如果缺少领取工具,请确认已设置 SOLANA_KEYPAIR_PATH(或 SOLANA_PRIVATE_KEY)。

环境变量

变量必需说明
UNCLAIMED_SOL_API_URL否后端 API URL。默认为 https://unclaimedsol.com。
UNCLAIMED_SOL_API_KEY否作为 Authorization: Bearer 标头发送的 API 密钥。
SOLANA_KEYPAIR_PATH否Solana 密钥对 JSON 文件的路径。启用 Vibe Claiming。
SOLANA_PRIVATE_KEY否base58 字符串或 JSON 字节数组格式的私钥。条件允许时请改用 SOLANA_KEYPAIR_PATH。
SOLANA_RPC_URL否Solana RPC 端点。默认为 https://api.mainnet-beta.solana.com。建议使用专用 RPC 进行领取。
SOLANA_PRIORITY_FEE否每个计算单元的优先费(微 lamport)。默认值:1,000。最大值:200,000。

安全

  • 强制使用 HTTPS — 领取模式要求 API URL 使用 HTTPS(仅允许 localhost 使用 HTTP)。
  • API URL 允许列表 — 领取模式仅连接到 unclaimedsol.com、localhost 或 127.0.0.1。
  • 签名前验证 — 每笔交易在签名前都会经过验证:程序允许列表、固定为本地推导 PDA 的精确指令账户布局、费用上限强制执行,以及逐笔交易的领取要求。对于质押,费用上限根据经链上证明的提取金额计算。对于奖励,费用上限会与独立扫描结果交叉核对(见下文信任模型)。
  • 执行令牌 — 领取前必须先进行试运行。令牌只能使用一次、仅限单个钱包,并在 60 秒后过期。
  • 密钥对保留在本地 — 私钥绝不会离开你的设备。交易在本地签名。
  • 安全筛选 — 服务器端会筛选代币账户(maxClaimMode: false),排除有价值的代币和 NFT。跳过被冻结的账户。
  • 请求超时 — 所有 API 调用的超时时间均为 15 秒。

领取方式

代币/缓冲账户领取(claim_sol)
  1. MCP 服务调用 UnclaimedSOL 后端,获取可回收的代币和缓冲账户。
  2. 使用 @unclaimedsol/spl-burn-close-sdk 构建指令 — 通过 UnclaimedSOL 链上程序销毁代币余额并关闭账户。
  3. 使用你的密钥对在本地签名交易,并将其广播到 Solana 网络。
  4. 链上程序会收取每个成功关闭账户中超过 0.002 SOL 的已回收代币账户租金,缓冲账户另收取 5%。资金不会经过 MCP 服务。
奖励领取(claim_rewards)
  1. 后端构建包含 DeFi 奖励领取指令和费用转账的未签名交易。
  2. MCP 会验证每条指令:精确的账户布局、判别器以及本地推导的 PDA。费用上限为独立扫描奖励总额的 15%,而 Pump/PumpSwap 的定价预计会更低。
  3. 在本地签名交易并广播。
质押领取(claim_stakes)
  1. 后端构建包含质押提取指令和费用转账的未签名交易。
  2. MCP 会验证每条指令:仅允许提取、账户数量准确,并将费用限制在从指令数据中提取的、经验证的提取金额的 3% 以内。
  3. 在本地签名交易并广播。

验证器信任模型

预签名前的验证器(validateTransactionPrograms)会根据声明类型提供不同级别的保护:

  • claim_sol — 指令由 SDK 在本地构建。验证器会检查程序 ID 和费用金库是否存在。
  • claim_stakes — 完整的价值级安全性。 提款金额可根据 Stake 指令数据进行验证。费用上限由本地推导,不依赖后端报告的任何值。
  • claim_rewards — 结构性安全性。 DeFi 奖励领取金额在执行时由链上确定,不会编码在指令数据中。费用上限会与独立的 /scan 调用交叉核对,这可以防止后端端点之间意外出现偏差,但无法防范后端遭到全面入侵的情况。

在所有情况下:指令结构都经过精确锁定(每个账户位置都会与本地推导的 PDA 核对,账户数量必须精确匹配,且只接受已知判别符)。

项目结构

src/
  index.ts              MCP server entry point (stdio transport)
  constants.ts          Program IDs, fee vault, fee caps, batching limits
  config.ts             Environment variable loading and validation
  validation.ts         Wallet address validation
  formatter.ts          SOL display formatting
  cache.ts              In-memory scan cache (60s TTL)
  execution-token-store.ts  Generic two-step dry-run/execute token management
  tools/
    scan.ts             scan_claimable_sol tool handler
    claim.ts            claim_sol tool handler (tokens + buffers)
    claim-rewards.ts    claim_rewards tool handler (DeFi rewards)
    claim-stakes.ts     claim_stakes tool handler (deactivated stakes)
  services/
    scanner.ts          Backend API client (scan, tokens, buffers, rewards, stakes)
    transaction.ts      Transaction building + pre-sign validation
    signer.ts           Batch sign, send, confirm with retry

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。