# THORChain MCP

> THORChain swap quotes, non-custodial swap prep, swap status, pools and network data.

- name: org.thorchain/thorchain-mcp
- version: 1.1.0
- connection class: R0 (autonomous)
- trust: 100/100
- quality: 85/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/org.thorchain%2Fthorchain-mcp
- tools: https://api.protogrid.dev/v1/servers/org.thorchain%2Fthorchain-mcp/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

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


## Trust

- hygiene: 100
- liveness: 100
- freshness: 100
- provenance: 100
- drivers: +repository +namespace-matches-repo +dns-namespace +website +reachable +uptime-100% +updated-9d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 85/100 (good)

### protocol: 88 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- warn `protocol.list_ttl`: tools/list declares ttlMs 0, so clients re-fetch it on every use

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 16 of 16 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 2,315 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump
- pass `tools.hidden_text`: no hidden text in tool names, descriptions, schemas or annotations

### stability: 50 (weight 15)

- warn `stability.changes`: 127 tool changes in 30 days
- fail `stability.rug_pull`: 3 tools kept their name but changed most of their description in 30 days; review before trusting them
- pass `stability.new_links`: no tool change named a new site

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 16, about 2,315 tokens to load them all
- tool set hash: a3c01c7051088712c603167a0eee0914
- tools last changed: 2026-11-04T22:14:43.070Z
- badge: [![protogrid quality](https://protogrid.dev/badge/org.thorchain/thorchain-mcp.svg)](https://protogrid.dev/servers/org.thorchain/thorchain-mcp)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-11-04 `get_tvl_history` removed
  - Returns historical Total Value Locked (TVL) data including pooled value, bonded value, and total locked value over time intervals.
- 2026-11-04 `get_thorname_owner` removed
  - Returns THORNames owned by an address.
- 2026-11-04 `get_thorname` removed
  - Returns THORName registration information including owner, expiry, and registered chain addresses. THORNames are human-readable aliases for blockchain addresses.
- 2026-11-04 `get_rune_history` removed
  - Returns historical RUNE data including price over time intervals.
- 2026-11-04 `get_mimir_node` removed
  - Returns the mimir settings voted by a specific node. Shows a map of mimir keys to their voted values for the given node address. Use this to see what protocol parameters a specific node operator is voting for.
- 2026-11-04 `get_vault` removed
  - Returns a specific vault by its public key including coin balances, status, membership, routers, and chain addresses.
- 2026-11-04 `get_swapper_clout` removed
  - Returns an address's swapper clout: accumulated fee-based score that reduces outbound delays for trusted swappers.
- 2026-11-04 `get_outbound_queue` removed
  - Returns the outbound queue containing signed transactions waiting to be broadcast to external chains. Each entry includes the destination chain, address, coin amount, and gas information. These transactions have been signed and are awaiting confirmation.
- 2026-11-04 `get_node` removed
  - Returns detailed information for a specific validator node including bond, status, version, and performance metrics. Bond providers include their Bond Yield configuration (bps share of rewards paid out automatically and its payout_target) when one is set.
- 2026-11-04 `get_network_info` removed
  - Returns THORChain network statistics and health information including bond metrics, pool data, and node counts.

Full history: https://api.protogrid.dev/v1/servers/org.thorchain%2Fthorchain-mcp/changes

## Remotes

- https://mcp.thorchain.org/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (16)

- `check_reference_memo`: Pre-flight check for memoless transactions. Returns what reference would be extracted from the amount and whether it's available for registration.
- `get_inbound_addresses`: Returns vault addresses for depositing assets into THORChain. Each chain has its own inbound address along with gas rates and halted status.
- `get_lastblock`: Returns the last observed and signed block heights for all chains. Useful for monitoring chain sync status and detecting chain halts.
- `get_network_summary`: Compact THORChain network status for agents: node counts, bonding/liquidity APY, reserve, pooled RUNE, next churn height, vault migration flag. Prefer this over get_network_info (full toolset only), which returns large per-node bond arrays.
- `get_outbound_fees`: Returns outbound fee information for all assets including the fee amount, surplus/deficit tracking, and dynamic multiplier. Use this to estimate transaction costs.
- `get_pool`: Returns one liquidity pool by asset (e.g. BTC.BTC): depths, units, status and price. Use list_pools to find asset identifiers and get_pool_stats for volume, fees and APY.
- `get_pool_stats`: Returns detailed analytics and statistics for a specific liquidity pool including volume, fees, APY, and historical metrics.
- `get_swap_status`: Answers "did my swap go through?" in plain terms. Returns a status (not_found, pending, streaming, sent, refunded, completed), whether it is done, a one-line summary to tell the user, streaming progress, an estimated wait, and the refund reason. refund=true with status sent means part was refunded. Start here for swap tracking; use get_tx_status only for raw stage detail.
- `get_tx`: Returns the observed transaction for a hash (inbound or outbound): chain, addresses, coins, memo and the heights THORChain saw it at. For "did my swap go through?" use get_swap_status.
- `get_tx_status`: Returns THORNode's raw status for an inbound transaction: every processing stage, planned outbounds and sent outbounds. For a plain answer (pending, streaming, sent, refunded) use get_swap_status; use this for stage-level detail.
- `list_pools`: Returns all active liquidity pools on THORChain with their balances, units, and status. Supports pagination with limit and offset parameters.
- `lookup_thorname`: Returns THORName details including chain addresses, expiry, and owner.
- `ping`: Health check endpoint. Returns 'pong' if the THORNode is responding. Use this to verify connectivity to the node.
- `prepare_swap`: Build a ready-to-execute THORChain swap. Returns the exact vault address to send to, the memo, the source chain, the expected output and guaranteed minimum, the estimated time, and an expiry. Use this when the user wants to actually perform a swap, not just price it (for pricing only, use quote_swap). The returned instruction is what a wallet signs and broadcasts; this tool itself never moves funds.
- `quote_limit`: Get a limit order quote with expected output, expiry time, and a generated memo for executing the limit order. Limit orders execute when the target price is reached. For an immediate market swap use quote_swap.
- `quote_swap`: Calculate how much output you would receive when swapping one asset for another. Use this tool to answer questions like 'how much ETH would I get for 100 RUNE?' Returns expected output amount, fees, slippage, estimated time, and a memo for executing the swap.
