Sablebolt swaps

Account-free crypto swaps: assets, routes, limits, live quotes, address checks, swap status

Should I use this

Quality & Safety

A
Description quality
96%
Schema completeness
78%
Naming quality
98%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'list_routes' description lacks action verbin list_routes

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,276Tokens (tool definitions)
~1.0 KBTypical response size
Moderate attention impact (1.00% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "swaps": {
      "url": "https://api.sablebolt.io/mcp"
    }
  }
}

Remote endpoints

https://api.sablebolt.io/mcpstreamable-http

What it can do

Tool inventory

Tools (8)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢list_assets

Every asset the swap form knows, with slug, ticker, network, confirmations, extra-id name and whether it is available right now.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢list_routes

Every route with its own page (from/to slugs) and whether both sides are available right now.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢get_limits(from, to)

Minimum and maximum amount for a route, in the asset you send.

Input Schema

{
  "type": "object",
  "properties": {
    "from": {
      "type": "string",
      "description": "asset slug you send, e.g. usdt-trc20"
    },
    "to": {
      "type": "string",
      "description": "asset slug you receive, e.g. btc"
    }
  },
  "required": [
    "from",
    "to"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_quote(from, to, amount, mode, via)

Floating estimate for a route and amount: amountTo, networkFee (taken out of the payout), receiveAmount, rate. The final amount is set when the deposit confirms.

Input Schema

{
  "type": "object",
  "properties": {
    "from": {
      "type": "string"
    },
    "to": {
      "type": "string"
    },
    "amount": {
      "type": "string",
      "description": "decimal amount you send, as a string"
    },
    "mode": {
      "description": "standard (default), or private: the swap runs as two legs at two liquidity partners through an intermediate coin; the response then carries legs[]",
      "type": "string",
      "enum": [
        "standard",
        "private"
      ]
    },
    "via": {
      "description": "private mode only: the intermediate coin slug (sol, trx or ltc); omitted → the server picks",
      "type": "string"
    }
  },
  "required": [
    "from",
    "to",
    "amount"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢validate_address(asset, address)

Whether an address has the right format for an asset. Does not check who owns it or whether an exchange needs a memo.

Input Schema

{
  "type": "object",
  "properties": {
    "asset": {
      "type": "string",
      "description": "asset slug"
    },
    "address": {
      "type": "string"
    }
  },
  "required": [
    "asset",
    "address"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_swap_status(id)

Status of one swap by id: stage (1 waiting … 5 done), deposit and payout addresses, amounts (receiveAmount is the estimate after the network fee; amountReceived the deposit as credited once seen — when it differs from amountFrom the estimate no longer applies; amountTo the actual payout once known), both transaction hashes.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "swap id from the status page URL"
    }
  },
  "required": [
    "id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡create_swap(from, to, amount, fromAddress, toAddress, ...)

Creates the swap and returns the payment instruction: the one-time deposit address, the memo if the chain needs one, the exact amount in decimal and in base units with the decimals and token contract as listed by the liquidity partner, a wallet URI where a standard exists (BIP-21, ERC-681, Solana Pay, Monero, TON), and the status URL. Use it only when you control the wallet at fromAddress and will send the deposit yourself; for a person use swap_page_link. The deposit must come from fromAddress; there is no refund address — a swap that cannot be completed is handled by support from the swap id. Floating rate: the final amount is set when the deposit confirms.

Input Schema

{
  "type": "object",
  "properties": {
    "from": {
      "type": "string",
      "description": "asset slug you send, e.g. usdt-trc20"
    },
    "to": {
      "type": "string",
      "description": "asset slug to receive, e.g. btc"
    },
    "amount": {
      "type": "string",
      "description": "decimal amount you send, as a string, within get_limits"
    },
    "fromAddress": {
      "type": "string",
      "description": "the address you will send the deposit from (a wallet you control)"
    },
    "toAddress": {
      "type": "string",
      "description": "the receiving address for the `to` asset"
    },
    "extraId": {
      "description": "memo / destination tag / payment ID for the receiving side, only where that asset needs one",
      "type": "string"
    },
    "fromExtraId": {
      "description": "the sending side's extra id, only if your wallet attaches one",
      "type": "string"
    },
    "mode": {
      "description": "standard (default), or private: the swap runs as two legs at two liquidity partners through an intermediate coin; the response then carries legs[]",
      "type": "string",
      "enum": [
        "standard",
        "private"
      ]
    },
    "via": {
      "description": "private mode only: the intermediate coin slug (sol, trx or ltc); omitted → the server picks",
      "type": "string"
    }
  },
  "required": [
    "from",
    "to",
    "amount",
    "fromAddress",
    "toAddress"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢swap_page_link(from, to, amount, mode)

The page where the person completes the swap, with the amount prefilled. A swap for a person is completed by that person on the page: open the link, check the amount, both addresses and the memo on screen, then send the deposit from your own wallet. An agent that controls the sending wallet itself uses create_swap and pays the instruction it gets back.

Input Schema

{
  "type": "object",
  "properties": {
    "from": {
      "type": "string"
    },
    "to": {
      "type": "string"
    },
    "amount": {
      "type": "string"
    },
    "mode": {
      "description": "private: the page opens with Private mode switched on",
      "type": "string",
      "enum": [
        "standard",
        "private"
      ]
    }
  },
  "required": [
    "from",
    "to"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded8 tools