Skip to content

net.swaptitan/swaptitan

by swaptitan.net · remote · no sign-in to list tools · v1.0.0 · published by net.swaptitan

Non-custodial cross-chain crypto swap MCP — 1288+ assets, no KYC. Solana/EVM/Monero, RPC, oracle.

Final · 4Changes · 10

21 tools: 4 do something that can't be undone, 10 change things and 7 only read.

Scanned Oct 21, 2026

3 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http swaptitan https://swaptitan.net/mcp

Findings

Matches of fixed checks, with the text they matched.

3 warn
  • The server marks "sol_swap_quote" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The input addresses people (input.to): what it sends cannot be taken back.

    What this check looks for
  • The server marks "smart_route" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The input addresses people (input.to): what it sends cannot be taken back.

    What this check looks for
  • The input schema at properties.address.description contains a 44-character base64 string.

    Matched text

    inputSchema.properties.address.description: "...58 for Solana (e.g. 7uZqehZaRiANgaFkSDvB625TPF78EG6HkAuxanE8ZTjZ); 0x-prefixed hex f..."

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

21 tools

Can't be undone 4Claude Code: ask
  • smart_routeUniversal crypto router: compares ALL rails in one call — own Solana aggregator (RiftBeam/Titan), own EVM aggregator (7 chains), plus cross-chain no-KYC providers — ranks by best N…1 finding

    Why it is in this group

    • The input addresses people (input.to): what it sends cannot be taken back.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "smart_route" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The input addresses people (input.to): what it sends cannot be taken back.

      What this check looks for
    Description, as the server wrote it
    Universal crypto router: compares ALL rails in one call — own Solana aggregator (RiftBeam/Titan), own EVM aggregator (7 chains), plus cross-chain no-KYC providers — ranks by best NET rate and returns best + Top-5 (results[]) with ready-to-execute params. Own rails win on same-chain (lowest fee, no middleman). Use for any swap incl. hard/exotic pairs.

    Annotations the server declares

    • title: Smart Crypto Router
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • sol_swapBuild a NON-CUSTODIAL Solana DEX swap via RiftBeam aggregator (Orca + Raydium CLMM native IX, Jupiter fallback, 0.10% fee).No findings

    Why it is in this group

    • The input addresses people (input.to): what it sends cannot be taken back.
    Description, as the server wrote it
    Build a NON-CUSTODIAL Solana DEX swap via RiftBeam aggregator (Orca + Raydium CLMM native IX, Jupiter fallback, 0.10% fee). Returns UNSIGNED base64 VersionedTransaction — sign with your wallet and send. Non-custodial.

    Annotations the server declares

    • title: Build Solana Swap Tx
    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: true
  • sol_swap_quoteSolana DEX quote via RiftBeam aggregator — automatically picks best price across Raydium CLMM, Orca Whirlpool and Jupiter.1 finding

    Why it is in this group

    • The input addresses people (input.to): what it sends cannot be taken back.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "sol_swap_quote" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The input addresses people (input.to): what it sends cannot be taken back.

      What this check looks for
    Description, as the server wrote it
    Solana DEX quote via RiftBeam aggregator — automatically picks best price across Raydium CLMM, Orca Whirlpool and Jupiter. Returns source field. 10bps fee. Free.

    Annotations the server declares

    • title: Solana Swap Quote (RiftBeam)
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • swap_createCreate a non-custodial cross-chain swap order.No findings

    Why it is in this group

    • The name "swap_create" says "create": a word for a change.
    • The input addresses people (input.to): what it sends cannot be taken back.
    Description, as the server wrote it
    Create a non-custodial cross-chain swap order. 3 providers: changenow (1288+ assets, returns payinAddress), simpleswap (400+ assets, returns payinAddress), heleket (XMR-optimised 5-6 conf, returns redirectUrl to payment page). Omit provider for auto-select.

    Annotations the server declares

    • title: Create Cross-Chain Swap
    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: true
