Koskamo

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.

Xroot Token Operations MCP logo, by XrootVendor evidenceLegacy SSENo sign-inEndpoint checked 2026-11-01Operated by Xroot
MCP endpoint (Legacy SSE)
https://api.xroot.dev/mcp/sse
Vendor documentation

What 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

Vendor evidenceRegistry 1.1.0

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
Server-advertised capabilities
{
  "tools": {}
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

xroot.dev, read-only: what a wallet can get back on the chains each tool lists, whether a token is safe, when it unlocks, which protocol upgrades are live, and what an operation costs. Every answer ends with `next` — the page where the user acts, with their own wallet — and `note`, the standing caveat. Nothing here moves funds or holds keys.

Tools

18 advertised

check_wallet — Check wallet
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

check_wallet input schema
{
  "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
}
check_wallet annotations
{
  "title": "Check wallet",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
check_reclaimable_rent — Check reclaimable rent
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

check_reclaimable_rent input schema
{
  "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
}
check_reclaimable_rent annotations
{
  "title": "Check reclaimable rent",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
check_wrapped_sol — Check wrapped SOL
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

check_wrapped_sol input schema
{
  "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
}
check_wrapped_sol annotations
{
  "title": "Check wrapped SOL",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
check_token_delegates — Check token delegates
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

check_token_delegates input schema
{
  "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
}
check_token_delegates annotations
{
  "title": "Check token delegates",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
check_failed_deploys — Check failed deploys
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

check_failed_deploys input schema
{
  "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
}
check_failed_deploys annotations
{
  "title": "Check failed deploys",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
check_closable_programs — Check closable programs
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

check_closable_programs input schema
{
  "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
}
check_closable_programs annotations
{
  "title": "Check closable programs",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
check_lookup_tables — Check lookup tables
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

check_lookup_tables input schema
{
  "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
}
check_lookup_tables annotations
{
  "title": "Check lookup tables",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
check_lp_fees — Check LP fees
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

check_lp_fees input schema
{
  "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
}
check_lp_fees annotations
{
  "title": "Check LP fees",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
check_dlmm_positions — Check Meteora positions
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

check_dlmm_positions input schema
{
  "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
}
check_dlmm_positions annotations
{
  "title": "Check Meteora positions",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
check_subscriptions — Check subscriptions
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

check_subscriptions input schema
{
  "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
}
check_subscriptions annotations
{
  "title": "Check subscriptions",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
check_token_tax — Check token tax
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

check_token_tax input schema
{
  "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
}
check_token_tax annotations
{
  "title": "Check token tax",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
check_frozen_tokens — Check frozen tokens
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

check_frozen_tokens input schema
{
  "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
}
check_frozen_tokens annotations
{
  "title": "Check frozen tokens",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
audit_token — Audit token
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

audit_token input schema
{
  "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
}
audit_token annotations
{
  "title": "Audit token",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
check_token_unlocks — Check token unlocks
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

check_token_unlocks input schema
{
  "type": "object",
  "required": [
    "mint"
  ],
  "properties": {
    "mint": {
      "type": "string",
      "description": "The token's mint address (base58)."
    }
  },
  "additionalProperties": false
}
check_token_unlocks annotations
{
  "title": "Check token unlocks",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
search_tokens — Search tokens
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

search_tokens input schema
{
  "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
}
search_tokens annotations
{
  "title": "Search tokens",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_upgrades — List upgrades
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

list_upgrades input schema
{
  "type": "object",
  "properties": {
    "state": {
      "enum": [
        "pending",
        "active",
        "unqueued"
      ],
      "type": "string",
      "description": "Keep only gates in this mainnet state. Omit for all."
    }
  },
  "additionalProperties": false
}
list_upgrades annotations
{
  "title": "List upgrades",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
check_approvals — Check approvals
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

check_approvals input schema
{
  "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
}
check_approvals annotations
{
  "title": "Check approvals",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
get_fee_estimate — Get fee estimate
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

get_fee_estimate input schema
{
  "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
}
get_fee_estimate annotations
{
  "title": "Get fee estimate",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

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.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport sse xroot-token-operations-mcp https://api.xroot.dev/mcp/sse

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "xroot-token-operations-mcp": {
      "type": "sse",
      "url": "https://api.xroot.dev/mcp/sse",
      "disabled": false
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport sse xroot-token-operations-mcp https://api.xroot.dev/mcp/sse

Let 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.

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.

Claim this listing