{"name":"dev.xroot/token-operations","slug":"xroot-token-operations","title":null,"description":"Read-only Solana and Robinhood Chain tools: wallet recovery, token safety, unlocks, upgrades, fees.","url":"https://mcp.market/server/xroot-token-operations","rating":null,"grade":"C","score":56,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":8,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":null},"uptime":{"percent":100,"checks":6,"ok":6,"last_checked_at":"2026-09-21T01:00:57.649Z","last_ok_at":"2026-09-21T01:00:57.649Z","latency_ms":120},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":null,"website":"https://app.xroot.dev","version":"1.1.0","remotes":[{"type":"streamable-http","url":"https://api.xroot.dev/mcp"},{"type":"sse","url":"https://api.xroot.dev/mcp/sse"}],"packages":[],"tools":[{"name":"audit_token","description":"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.","write_action":true,"price_micros":0,"input_schema":{"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}},{"name":"check_approvals","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"address":{"description":"The wallet address (0x). Public data only; no connection or signature is involved.","type":"string"}},"required":["address"],"additionalProperties":false}},{"name":"check_closable_programs","description":"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.","write_action":false,"price_micros":0,"input_schema":{"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}},{"name":"check_dlmm_positions","description":"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.","write_action":false,"price_micros":0,"input_schema":{"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}},{"name":"check_failed_deploys","description":"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.","write_action":false,"price_micros":0,"input_schema":{"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}},{"name":"check_frozen_tokens","description":"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.","write_action":false,"price_micros":0,"input_schema":{"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}},{"name":"check_lookup_tables","description":"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.","write_action":false,"price_micros":0,"input_schema":{"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}},{"name":"check_lp_fees","description":"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.","write_action":false,"price_micros":0,"input_schema":{"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}},{"name":"check_reclaimable_rent","description":"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.","write_action":false,"price_micros":0,"input_schema":{"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}},{"name":"check_subscriptions","description":"Read the on-chain subscriptions and recurring allowances a Solana wallet has granted, by state, plus the rent their accounts hold. Nothing is cancelled.","write_action":false,"price_micros":0,"input_schema":{"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}},{"name":"check_token_delegates","description":"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.","write_action":false,"price_micros":0,"input_schema":{"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}},{"name":"check_token_tax","description":"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.","write_action":false,"price_micros":0,"input_schema":{"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}},{"name":"check_token_unlocks","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"mint":{"description":"The token's mint address (base58).","type":"string"}},"required":["mint"],"additionalProperties":false}},{"name":"check_wallet","description":"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.","write_action":false,"price_micros":0,"input_schema":{"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}},{"name":"check_wrapped_sol","description":"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.","write_action":false,"price_micros":0,"input_schema":{"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}},{"name":"get_fee_estimate","description":"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.","write_action":false,"price_micros":0,"input_schema":{"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}},{"name":"list_upgrades","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"state":{"description":"Keep only gates in this mainnet state. Omit for all.","enum":["pending","active","unqueued"],"type":"string"}},"additionalProperties":false}},{"name":"search_tokens","description":"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.","write_action":false,"price_micros":0,"input_schema":{"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}}],"scan":{"score":56,"grade":"C","scanned_at":"2026-09-19T19:31:57.250Z","report":{"scannerVersion":"0.1.5","scannedAt":"2026-09-19T19:31:57.182Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":17,"max":20,"notes":["remote reachable in 2487ms"]},"poisoning":{"score":15,"max":15,"notes":["18 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 1 write-action tools with no auth"]},"maintenance":{"score":3,"max":15,"notes":["no repository listed"]},"identity":{"score":4,"max":10,"notes":["verified namespace with website, no repo"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"},{"id":"maint.no-repo","severity":"low","component":"maintenance","title":"No source repository listed"}],"inputs":{"probes":[{"url":"https://api.xroot.dev/mcp","reachable":true,"authRequired":false,"latencyMs":2487,"serverInfo":{"name":"xroot.dev","version":"1.1.0"}},{"url":"https://api.xroot.dev/mcp/sse","reachable":true,"authRequired":false,"latencyMs":1501,"serverInfo":{"name":"xroot.dev","version":"1.1.0"}}],"packages":[],"repo":{"found":false},"icon":{"url":"https://app.xroot.dev/favicon.svg","source":"registry"},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":8}}}},"grade_history":[],"reviews":[]}