token-operations
Read-only Solana and Robinhood Chain tools: wallet recovery, token safety, unlocks, upgrades, fees.
사용해야 할까요
품질 및 안전성
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"token-operations": {
"url": "https://api.xroot.dev/mcp"
}
}
}원격 엔드포인트
https://api.xroot.dev/mcpstreamable-httphttps://api.xroot.dev/mcp/ssesse할 수 있는 일
도구 목록
도구 (18)
🟢check_wallet(address, chain)
Read everything a wallet can get back, in one call: on Solana, the rent in empty token accounts, the surplus the rent cut left, wrapped SOL, failed-deploy buffers, closable programs, lookup tables, dead Meteora positions, subscriptions, LP fees waiting on Orca, Meteora and locked Raydium positions, standing token delegates (a risk, not money), transfer-tax tokens it launched, and permissioned tokens it can unlock; on Robinhood Chain, LP fees, creator fees, bridge withdrawals and wrapped ETH. Every venue is read independently and reports ok, failed or unavailable, so a failed read is never mistaken for nothing there. Use it for "what can this wallet recover"; use the per-venue tools for one venue in detail.
입력 스키마
{
"type": "object",
"properties": {
"address": {
"description": "The wallet address: a base58 public key on Solana, a 0x address on Robinhood Chain.",
"type": "string"
},
"chain": {
"description": "Which chain the address lives on. Defaults to solana.",
"enum": [
"solana",
"robinhood"
],
"type": "string"
}
},
"required": [
"address"
],
"additionalProperties": false
}🟢check_reclaimable_rent(address)
Read how much SOL a Solana wallet can reclaim from rent: the deposits parked in its empty token accounts, and the surplus the rent cut left in accounts it still uses. Returns counts and net figures in SOL. Nothing is closed or moved.
입력 스키마
{
"type": "object",
"properties": {
"address": {
"description": "The Solana wallet address to read (base58 public key). Public data only; no connection or signature is involved.",
"type": "string"
}
},
"required": [
"address"
],
"additionalProperties": false
}🟢check_wrapped_sol(address)
Read the wrapped SOL (wSOL) sitting in a Solana wallet's token accounts, and what unwrapping it back to SOL returns net of fees. Nothing is unwrapped.
입력 스키마
{
"type": "object",
"properties": {
"address": {
"description": "The Solana wallet address to read (base58 public key). Public data only; no connection or signature is involved.",
"type": "string"
}
},
"required": [
"address"
],
"additionalProperties": false
}🟢check_token_delegates(address)
List the standing token delegates and approvals on a Solana wallet — programs still allowed to move its tokens. A risk read, not money: revoking returns no SOL. Nothing is revoked.
입력 스키마
{
"type": "object",
"properties": {
"address": {
"description": "The Solana wallet address to read (base58 public key). Public data only; no connection or signature is involved.",
"type": "string"
}
},
"required": [
"address"
],
"additionalProperties": false
}🟢check_failed_deploys(address)
Read the program buffer accounts left behind by a Solana wallet's failed or interrupted program deploys, and the SOL recovering them returns net of fees. Nothing is recovered.
입력 스키마
{
"type": "object",
"properties": {
"address": {
"description": "The Solana wallet address to read (base58 public key). Public data only; no connection or signature is involved.",
"type": "string"
}
},
"required": [
"address"
],
"additionalProperties": false
}🟢check_closable_programs(address)
Read the upgradeable programs a Solana wallet holds the upgrade authority for, and the gross rent their bytecode accounts hold. Closing a program is permanent, so this reads only.
입력 스키마
{
"type": "object",
"properties": {
"address": {
"description": "The Solana wallet address to read (base58 public key). Public data only; no connection or signature is involved.",
"type": "string"
}
},
"required": [
"address"
],
"additionalProperties": false
}🟢check_lookup_tables(address)
Read the address lookup tables a Solana wallet owns: how many are ready to close, cooling down, or still active, and the gross rent each group holds. Nothing is deactivated or closed.
입력 스키마
{
"type": "object",
"properties": {
"address": {
"description": "The Solana wallet address to read (base58 public key). Public data only; no connection or signature is involved.",
"type": "string"
}
},
"required": [
"address"
],
"additionalProperties": false
}🟢check_lp_fees(address)
Count a Solana wallet's liquidity positions with trading fees waiting to be claimed, per venue: Orca Whirlpools, Meteora, and locked Raydium liquidity. Fees are owed in many different tokens, so the answer is a count of positions, never a summed figure. Nothing is claimed.
입력 스키마
{
"type": "object",
"properties": {
"address": {
"description": "The Solana wallet address to read (base58 public key). Public data only; no connection or signature is involved.",
"type": "string"
}
},
"required": [
"address"
],
"additionalProperties": false
}🟢check_dlmm_positions(address)
Read a Solana wallet's Meteora DLMM and DAMM v2 positions by status, and the gross SOL deposit held by their position accounts — what closing a dead position returns before fees. Nothing is closed.
입력 스키마
{
"type": "object",
"properties": {
"address": {
"description": "The Solana wallet address to read (base58 public key). Public data only; no connection or signature is involved.",
"type": "string"
}
},
"required": [
"address"
],
"additionalProperties": false
}🟢check_subscriptions(address)
Read the on-chain subscriptions and recurring allowances a Solana wallet has granted, by state, plus the rent their accounts hold. Nothing is cancelled.
입력 스키마
{
"type": "object",
"properties": {
"address": {
"description": "The Solana wallet address to read (base58 public key). Public data only; no connection or signature is involved.",
"type": "string"
}
},
"required": [
"address"
],
"additionalProperties": false
}🟢check_token_tax(address)
List the transfer-tax tokens a Solana wallet launched through the platform, with each tax rate — the tokens whose withheld tax that wallet can collect. Nothing is collected.
입력 스키마
{
"type": "object",
"properties": {
"address": {
"description": "The Solana wallet address to read (base58 public key). Public data only; no connection or signature is involved.",
"type": "string"
}
},
"required": [
"address"
],
"additionalProperties": false
}🟢check_frozen_tokens(address)
Read the permissioned (Token ACL) tokens a Solana wallet holds, and which of them the holder can unlock itself under the token's published rules. Nothing is unlocked.
입력 스키마
{
"type": "object",
"properties": {
"address": {
"description": "The Solana wallet address to read (base58 public key). Public data only; no connection or signature is involved.",
"type": "string"
}
},
"required": [
"address"
],
"additionalProperties": false
}🟢audit_token(address, chain)
Run the free risk report on a token: who can still mint or freeze, transfer taxes and hooks, permanent delegates, liquidity status, holder concentration, and a verdict with a score. On Solana pass the mint address; on Robinhood Chain pass the token contract address. Use it when a user asks whether a token is safe, a rug, or a honeypot. Reads only.
입력 스키마
{
"type": "object",
"properties": {
"address": {
"description": "The token's mint address (Solana, base58) or contract address (Robinhood Chain, 0x).",
"type": "string"
},
"chain": {
"description": "Which chain the token lives on. Defaults to solana.",
"enum": [
"solana",
"robinhood"
],
"type": "string"
}
},
"required": [
"address"
],
"additionalProperties": false
}🟢check_token_unlocks(mint)
Read a Solana token's on-chain locks: supply vesting and locked liquidity, per locker, with the cliff, start, period and released amounts each lock reports. Use it when a user asks when a token unlocks or whether its liquidity is locked. Reads public lock accounts only.
입력 스키마
{
"type": "object",
"properties": {
"mint": {
"description": "The token's mint address (base58).",
"type": "string"
}
},
"required": [
"mint"
],
"additionalProperties": false
}🟢search_tokens(chain, query)
Find a token on Robinhood Chain by name, symbol or address in the xroot.dev token directory — the trending and newest tokens the platform has indexed — with each token's pool, price and cached audit verdict where one exists. Use it to resolve which of several same-named tokens a user means before auditing it.
입력 스키마
{
"type": "object",
"properties": {
"chain": {
"description": "The chain whose directory to search. Defaults to robinhood.",
"enum": [
"robinhood"
],
"type": "string"
},
"query": {
"description": "Name, symbol or address fragment. Empty returns the trending list.",
"type": "string"
}
},
"additionalProperties": false
}🟢list_upgrades(state)
List Solana's protocol upgrades (feature gates) with their state on mainnet, testnet and devnet — pending with an activation estimate, active with its activation epoch, or not yet queued — as read from the chain. Use it when a user asks whether a SIMD or feature has activated, or what is coming next. Optionally filter by mainnet state.
입력 스키마
{
"type": "object",
"properties": {
"state": {
"description": "Keep only gates in this mainnet state. Omit for all.",
"enum": [
"pending",
"active",
"unqueued"
],
"type": "string"
}
},
"additionalProperties": false
}🟢check_approvals(address)
List the standing token approvals on a Robinhood Chain wallet — contracts still allowed to move its tokens — ranked by risk, with unlimited allowances, expired permits and flagged spenders called out. A risk read, not money: revoking returns nothing. Nothing is revoked.
입력 스키마
{
"type": "object",
"properties": {
"address": {
"description": "The wallet address (0x). Public data only; no connection or signature is involved.",
"type": "string"
}
},
"required": [
"address"
],
"additionalProperties": false
}🟢get_fee_estimate(request)
Quote the exact cost of a token operation before anything is built: the platform fee for that service on that chain plus the estimated network fee (rent, base and priority), as decimal strings in the chain's currency. Use it when a user asks what a token deploy, authority revoke, airdrop or metadata update would cost. Reads only; nothing is prepared or sent.
입력 스키마
{
"type": "object",
"properties": {
"request": {
"additionalProperties": false,
"allOf": [
{
"if": {
"properties": {
"service": {
"enum": [
"spl-token",
"token-2022"
]
}
},
"required": [
"service"
]
},
"then": {
"required": [
"token"
]
}
},
{
"if": {
"properties": {
"service": {
"enum": [
"authority-tools",
"airdrop",
"update-metadata"
]
}
},
"required": [
"service"
]
},
"then": {
"required": [
"tokenAddress",
"options"
]
}
}
],
"description": "The operation intent — same shape the browser flow sends (chain, then service, then the service's fields).",
"properties": {
"chain": {
"description": "The chain the operation runs on.",
"enum": [
"solana"
],
"type": "string"
},
"options": {
"description": "Service options, keyed by service. spl-token and token-2022 (optional, may be omitted): transferTaxBps, transferTaxMaxFee, permanentDelegate, freezeAuthority. authority-tools (REQUIRED): revokeMint, revokeFreeze, revokeUpdate as booleans — all three must be present, at least one true; optional revokePermanentDelegate, revokeTransferFee, revokeWithheldWithdraw, revokeTransferHook, revokePause. airdrop (REQUIRED): recipients, a list of {address, amount} — at most 20 recipients per transaction — with amount as a decimal string in whole tokens, the same unit as supply; the mint's decimals are applied at prepare time. update-metadata (REQUIRED, at least one): name, symbol, metadataUri.",
"type": "object"
},
"priorityFeeLamports": {
"description": "Optional priority fee in lamports to beat congestion.",
"type": "integer"
},
"service": {
"description": "The service to run. spl-token and token-2022 create a new mint (send `token`); authority-tools, airdrop and update-metadata act on an existing mint (send `tokenAddress` and the service's `options`).",
"enum": [
"spl-token",
"token-2022",
"authority-tools",
"airdrop",
"update-metadata"
],
"type": "string"
},
"token": {
"description": "The token spec — required when deploying a new token (spl-token, token-2022).",
"properties": {
"decimals": {
"description": "Decimals, e.g. 9.",
"maximum": 18,
"minimum": 0,
"type": "integer"
},
"metadataUri": {
"description": "Optional token metadata URI.",
"type": "string"
},
"name": {
"description": "Token name, e.g. \"My Token\".",
"type": "string"
},
"supply": {
"description": "Total supply in whole tokens as a decimal string, e.g. \"1000000000\" for 1B tokens — the mint's decimals are applied at prepare time.",
"type": "string"
},
"symbol": {
"description": "Token symbol, e.g. \"MYT\".",
"type": "string"
}
},
"required": [
"name",
"symbol",
"supply",
"decimals"
],
"type": "object"
},
"tokenAddress": {
"description": "The existing mint (base58) for authority-tools, airdrop and update-metadata. Not used when deploying.",
"type": "string"
}
},
"required": [
"chain",
"service"
],
"type": "object"
}
},
"required": [
"request"
],
"additionalProperties": false
}커뮤니티
증거