Xroot Token Operations MCP
An official MCP server by Xroot providing read-only access to Solana and Robinhood Chain token data, including wallet recovery, token safety checks, unlock schedules, upgrade status, and cost estimates for token operations.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://api.xroot.dev/mcp/sseWhat you can do with it
- Check token safety and rug risks on Robinhood Chain
- View unlock schedules and upgrade status for Solana tokens
- Estimate costs for token operations like airdrops or authority revocation
- Recover SOL from empty token accounts or failed program deploys
Source and maintenance
Protocol and capabilities
- Server
- xroot.dev 1.1.0
- MCP protocol
- 2025-06-18
- Tools
- 18 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
18 advertised
check_wallet — Check wallet
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 an EVM chain, LP fees, creator fees, bridge withdrawals and the wrapped native coin. Every venue is read independently and reports ok, failed or unavailable, and whether it answered in full, 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",
"required": [
"address"
],
"properties": {
"chain": {
"enum": [
"solana",
"robinhood"
],
"type": "string",
"description": "Which chain the address lives on. Defaults to solana."
},
"address": {
"type": "string",
"description": "The wallet address: a base58 public key on Solana, a 0x address on an EVM chain."
}
},
"additionalProperties": false
}{
"title": "Check wallet",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}check_reclaimable_rent — Check reclaimable rent
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",
"required": [
"address"
],
"properties": {
"address": {
"type": "string",
"description": "The Solana wallet address to read (base58 public key). Public data only; no connection or signature is involved."
}
},
"additionalProperties": false
}{
"title": "Check reclaimable rent",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}check_wrapped_sol — Check wrapped SOL
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",
"required": [
"address"
],
"properties": {
"address": {
"type": "string",
"description": "The Solana wallet address to read (base58 public key). Public data only; no connection or signature is involved."
}
},
"additionalProperties": false
}{
"title": "Check wrapped SOL",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}check_token_delegates — Check token delegates
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",
"required": [
"address"
],
"properties": {
"address": {
"type": "string",
"description": "The Solana wallet address to read (base58 public key). Public data only; no connection or signature is involved."
}
},
"additionalProperties": false
}{
"title": "Check token delegates",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}check_failed_deploys — Check failed deploys
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",
"required": [
"address"
],
"properties": {
"address": {
"type": "string",
"description": "The Solana wallet address to read (base58 public key). Public data only; no connection or signature is involved."
}
},
"additionalProperties": false
}{
"title": "Check failed deploys",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}check_closable_programs — Check closable programs
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",
"required": [
"address"
],
"properties": {
"address": {
"type": "string",
"description": "The Solana wallet address to read (base58 public key). Public data only; no connection or signature is involved."
}
},
"additionalProperties": false
}{
"title": "Check closable programs",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}check_lookup_tables — Check lookup tables
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",
"required": [
"address"
],
"properties": {
"address": {
"type": "string",
"description": "The Solana wallet address to read (base58 public key). Public data only; no connection or signature is involved."
}
},
"additionalProperties": false
}{
"title": "Check lookup tables",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}check_lp_fees — Check LP fees
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",
"required": [
"address"
],
"properties": {
"address": {
"type": "string",
"description": "The Solana wallet address to read (base58 public key). Public data only; no connection or signature is involved."
}
},
"additionalProperties": false
}{
"title": "Check LP fees",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}check_dlmm_positions — Check Meteora positions
Read a Solana wallet's Meteora DLMM and DAMM v2 positions by status, how many can be closed now, and the gross SOL deposit those closable positions hold — what closing them returns before fees. Nothing is closed.
{
"type": "object",
"required": [
"address"
],
"properties": {
"address": {
"type": "string",
"description": "The Solana wallet address to read (base58 public key). Public data only; no connection or signature is involved."
}
},
"additionalProperties": false
}{
"title": "Check Meteora positions",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}check_subscriptions — Check subscriptions
Read the on-chain subscriptions and recurring allowances a Solana wallet has granted, by state, plus the rent their accounts would return to this wallet (a sponsored subscription's rent goes back to its sponsor). Nothing is cancelled.
{
"type": "object",
"required": [
"address"
],
"properties": {
"address": {
"type": "string",
"description": "The Solana wallet address to read (base58 public key). Public data only; no connection or signature is involved."
}
},
"additionalProperties": false
}{
"title": "Check subscriptions",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}check_token_tax — Check token tax
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",
"required": [
"address"
],
"properties": {
"address": {
"type": "string",
"description": "The Solana wallet address to read (base58 public key). Public data only; no connection or signature is involved."
}
},
"additionalProperties": false
}{
"title": "Check token tax",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}check_frozen_tokens — Check frozen tokens
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",
"required": [
"address"
],
"properties": {
"address": {
"type": "string",
"description": "The Solana wallet address to read (base58 public key). Public data only; no connection or signature is involved."
}
},
"additionalProperties": false
}{
"title": "Check frozen tokens",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}audit_token — Audit token
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 an EVM 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",
"required": [
"address"
],
"properties": {
"chain": {
"enum": [
"solana",
"robinhood"
],
"type": "string",
"description": "Which chain the token lives on. Defaults to solana."
},
"address": {
"type": "string",
"description": "The token's mint address (Solana, base58) or contract address (an EVM chain, 0x)."
}
},
"additionalProperties": false
}{
"title": "Audit token",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}check_token_unlocks — Check token unlocks
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",
"required": [
"mint"
],
"properties": {
"mint": {
"type": "string",
"description": "The token's mint address (base58)."
}
},
"additionalProperties": false
}{
"title": "Check token unlocks",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}search_tokens — Search tokens
Find a token by name, symbol or address in the xroot.dev token directory — the trending and newest tokens the platform has indexed on an EVM chain — 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": {
"enum": [
"robinhood"
],
"type": "string",
"description": "The chain whose directory to search. May be omitted while one chain's directory is indexed."
},
"query": {
"type": "string",
"description": "Name, symbol or address fragment. Empty returns the trending list."
}
},
"additionalProperties": false
}{
"title": "Search tokens",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}list_upgrades — List upgrades
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": {
"enum": [
"pending",
"active",
"unqueued"
],
"type": "string",
"description": "Keep only gates in this mainnet state. Omit for all."
}
},
"additionalProperties": false
}{
"title": "List upgrades",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}check_approvals — Check approvals
List the standing token approvals on an EVM 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",
"required": [
"address"
],
"properties": {
"chain": {
"enum": [
"robinhood"
],
"type": "string",
"description": "The EVM chain the wallet is on. May be omitted while approvals are checked on one chain only."
},
"address": {
"type": "string",
"description": "The wallet address (0x). Public data only; no connection or signature is involved."
}
},
"additionalProperties": false
}{
"title": "Check approvals",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}get_fee_estimate — Get fee estimate
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",
"required": [
"request"
],
"properties": {
"request": {
"type": "object",
"allOf": [
{
"if": {
"required": [
"service"
],
"properties": {
"service": {
"enum": [
"spl-token",
"token-2022"
]
}
}
},
"then": {
"required": [
"token"
]
}
},
{
"if": {
"required": [
"service"
],
"properties": {
"service": {
"enum": [
"authority-tools",
"airdrop",
"update-metadata"
]
}
}
},
"then": {
"required": [
"tokenAddress",
"options"
]
}
}
],
"required": [
"chain",
"service"
],
"properties": {
"chain": {
"enum": [
"solana"
],
"type": "string",
"description": "The chain the operation runs on."
},
"token": {
"type": "object",
"required": [
"name",
"symbol",
"supply",
"decimals"
],
"properties": {
"name": {
"type": "string",
"description": "Token name, e.g. \"My Token\"."
},
"supply": {
"type": "string",
"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."
},
"symbol": {
"type": "string",
"description": "Token symbol, e.g. \"MYT\"."
},
"decimals": {
"type": "integer",
"maximum": 18,
"minimum": 0,
"description": "Decimals, e.g. 9."
},
"metadataUri": {
"type": "string",
"description": "Optional token metadata URI."
}
},
"description": "The token spec — required when deploying a new token (spl-token, token-2022)."
},
"options": {
"type": "object",
"description": "Service options, keyed by service. spl-token (optional, may be omitted): freezeAuthority. token-2022 (optional, may be omitted): transferTaxBps, transferTaxMaxFee, permanentDelegate, freezeAuthority — a transfer tax and a permanent delegate exist only on token-2022, and spl-token refuses them. 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."
},
"service": {
"enum": [
"spl-token",
"token-2022",
"authority-tools",
"airdrop",
"update-metadata"
],
"type": "string",
"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`)."
},
"tokenAddress": {
"type": "string",
"description": "The existing mint (base58) for authority-tools, airdrop and update-metadata. Not used when deploying."
},
"priorityFeeLamports": {
"type": "integer",
"maximum": 100000000,
"minimum": 1,
"description": "Optional priority fee in lamports to beat congestion."
}
},
"description": "The operation intent — same shape the browser flow sends (chain, then service, then the service's fields).",
"additionalProperties": false
}
},
"additionalProperties": false
}{
"title": "Get fee estimate",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 1555 ms
- 95th percentile latency
- 1555 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1555 ms · metadata changed · 18 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport sse xroot-token-operations-mcp https://api.xroot.dev/mcp/sseCline
{
"mcpServers": {
"xroot-token-operations-mcp": {
"type": "sse",
"url": "https://api.xroot.dev/mcp/sse",
"disabled": false
}
}
}Gemini CLI
gemini mcp add --transport sse xroot-token-operations-mcp https://api.xroot.dev/mcp/sseLet your agent find its tools
Find servers like Xroot Token Operations MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other ai and machine learning servers
Do you run Xroot Token Operations MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.