Skip to main content
KaleidoSwap exposes its wallet, DEX, and payment functionality to AI agents (Claude Desktop, KaleidoAgent, KaleidoMind-based hosts, or any other MCP client) through kaleido-mcp, the unified server recommended for new integrations. It supersedes the earlier standalone wallet servers; see the migration notes at the end of this page.

What you need

The model calls tools through your MCP client. Starting the server in a terminal only waits for protocol requests; it does not open a chat.

Installation & Configuration

kaleido-mcp is published to npm, which is the quickest way to a first tool call. Start on signet:
This page documents kaleido-mcp 0.3.0 and later. 0.3.0 adds the KALEIDO_NETWORK preset and the kaleido_node_* lifecycle tools, and drops the order-based swap tools in favour of atomic swaps. If npx resolves an older cached version, run npx -y kaleido-mcp@latest once, or build from source.
From 0.3.1 the Spark and Liquid wallets are optional peer dependencies that plain npx -y kaleido-mcp does not install. With WDK_SEED or LIQUID_MNEMONIC set but the package missing, the server still starts and logs an install hint. To enable them:
In practice an MCP host runs this for you, point its config at the command (see Client Configuration below). For development, or to run a specific commit, build from source instead:
Either way, the server reads the same environment variables and speaks stdio by default:

Network Preset

KALEIDO_NETWORK picks a set of defaults in one variable. It accepts signet (the default from 0.3.1) or mainnet: The KaleidoSwap API here is the maker API for swaps between RGB Lightning Nodes, which the kaleidoswap_* tools use through the Node SDK. It is not the /v2 maker API in the API Reference. The preset only fills in defaults. Any variable you set explicitly, such as KALEIDOSWAP_API_URL or SPARK_NETWORK, wins over it. There is no public mainnet KaleidoSwap API, so mainnet without KALEIDOSWAP_API_URL stops the server at startup, as does an unknown value. RLN_NODE_URL is not part of the preset: point it at your own node, which on signet is usually the one KaleidoCLI runs on http://localhost:3001.

Runtime Compatibility

Check the installed package versions when diagnosing an integration. QVAC-backed Mind hosts require @qvac/sdk >=0.20.0. The kaleidoswap_submarine_* tools also need the optional @kaleidorg/swap-sdk package and Node.js 22 or newer. A tool appearing in the catalog does not guarantee that its wallet, node or optional dependency is configured. A successful /health response only confirms that the HTTP process is running. The generated MCP reference lists the current schemas. Use the reference at your installed release tag when building a version-pinned integration.

Legacy Aliases

Some tools are still reachable under older names (rln_* for wdk_*, generic get_* for the l402_get_* market tools) for backward compatibility with earlier integrations. New integrations should use the canonical wdk_* / l402_* names.

Tool Surface by Domain

All tools below are served by kaleido-mcp over a single connection. The 🔒 icon marks spend-moving tools in these docs; kaleido-mcp does not encode a confirmation flag, so whether a call is confirmed before executing is the MCP host’s behavior. The exception is the WDK built-in sendTransaction and transfer, which request an MCP-elicitation confirmation themselves before broadcasting.
WDK built-in tools (via @tetherto/wdk-mcp-toolkit, scoped to the spark chain): getAddress, getBalance, getMaxSpendableBtc, sendTransaction, transfer, getTokenBalance, quoteSendTransaction, quoteTransfer, getFeeRates, sign, verify.Custom Spark tools, on top of the built-ins:In kaleido-mcp, configure WDK_SEED and install the optional @tetherto/wdk-wallet-spark package. SPARK_NETWORK, SPARK_SCAN_API_KEY, and SPARK_USDT_TOKEN are optional.
Requires a running RGB Lightning Node reachable at RLN_NODE_URL, default http://localhost:3001.
Configured with KALEIDO_NETWORK, or KALEIDOSWAP_API_URL for a custom endpoint. Swaps are atomic only: the order-based tools (kaleidoswap_place_order, kaleidoswap_get_order_status and the rest) were removed in 0.3.0. The underlying maker endpoints are described with the Node SDK.
WDK built-in pricing tools (Bitfinex): getCurrentPrice, getHistoricalPrice.Uses free public APIs (CoinGecko, alternative.me) with no configuration required. The free CoinGecko tier is rate limited, so avoid calling price tools more than once every 30 seconds.
Shells out to a local kaleido binary, so an agent can bring a node up and unlock it rather than requiring one to already be running. See Node Environments for the CLI-native equivalent of these operations.

Client Configuration

Add the unified server to your MCP client. Start with market reads and add wallet packages only when you need them.
The starter configuration below needs no mnemonic. If you later add wallet seeds, keep that configuration private and out of version control.
On Claude Desktop the file is claude_desktop_config.json (Settings > Developer > Edit Config). WDK_SEED and the @tetherto/wdk-wallet-spark package are optional: leave them out and the Spark tools are disabled while the RGB node, DEX, payment and market tools keep working. REGTEST is the name the Spark SDK gives its hosted test network.

First Run

Start with market reads, then wallet reads, then a quote. Reading balances and requesting a quote do not move funds; payment and execution tools do.
1

Add the gateway to your host

Drop the kaleido-mcp block into your MCP host’s config with KALEIDO_NETWORK set to signet. The full JSON is in Client Configuration above.
2

Restart the host

MCP hosts read their config at startup. A running client will not pick up a new server until you restart it.
3

Call a read-only tool

Start with something that cannot move funds. Ask for market data, which needs no seed and no node:
That exercises l402_get_price and l402_get_sentiment. Check that the client reports successful tool calls; a model-generated answer alone does not verify the connection.
4

Check the wallet is wired

After enabling the optional Spark package and seed, confirm the wallet tools resolve:
This calls spark_get_balance and spark_get_address. If discovery succeeded but this call fails, check the optional wallet package, seed, network and the tool error.
5

Quote before you trade

Ask for a price without placing anything:
kaleidoswap_get_quote returns an rfq_id, raw amounts, the fee, and an expiry. Read the raw amounts carefully: they are in the asset’s smallest unit, not display units.
6

Execute only once the quote looks right

An atomic swap needs the DEX tools and the wallet tools together, and the node must hold the asset in a channel. The cross-server sequence below shows each call in order.
A generic MCP host is the least protected path. kaleido-mcp does not encode a confirmation flag, so if your client auto-approves tool calls, an LLM can spend from the configured wallet without asking you. Use a test network seed until you know how your client handles approvals.

Atomic Swap Flow

An atomic swap needs the DEX tools and the wallet tools together. kaleido-mcp speaks to the maker via its kaleidoswap_* tools and drives the taker node via its wdk_* tools. Nothing is custodied at any step, and the HTLC settles on Lightning.
Every step above runs through the same kaleido-mcp connection, since both prefixes are available at once. The Machine Payments Protocol flow lets an agent buy access to a gated resource without an API key or a signup, paying the invoice over Lightning.

Retired Servers

These names are migration references, not additional servers to install: Keep existing rln_* aliases where required by your host. For new raw MCP integrations prefer canonical names and check the generated schemas for your installed version before migrating arguments.