Changes things 10Claude Code: ask
  • ai_chatChat with SwapTitan AI agent for complex crypto tasks, multi-step swaps, and natural language queries.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Chat with SwapTitan AI agent for complex crypto tasks, multi-step swaps, and natural language queries.

    Annotations the server declares

    • title: AI Assistant Chat
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • check_portfolioLook up the native-coin balance of any wallet address on Solana, Ethereum, Base or BNB Smart Chain.1 finding

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The input schema at properties.address.description contains a 44-character base64 string.

      Matched text

      inputSchema.properties.address.description: "...58 for Solana (e.g. 7uZqehZaRiANgaFkSDvB625TPF78EG6HkAuxanE8ZTjZ); 0x-prefixed hex f..."

      What this check looks for
    Description, as the server wrote it
    Look up the native-coin balance of any wallet address on Solana, Ethereum, Base or BNB Smart Chain. Returns the native balance (SOL, ETH or BNB), its current USD value and the queried chain as JSON, e.g. {"chain":"sol","balance":1.2345,"usd":92.51}. Read-only: needs no signature, never moves funds. Useful before building a swap to verify the wallet can cover amount plus network fees.

    Annotations the server declares

    • title: Check Wallet Portfolio
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • create_walletGenerate a new non-custodial crypto wallet.No findings

    Why it is in this group

    • The name "create_wallet" says "create": a word for a change.
    Description, as the server wrote it
    Generate a new non-custodial crypto wallet. Returns address and private key. Chain: sol (Solana), eth/base/bsc (EVM).

    Annotations the server declares

    • title: Create Wallet
    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: false
  • evm_swapBuild a NON-CUSTODIAL EVM DEX swap via KyberSwap aggregator on eth/base/bsc/arbitrum/polygon/optimism/avax: returns UNSIGNED calldata {to,data,value} — sign with YOUR OWN wallet.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Build a NON-CUSTODIAL EVM DEX swap via KyberSwap aggregator on eth/base/bsc/arbitrum/polygon/optimism/avax: returns UNSIGNED calldata {to,data,value} — sign with YOUR OWN wallet. Server never touches funds. 0.3% routing fee. ERC20 input needs prior approval.

    Annotations the server declares

    • title: Build EVM Swap Tx
    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: true
  • hl_approveGet the one-time approveBuilderFee action to sign with your MAIN wallet, authorizing SwapTitan as Hyperliquid builder at a minimal 0.001% max fee.No findings

    Why it is in this group

    • The name "hl_approve" says "approve": a word for a change.
    Description, as the server wrote it
    Get the one-time approveBuilderFee action to sign with your MAIN wallet, authorizing SwapTitan as Hyperliquid builder at a minimal 0.001% max fee. Revocable anytime.

    Annotations the server declares

    • title: Approve Hyperliquid Builder
    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: true
  • hl_build_orderBuild a ready Hyperliquid perpetual order action with SwapTitan builder code injected (minimal 0.001% fee).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Build a ready Hyperliquid perpetual order action with SwapTitan builder code injected (minimal 0.001% fee). Non-custodial: returns the action + nonce to sign with your own wallet (EIP-712) and POST to https://api.hyperliquid.xyz/exchange. Call hl_approve first (once).

    Annotations the server declares

    • title: Build Hyperliquid Order
    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: true
  • hl_marketsHyperliquid perpetuals: list all 231 markets with live prices, max leverage and size decimals.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Hyperliquid perpetuals: list all 231 markets with live prices, max leverage and size decimals.

    Annotations the server declares

    • title: Hyperliquid Markets
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • rug_checkCheck if a token contract is a rug pull / scam.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Check if a token contract is a rug pull / scam. Returns risk score and warning flags.

    Annotations the server declares

    • title: Rug-Check Token
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • set_price_alertSet a Telegram price alert for a crypto asset.No findings

    Why it is in this group

    • The name "set_price_alert" says "set": a word for a change.
    Description, as the server wrote it
    Set a Telegram price alert for a crypto asset. Triggers when price goes above or below target.

    Annotations the server declares

    • title: Set Price Alert
    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: false
  • sol_priority_feeLive Solana priority-fee oracle: current microLamports/CU percentiles and recommended low/medium/high/turbo tiers.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Live Solana priority-fee oracle: current microLamports/CU percentiles and recommended low/medium/high/turbo tiers. Call before sending any Solana transaction.

    Annotations the server declares

    • title: Solana Priority-Fee Oracle
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
Only reads 7Claude Code: allow
  • get_assetsList all 1288+ supported swap assets with ticker, network and nameNo findings

    Why it is in this group

    • The name "get_assets" says "get": a word for reading.
    Description, as the server wrote it
    List all 1288+ supported swap assets with ticker, network and name

    Annotations the server declares

    • title: List Supported Assets
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • get_new_tokensGet recently detected pump.fun tokens indexed by RiftBeam via Helius webhook.No findings

    Why it is in this group

    • The name "get_new_tokens" says "get": a word for reading.
    Description, as the server wrote it
    Get recently detected pump.fun tokens indexed by RiftBeam via Helius webhook. Returns up to 200 mint addresses (newest first) that have been traded on pAMMBay6 (graduated pools). Use mint addresses as input for pump_token_quote.

    Annotations the server declares

    • title: New Pump.fun Tokens (RiftBeam)
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • get_pricesGet real-time USD prices for BTC, SOL, ETH and XMRNo findings

    Why it is in this group

    • The name "get_prices" says "get": a word for reading.
    Description, as the server wrote it
    Get real-time USD prices for BTC, SOL, ETH and XMR

    Annotations the server declares

    • title: Get Crypto Prices
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • pump_token_quoteGet a native RiftBeam quote for any pump.fun AMM (pAMMBay6) token.No findings

    Why it is in this group

    • The description's first verb is "get": a word for reading.
    Description, as the server wrote it
    Get a native RiftBeam quote for any pump.fun AMM (pAMMBay6) token. Picks best price across 4000+ indexed pump pools (native pAMMBay6 IX or Jupiter fallback). Returns outAmount, source, priceImpact. SOL→token.

    Annotations the server declares

    • title: Pump.fun Token Quote (RiftBeam)
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • riftbeam_statsGet live RiftBeam Solana aggregator stats: win rate vs Jupiter (last 24h), pools indexed, pump.fun mints, coverage %, lag slots, sampler performance.No findings

    Why it is in this group

    • The description's first verb is "get": a word for reading.
    Description, as the server wrote it
    Get live RiftBeam Solana aggregator stats: win rate vs Jupiter (last 24h), pools indexed, pump.fun mints, coverage %, lag slots, sampler performance. Use to assess routing quality before swapping.

    Annotations the server declares

    • title: RiftBeam Aggregator Stats
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • swap_quoteGet estimated output and minimum deposit for a crypto swap pairNo findings

    Why it is in this group

    • The description's first verb is "get": a word for reading.
    Description, as the server wrote it
    Get estimated output and minimum deposit for a crypto swap pair

    Annotations the server declares

    • title: Get Swap Quote
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • swap_statusCheck status of a swap order.No findings

    Why it is in this group

    • The name "swap_status" says "status": a word for reading.
    Description, as the server wrote it
    Check status of a swap order. Poll every 20-30s. Lifecycle: waiting->confirming->exchanging->done. For heleket provider, status is checked via Heleket API.

    Annotations the server declares

    • title: Check Swap Status
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http swaptitan https://swaptitan.net/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__swaptitan__get_prices",
      "mcp__swaptitan__get_assets",
      "mcp__swaptitan__swap_quote",
      "mcp__swaptitan__swap_status",
      "mcp__swaptitan__pump_token_quote",
      "mcp__swaptitan__get_new_tokens",
      "mcp__swaptitan__riftbeam_stats"
    ],
    "ask": [
      "mcp__swaptitan__sol_swap_quote",
      "mcp__swaptitan__sol_swap",
      "mcp__swaptitan__smart_route",
      "mcp__swaptitan__sol_priority_fee",
      "mcp__swaptitan__hl_markets",
      "mcp__swaptitan__hl_build_order",
      "mcp__swaptitan__hl_approve",
      "mcp__swaptitan__evm_swap",
      "mcp__swaptitan__swap_create",
      "mcp__swaptitan__create_wallet",
      "mcp__swaptitan__check_portfolio",
      "mcp__swaptitan__rug_check",
      "mcp__swaptitan__set_price_alert",
      "mcp__swaptitan__ai_chat"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as swaptitan. Review it before you use it.