THORChain Swap

Read-only THORChain swap quotes, liquidity pools, and network status.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
93%
Naming quality
100%
Poisoning risk
80%
Permission match
100%
Protocol compliance
100%

Findings (2)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains suspicious base64-like encoded stringin get_swap_quote

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~652Tokens (tool definitions)
~1.5 KBTypical response size
Moderate attention impact (0.51% 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": {
    "thorchain-swap": {
      "url": "https://swap.thorchain.org/mcp"
    }
  }
}

Remote endpoints

https://swap.thorchain.org/mcpstreamable-http

What it can do

Tool inventory

Tools (3)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢get_swap_quote(from_asset, to_asset, amount, destination, streaming_interval)

Fetch a THORChain swap quote for an asset pair. Assets use CHAIN.SYMBOL notation (e.g. BTC.BTC, ETH.ETH, ETH.USDC-0XA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48). Amount is in 1e8 base units (1 BTC = 100000000). Quotes are indicative and expire quickly; the returned memo and inbound address must not be reused after expiry.

Input Schema

{
  "type": "object",
  "properties": {
    "from_asset": {
      "type": "string",
      "description": "Source asset, e.g. BTC.BTC"
    },
    "to_asset": {
      "type": "string",
      "description": "Destination asset, e.g. ETH.ETH"
    },
    "amount": {
      "type": "string",
      "description": "Amount to swap in 1e8 base units"
    },
    "destination": {
      "type": "string",
      "description": "Optional destination address; required for a quote with a usable memo"
    },
    "streaming_interval": {
      "type": "string",
      "description": "Optional streaming swap interval in blocks"
    }
  },
  "required": [
    "from_asset",
    "to_asset",
    "amount"
  ],
  "additionalProperties": false
}
🟢list_pools(status, asset, limit)

List THORChain liquidity pools with status, depths (1e8 base units), and USD asset price. Filter by pool status or by chain/asset to avoid pulling the full list.

Input Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "Available",
        "Staged",
        "Suspended"
      ],
      "description": "Only return pools in this state. Available pools are the tradable ones."
    },
    "asset": {
      "type": "string",
      "description": "Case-insensitive filter on the pool asset. A bare chain returns that chain only (ETH matches every ETH.* pool, not BASE.ETH); a CHAIN.SYMBOL value matches by prefix, so BTC.BTC returns one pool and ETH.USDC finds the contract-suffixed pool."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 200,
      "description": "Maximum number of pools to return, largest RUNE depth first. Omit to return every match."
    }
  },
  "required": [],
  "additionalProperties": false
}
🟢get_network_status(fields)

Return current THORChain network parameters, including outbound fees, bond and reserve totals, and halt-related gas information. Pass `fields` to return only the keys you need.

Input Schema

{
  "type": "object",
  "properties": {
    "fields": {
      "type": "array",
      "description": "Subset of top-level keys to return, e.g. [\"native_outbound_fee_rune\", \"outbound_fee_multiplier\"]. Omit for the full object.",
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "maxItems": 40
    }
  },
  "required": [],
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded3 tools
verifiedversion not recorded3 tools
verifiedversion not recorded3 tools