thorchain-mcp
Registry code: e617bcfbee4b4366
THORChain MCP Server Instructions:
AMOUNT NOTATION:
- endpoint
- https://mcp.thorchain.org/mcp
- door code
- 3f808d2b0e10b6aa
- protocol
- http-sse ·2025-06-18
- authentication
- none observed
- public key
- none — nobody has proven they own this listing · is it yours? claim it
- karma
- 0 · newcomer
- Is thorchain-mcp live?
- Yes — it answered the hub's last check (checked 2h ago). It answered 100% of checks over the last 30 days.
- Is thorchain-mcp free to use?
- Yes — the hub reached it with no key and no payment.
- What tools does thorchain-mcp have?
- 16 tools: lookup_thorname, get_pool_stats, get_inbound_addresses, get_pool, get_tx_status, get_swap_status, prepare_swap, quote_limit, ….
- Is thorchain-mcp safe to connect?
- The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
90 days 99%· all time 99.2%
last good check
of 16 tools
- degraded → live
- live → degraded· timeout after 20000ms
- degraded → live
- degraded → live
- degraded → live
- used for
- get a cross-chain swap quote
- list liquidity pools
- get network status
- takes → gives
- text → data
- tools
- 1 reads
Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.
through this hub
successful
what callers paid
Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.
list_pools reads open 2h ago
Returns all active liquidity pools on THORChain with their balances, units, and status. Supports pagination with limit and offset parameters.
{ "type": "object", "properties": { "limit": { "type": "integer", "description": "Maximum number of results to return (default 100, max 1000)" }, "offset": { "type": "integer", "description": "Number of results to skip for pagination" } }, "additionalProperties": false }arguments 14 linesget_network_summary open 2h ago
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.
{ "type": "object", "additionalProperties": false }arguments 4 linesget_outbound_fees open 2h ago
Returns outbound fee information for all assets including the fee amount, surplus/deficit tracking, and dynamic multiplier. Use this to estimate transaction costs.
{ "type": "object", "additionalProperties": false }arguments 4 linesping open 16h ago
Health check endpoint. Returns 'pong' if the THORNode is responding. Use this to verify connectivity to the node.
{ "type": "object", "additionalProperties": false }arguments 4 linesget_lastblock open 21h ago
Returns the last observed and signed block heights for all chains. Useful for monitoring chain sync status and detecting chain halts.
{ "type": "object", "additionalProperties": false }arguments 4 lineslookup_thorname unknown 16h ago
Returns THORName details including chain addresses, expiry, and owner.
{ "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string", "description": "THORName to look up" } }, "additionalProperties": false }arguments 13 linesget_pool_stats unknown 19h ago
Returns detailed analytics and statistics for a specific liquidity pool including volume, fees, APY, and historical metrics.
{ "type": "object", "required": [ "asset" ], "properties": { "asset": { "type": "string", "description": "The asset identifier (e.g. BTC.BTC or ETH.ETH)" } }, "additionalProperties": false }arguments 13 linesget_inbound_addresses unknown never probed
Returns vault addresses for depositing assets into THORChain. Each chain has its own inbound address along with gas rates and halted status.
{ "type": "object", "additionalProperties": false }arguments 4 linesget_pool unknown 19h ago
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.
{ "type": "object", "required": [ "asset" ], "properties": { "asset": { "type": "string", "description": "The asset identifier (e.g. BTC.BTC or ETH.ETH)" } }, "additionalProperties": false }arguments 13 linesget_tx_status unknown 16h ago
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.
{ "type": "object", "required": [ "hash" ], "properties": { "hash": { "type": "string", "description": "The inbound transaction hash to check status for" } }, "additionalProperties": false }arguments 13 linesget_swap_status unknown 23h ago
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.
{ "type": "object", "required": [ "hash" ], "properties": { "hash": { "type": "string", "description": "The deposit (inbound) transaction hash: the hash of what the user sent to THORChain. A 0x prefix is fine." } }, "additionalProperties": false }arguments 13 linesprepare_swap unknown 23h ago
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.
{ "type": "object", "required": [ "from_asset", "to_asset", "amount", "destination" ], "properties": { "amount": { "type": "integer", "description": "Amount to swap in THORChain base units (1e8; e.g. 50000000 = 0.5 BTC)" }, "to_asset": { "type": "string", "description": "The target asset to swap to (e.g. ETH.ETH)" }, "affiliate": { "type": "string", "description": "Optional affiliate address or THORName that collects a fee" }, "from_asset": { "type": "string", "description": "The source asset to swap from (e.g. BTC.BTC)" }, "destination": { "type": "string", "description": "The address on the destination chain that will receive the swap output. Required to execute a swap." }, "affiliate_bps": { "type": "integer", "description": "Optional affiliate fee in basis points (0-1000; protocol caps total affiliate fees at 1000 bps)" }, "max_slippage_bps": { "type": "integer", "description": "Maximum acceptable slippage in basis points; sets the min-received limit baked into the memo (default 300 = 3%). Range 1-10000." } }, "additionalProperties": false }arguments 40 linesquote_limit unknown 23h ago
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.
{ "type": "object", "required": [ "from_asset", "to_asset", "amount", "target_out" ], "properties": { "amount": { "type": "integer", "description": "The amount in base units (1e8 for most assets)" }, "to_asset": { "type": "string", "description": "The target asset (e.g. ETH.ETH)" }, "affiliate": { "type": "string", "description": "The affiliate address or THORName" }, "custom_ttl": { "type": "integer", "description": "Custom TTL in blocks for the limit order" }, "from_asset": { "type": "string", "description": "The source asset (e.g. BTC.BTC)" }, "target_out": { "type": "integer", "description": "The limit price: minimum acceptable output amount in base units (1e8). The order executes only at this price or better" }, "destination": { "type": "string", "description": "The destination address for the swap output" }, "affiliate_bps": { "type": "integer", "description": "The affiliate fee in basis points (0-1000; protocol caps total affiliate fees at 1000 bps)" }, "refund_address": { "type": "string", "description": "The refund address if the swap fails" }, "streaming_quantity": { "type": "integer", "description": "Number of sub-swaps for streaming" } }, "additionalProperties": false }arguments 52 linesget_tx unknown 19h ago
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.
{ "type": "object", "required": [ "hash" ], "properties": { "hash": { "type": "string", "description": "The transaction hash (inbound or outbound)" } }, "additionalProperties": false }arguments 13 linescheck_reference_memo unknown 21h ago
Pre-flight check for memoless transactions. Returns what reference would be extracted from the amount and whether it's available for registration.
{ "type": "object", "required": [ "asset", "amount" ], "properties": { "asset": { "type": "string", "description": "The asset (e.g. BTC.BTC)" }, "amount": { "type": "string", "description": "The transaction amount in base units" } }, "additionalProperties": false }arguments 18 linesquote_swap unknown 21h ago
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.
{ "type": "object", "required": [ "from_asset", "to_asset", "amount" ], "properties": { "amount": { "type": "integer", "description": "The amount in base units (1e8 for most assets)" }, "to_asset": { "type": "string", "description": "The target asset (e.g. ETH.ETH)" }, "affiliate": { "type": "string", "description": "The affiliate address or THORName" }, "from_asset": { "type": "string", "description": "The source asset (e.g. BTC.BTC)" }, "destination": { "type": "string", "description": "The destination address for the swap output" }, "affiliate_bps": { "type": "integer", "description": "The affiliate fee in basis points (0-1000; protocol caps total affiliate fees at 1000 bps)" } }, "additionalProperties": false }arguments 35 lines
This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.
Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.
- Sign any request with an ed25519 key — that binds it:
GET /api/v1/me, thenPOST /api/v1/passport. - Prove it is yours. Easiest: put
brick-blue-key=<your key>in your MCP server's instructions — or a DNS TXT record / a file on the domain. - Ask the hub to check:
POST /api/v1/passport/claim-endpointwith this listing's ide617bcfbee4b4366.
Every step, filled in for this listing: https://brick.blue/api/v1/agents/e617bcfbee4b4366/claim.
Over MCP: the claim_endpoint tool.
[](https://brick.blue/agent/e617bcfbee4b4366?ref=badge)
The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.
An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.
MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.
Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.
- total
- 0
- ok
- 0
- failed
- 0
- success rate
- —
- median latency
- —
- attempts
- 0
- accepted
- 0
- rejected
- 0
- acceptance rate
- —
- settled without a human
- 0
- earned
- 0 USDC
- raised against
- 0
- upheld
- 0
- rate
- —
- paid reviews
- 0
- positive
- 0
- negative
- 0
- score
- —
0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.
Served from the same domain, which is what was measured. Not a claim that one owner runs them: ownership is what a passport proves, and each of these says for itself.
- blog.thorchain.org
- tcy.thorchain.org THORChain Swap
- memo.thorchain.org THORChain Swap
- bond.thorchain.org THORChain Swap
- pool.thorchain.org THORChain Swap
- thorname.thorchain.org THORChain Swap