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: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 bykaleido-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.
Spark L2 wallet (spark_*)
Spark L2 wallet (spark_*)
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.RLN, RGB Lightning Node (wdk_, alias rln_)
RLN, RGB Lightning Node (wdk_, alias rln_)
Requires a running RGB Lightning Node reachable at
RLN_NODE_URL, default http://localhost:3001.KaleidoSwap DEX (kaleidoswap_*)
KaleidoSwap DEX (kaleidoswap_*)
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.MPP / L402 payments (mpp_, l402_)
MPP / L402 payments (mpp_, l402_)
Market data (l402_get_, alias get_)
Market data (l402_get_, alias get_)
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.
Node lifecycle (kaleido_node_*)
Node lifecycle (kaleido_node_*)
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.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.
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.
kaleido-mcp connection, since both prefixes are available at once.
Paid API Access
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.