# THORChain Swap MCP Server

THORChain Swap runs a public [Model Context Protocol](https://modelcontextprotocol.io) server so AI agents can read live THORChain data natively.

- **Endpoint:** https://swap.thorchain.org/mcp
- **Transport:** Streamable HTTP (stateless — single JSON responses, no SSE stream, no sessions)
- **Protocol versions:** 2025-06-18, 2025-03-26, 2024-11-05
- **Manifest:** [https://swap.thorchain.org/.well-known/mcp/server-card.json](https://swap.thorchain.org/.well-known/mcp/server-card.json) (also served by `GET https://swap.thorchain.org/mcp`)
- **Authentication:** none required; an optional client-credentials token raises the rate limit

## Add it to a client

```json
{
  "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:

  - `from_asset` (string, required) — Source asset, e.g. BTC.BTC
  - `to_asset` (string, required) — Destination asset, e.g. ETH.ETH
  - `amount` (string, required) — Amount to swap in 1e8 base units
  - `destination` (string) — Optional destination address; required for a quote with a usable memo
  - `streaming_interval` (string) — Optional streaming swap interval in blocks

### `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:

  - `status` (string) — Only return pools in this state. Available pools are the tradable ones.
  - `asset` (string) — Case-insensitive filter on the pool asset, e.g. BTC.BTC for one pool or ETH for every pool on the Ethereum chain.
  - `limit` (integer) — Maximum number of pools to return, largest RUNE depth first. Omit to return every match.

### `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:

  - `fields` (array) — Subset of top-level keys to return, e.g. ["native_outbound_fee_rune", "outbound_fee_multiplier"]. Omit for the full object.

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

## Example

```bash
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:

```bash
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](https://swap.thorchain.org/developers/auth) 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

- [Quickstart](https://swap.thorchain.org/developers/quickstart)
- [Authentication](https://swap.thorchain.org/developers/auth)
- [SDKs](https://swap.thorchain.org/developers/sdks)
- [AGENTS.md](https://swap.thorchain.org/AGENTS.md)
