THORChain Swap MCP Server

THORChain Swap runs a public Model Context Protocol server so AI agents can read live THORChain data natively.

Add it to a client

{
  "mcpServers": {
    "thorchain-swap": {
      "type": "http",
      "url": "https://swap.thorchain.org/mcp"
    }
  }
}

Tools

get_swap_quote — Get Swap Quote

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.

Parameters:

list_pools — List Liquidity Pools

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.

Parameters:

get_network_status — Get Network Status

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.

Parameters:

Every tool is annotated readOnlyHint: true, destructiveHint: false, idempotentHint: true. The server holds no keys, signs nothing, and submits no transactions.

Example

curl -s https://swap.thorchain.org/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "get_swap_quote",
      "arguments": {
        "from_asset": "BTC.BTC",
        "to_asset": "ETH.ETH",
        "amount": "100000000"
      }
    }
  }'

List the tools and their JSON Schemas:

curl -s https://swap.thorchain.org/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

MCP Apps

The server implements the MCP Apps extension (io.modelcontextprotocol/ui): get_swap_quote declares _meta.ui.resourceUri pointing at ui://thorchain-swap/swap-quote, a self-contained text/html;profile=mcp-app resource that MCP Apps-capable hosts render as an interactive quote panel. Hosts without MCP Apps support receive plain JSON and structuredContent.

Rate limits

Anonymous callers get 60 requests per 10 minutes per IP. A client registered through dynamic client registration gets 600 per 10 minutes against its own client id. Exceeding either returns JSON-RPC error -32000 with HTTP 429 and a Retry-After header.

Related

This page as markdown: /developers/mcp.md