Skip to main content

MCP server for Liquid Network wallet operations

Project description

๐Ÿ’ง AQUA MCP

MCP server for managing Liquid Network wallets through AI assistants like Claude.

Features

  • ๐Ÿ”‘ Generate & Import - Create new wallets or import existing mnemonics
  • ๐Ÿ‘€ Watch-Only - Import CT descriptors for balance monitoring
  • ๐Ÿ’ธ Send & Receive - Full transaction support with signing
  • ๐Ÿช™ Assets - Native support for L-BTC, USDT, and all Liquid assets
  • ๐Ÿ”’ Secure - Encrypted storage, no remote servers for keys

Installation

For End Users (Easiest!)

If you don't have uvx installed:

# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

Then install AQUA MCP with uvx (no need to download code):

uvx aqua-mcp

Configure Claude Desktop (~/.claude/claude_desktop_config.json):

{
  "mcpServers": {
    "aqua-mcp": {
      "command": "uvx",
      "args": ["aqua-mcp"]
    }
  }
}

That's it! Restart Claude Desktop and you're ready to use Liquid wallets.

For Developers

Clone and install from source:

git clone https://github.com/jan3dev/aqua-mcp.git
cd aqua-mcp
uv sync

Configure Claude Desktop:

{
  "mcpServers": {
    "aqua-mcp": {
      "command": "uv",
      "args": ["run", "--directory", "/absolute/path/to/aqua-mcp", "python", "-m", "aqua_mcp.server"]
    }
  }
}

Quick Start

3. Use with Claude

Once connected, you can ask Claude to:

  • "Create a new Liquid wallet"
  • "Show me my L-BTC balance"
  • "Generate a new receive address"
  • "Send 0.001 L-BTC to lq1..."

Usage Examples

Create a New Wallet

User: Create a new Liquid wallet for me

Claude: I'll generate a new wallet for you.
[Uses lw_generate_mnemonic โ†’ lw_import_mnemonic]

Your new wallet has been created!
Mnemonic (SAVE THIS SECURELY):
  abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about

โš ๏ธ Write this down and store it safely. Anyone with these words can access your funds.

Check Balance

User: What's my Liquid balance?

Claude: [Uses lw_balance]

Your balances:
- L-BTC: 0.00100000 (100,000 sats)
- USDT: 50.00

Send Transaction

User: Send 50,000 sats to lq1qqw8...

Claude: [Uses lw_send]

Transaction sent!
TXID: 7f3a8b2c...
Fee: 250 sats

Available Tools

Tool Description
lw_generate_mnemonic Generate new BIP39 mnemonic
lw_import_mnemonic Import wallet from mnemonic
lw_import_descriptor Import watch-only wallet
lw_export_descriptor Export CT descriptor
lw_balance Get wallet balances
lw_address Generate receive address
lw_send Send L-BTC
lw_send_asset Send any Liquid asset
lw_transactions Transaction history
lw_list_wallets List all wallets

Configuration

Default config location: ~/.aqua-mcp/config.json

{
  "network": "mainnet",
  "default_wallet": "default",
  "electrum_url": null,
  "auto_sync": true
}

Networks

  • mainnet - Liquid mainnet (real funds)
  • testnet - Liquid testnet (test funds)

Security

Mnemonic Storage

Mnemonics are encrypted at rest using a passphrase. On first use, you'll be prompted to set a passphrase.

Watch-Only Mode

For maximum security, you can:

  1. Generate wallet on an air-gapped device
  2. Export the CT descriptor
  3. Import as watch-only on your daily machine
  4. Sign transactions on the air-gapped device

No Remote Keys

All private key operations happen locally. Only blockchain sync uses Blockstream's public servers.

Development

# Install with dev dependencies
uv sync --extra dev

# Run tests
uv run pytest

# Format code
uv run black src/
uv run ruff check src/

Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  AI Assistant   โ”‚โ”€โ”€โ”€โ”€โ–ถโ”‚   MCP Server    โ”‚โ”€โ”€โ”€โ”€โ–ถโ”‚   LWK (Rust)    โ”‚
โ”‚  (Claude, etc)  โ”‚     โ”‚   (Python)      โ”‚     โ”‚   via bindings  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                                         โ”‚
                                                         โ–ผ
                                                โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                                                โ”‚ Electrum/Esploraโ”‚
                                                โ”‚  (Blockstream)  โ”‚
                                                โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Contributing

PRs welcome! Please read AGENTS.md for specs and conventions.

License

MIT

Credits

Built with:

  • LWK - Liquid Wallet Kit by Blockstream
  • MCP - Model Context Protocol

โšก Built for the Liquid Network

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aqua_mcp-0.1.0.tar.gz (102.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aqua_mcp-0.1.0-py3-none-any.whl (15.2 kB view details)

Uploaded Python 3

File details

Details for the file aqua_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: aqua_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 102.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.3

File hashes

Hashes for aqua_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 fccbde8798a81db13768e5a5598bdd61fb01e48892f700e16c4bf2eda777dbb9
MD5 df8939e9d3c11fdf0663562a89495a9a
BLAKE2b-256 8103405f0ad390989841c0672b259db2b9eb9a71e1da545727bac1551f23173f

See more details on using hashes here.

File details

Details for the file aqua_mcp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: aqua_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 15.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.3

File hashes

Hashes for aqua_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 671ff06dfb789332a7051e1aea84df2798a91bd42b9d927a22a956f9cf2ecd38
MD5 0181fd53a9b4738b7161efb0c7f347ed
BLAKE2b-256 56e5dbe20b9f464171f85cb61cc2aea977b77a86b0cd4cf3ac0489d7edf045f6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page