Agentic AQUA
Agentic AQUA is an MCP server enabling AI assistants to manage Bitcoin, Liquid Network, and Lightning wallets, send/receive funds, and perform cross-chain swaps — all with private key operations handled locally and wallets encrypted at rest.
Wallet Management
Generate new BIP39 seed phrases or import existing ones (one seed creates both Bitcoin and Liquid wallets)
Import/export watch-only wallets via CT descriptors (Liquid) or BIP84 descriptors (Bitcoin)
List and securely delete wallets
Bitcoin (On-Chain)
Check balance, generate receive addresses (bc1...), send BTC (with optional custom fee rate), and view transaction history
Liquid Network (On-Chain)
Check balances for all Liquid assets (L-BTC, USDt, etc.), generate receive addresses (lq1...), send L-BTC or any Liquid asset by asset ID, view transaction history, check transaction status, and list known assets from the asset registry
Unified Balance
View a combined balance across both Bitcoin and Liquid networks in a single call
Lightning Network
Generate Lightning invoices to receive L-BTC
Pay Lightning invoices or Lightning Addresses using L-BTC (via Boltz reverse submarine swaps, ~0.1% fee)
Check Lightning swap status
Cross-Chain Swaps (Changelly)
Get fixed-rate quotes for USDt-Liquid ↔ USDt on Ethereum, Tron, BSC, Solana, or Polygon
Execute outbound and inbound USDt-Liquid swaps and check order status
Cross-Chain Swaps (SideShift)
List supported coins/networks, get pair rate info and fixed-rate quotes
Send funds out from or receive funds into Bitcoin/Liquid wallets via SideShift
Check shift order status
Get recommendations on whether to use SideSwap vs SideShift for a given conversion
CLI Interface
All core functionality is also accessible via a command-line interface for scripting and direct operations
Provides tools for managing Bitcoin wallets, including generating addresses, checking balances, sending transactions, and importing/exporting descriptors.
Provides tools for sending and receiving payments via the Lightning Network using L-BTC, including generating invoices and paying invoices through Boltz swaps.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Agentic AQUAShow my Bitcoin and Liquid balances"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Agentic AQUA
MCP server and CLI for managing Bitcoin and Liquid Network wallets through AI assistants like Claude. One seed backs both networks (unified wallet). Agentic AQUA can also operate on the Lightning Network.
Features
Generate & Import - Create new wallets or import existing seeds
Unified Wallet - One seed (mnemonic) for Bitcoin and Liquid;
unified_balanceshows bothBitcoin (onchain) - BIP84 wallets, balance and send via
btc_*tools (BDK)Watch-Only - Import CT descriptors for balance monitoring
Send & Receive - Full transaction support (L-BTC, BTC, and Liquid assets like USDt)
Lightning - Send and receive via Lightning using L-BTC
Assets - Native support for L-BTC, USDt, and all Liquid assets
Swaps & Pegs - Convert BTC ↔ L-BTC and swap Liquid/cross-chain assets via SideSwap, SideShift, and Changelly
JAN3 Account - Login, Lightning Address, and WapuPay (pay ARS bank accounts with USDT) via your JAN3 account
Secure - Encrypted storage, no remote servers for keys
Related MCP server: lightning-mcp
Installation
Quickest way: just ask your AI agent directly:
Install this MCP server: https://pypi.org/project/agentic-aqua/
Python 3.13 required.
Recommended (uv tool install)
If you don't have uv installed:
# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"Install Agentic AQUA:
uv tool install --python 3.13 agentic-aquaThis creates a permanent agentic-aqua executable. Find its full path with:
which agentic-aqua
# Example: /Users/yourname/.local/bin/agentic-aquaConfigure Claude Desktop (~/.claude/claude_desktop_config.json) using that path:
{
"mcpServers": {
"agentic-aqua": {
"command": "/full/path/to/agentic-aqua",
"args": []
}
}
}Restart Claude Desktop and you're ready to use Bitcoin and Liquid wallets.
Updating / removing:
uv tool upgrade agentic-aquato update,uv tool uninstall agentic-aquato remove.
For Developers
Clone and install from source:
git clone https://github.com/jan3dev/agentic-aqua.git
cd agentic-aqua
uv python install 3.13
uv sync --python 3.13Configure Claude Desktop using the full path to uv (find with which uv):
{
"mcpServers": {
"agentic-aqua": {
"command": "/full/path/to/uv",
"args": ["run", "--python", "3.13", "--directory", "/absolute/path/to/agentic-aqua", "python", "-m", "aqua.server"]
}
}
}Quick Start
Once connected, you can ask Claude to:
"Create a new wallet" (creates both Bitcoin and Liquid wallets from one seed)
"Show my balance" / "What's my Bitcoin balance?"
"Generate a receive address" (Liquid or Bitcoin)
"Send 10,000 Sats to bc1..." / "Send 0.001 L-BTC to lq1..."
"Pay this Lightning invoice: lnbc..."
"Receive 50,000 Sats via Lightning"
"Delete my wallet"
Available Tools
Wallet Management
Tool | Description |
| Generate new BIP39 seed |
| Import wallet from seed (also creates Bitcoin wallet) |
| Import watch-only Liquid wallet from CT descriptor |
| Export Liquid CT descriptor for watch-only use |
| Import watch-only Bitcoin wallet from BIP84 descriptor |
| Export Bitcoin BIP84 descriptors + xpub |
| List all wallets |
| Delete a wallet and all its cached data |
⚠️ Bitcoin and Liquid descriptors cannot be derived from each other (different BIP84 paths + Liquid's SLIP-77 blinding key). To watch a unified wallet, import both descriptors separately.
Liquid (lw_*)
Tool | Description |
| Get wallet balances (all assets) |
| Generate Liquid receive address (lq1...) |
| Send L-BTC |
| Send any Liquid asset (USDt, etc.) |
| Sweep the entire L-BTC (or one asset) balance to one address |
| List known Liquid assets (asset_id, ticker, name, precision) |
| Transaction history |
| Get transaction status (txid or explorer URL) |
Bitcoin (btc_*)
Tool | Description |
| Get Bitcoin balance (sats) |
| Generate Bitcoin receive address (bc1...) |
| Bitcoin transaction history |
| Send BTC |
| Sweep the entire Bitcoin balance to one address |
Unified
Tool | Description |
| Get balance for both Bitcoin and Liquid |
Lightning
Tool | Description |
| Generate a Lightning invoice to receive L-BTC (100–25,000,000 Sats) |
| Pay a Lightning invoice using L-BTC via Boltz (~0.1% fee) |
| Check status of a Lightning swap (send or receive) |
| Decode a BOLT11 invoice without paying it |
Swaps — SideSwap (sideswap_*) — BTC ↔ L-BTC pegs and atomic Liquid asset swaps
Tool | Description |
| Live fees, peg minimums, hot-wallet balance |
| Recommend a peg vs an instant swap for a BTC ↔ L-BTC conversion |
| Quote the receive amount for a peg at current fees |
| Peg BTC → L-BTC |
| Peg L-BTC → BTC |
| Check status of a peg order |
| List Liquid assets SideSwap supports for atomic swaps |
| Read-only price quote for a Liquid asset swap |
| Execute an atomic Liquid asset swap (L-BTC ↔ USDt, etc.) |
| Check status of an atomic asset swap |
Swaps — SideShift (sideshift_*) — custodial cross-chain swaps (USDt across chains, BTC ↔ USDt-on-X)
Tool | Description |
| List supported coins and networks |
| Rate / min / max for a pair |
| Fixed-rate quote (~15 min TTL) |
| Recommend SideSwap vs SideShift for a pair |
| Send funds from the wallet via a fixed-rate shift |
| Receive into the wallet via a variable-rate shift |
| Check status of a shift order |
Swaps — Changelly (changelly_*) — USDt-Liquid ↔ USDt on Ethereum/Tron/BSC/Solana/Polygon
Tool | Description |
| List currencies Changelly supports |
| Fixed-rate quote for a USDt-Liquid ↔ USDt-on-X swap |
| Send USDt-Liquid out to USDt on another chain |
| Receive USDt-Liquid from USDt on another chain |
| Check status of a swap order |
WapuPay (wapupay_*) — pay Argentine bank accounts in ARS, funded with USDT on Liquid
Tool | Description |
| Current exchange rates (e.g. USDT/ARS); public, no key needed |
| Preview USDT cost, fee, and rate for an ARS payment |
| Create a direct-fiat order; returns a Liquid USDT funding address |
| Re-issue funding instructions for an existing order |
| Check a direct-fiat order's status |
| List locally-tracked orders |
| List WapuPay transactions |
| Get a single transaction by id |
| Monthly spending limit (USDT) for the account/key |
| Provision a WapuPay API key via your JAN3 account |
JAN3 Account (jan3_*) — login, sessions, and Lightning Address for your JAN3 account
Tool | Description |
| Default login flow: email OTP → verify, saves the session |
| Fallback paid captchaless login flow |
| Status/metadata for a persisted session |
| List all persisted sessions |
| Delete a persisted session |
| Account profile + Lightning Address status |
| Enable/disable the Lightning Address |
| Re-bind Lightning Address delivery to a different wallet (destructive) |
| Check if a Lightning username is available |
| Buy/update the Lightning username (on-chain payment) |
Utilities
Tool | Description |
| Generate a PNG QR code for any content (address, invoice, URI) |
| Decode a QR code from an image file |
| Diagnose (and optionally repair) the |
CLI
Agentic AQUA also ships with a Click-based CLI (aqua) for direct, scriptable wallet operations. It exposes the same operations as the MCP tools.
# Discover commands
aqua --help
aqua wallet --help
aqua btc --help
aqua liquid --help
aqua lightning --help
aqua sideswap --help
aqua sideshift --help
aqua changelly --help
aqua wapupay --help
aqua jan3 --help
aqua qr --help
# Wallet management
aqua wallet generate-mnemonic
aqua wallet import-mnemonic --mnemonic-stdin --wallet-name default --network mainnet --password-stdin
aqua wallet list
aqua wallet delete --wallet-name old
# Watch-only descriptors (Bitcoin and Liquid are separate)
aqua btc export-descriptor --wallet-name default
aqua btc import-descriptor --wallet-name cold --descriptor "wpkh([fp/84h/0h/0h]xpub.../0/*)#cs"
aqua liquid export-descriptor --wallet-name default
aqua liquid import-descriptor --wallet-name cold --descriptor "ct(slip77(...),elwpkh(...))"
# Balances
aqua balance # unified (BTC + Liquid)
aqua btc balance --wallet-name default
aqua liquid balance --wallet-name default
# Receive addresses
aqua btc address
aqua liquid address
# Send (--wallet-name is required for on-chain sends)
aqua btc send --wallet-name default --address bc1... --amount 10000
aqua liquid send --wallet-name default --address lq1... --amount 50000
aqua liquid send-asset --wallet-name default --address lq1... --amount 1000000 --asset-id <asset_id>
# (or use --asset-ticker USDt instead of --asset-id)
# Transaction history & status
aqua btc transactions
aqua liquid transactions
aqua liquid tx-status --tx <txid|explorer_url>
# Lightning (L-BTC via Boltz / Ankara)
aqua lightning receive --amount 50000
aqua lightning send --invoice lnbc...
aqua lightning status --swap-id <id>
aqua lightning decode --invoice lnbc...
# Swaps & pegs
aqua sideswap peg-in --wallet-name default # BTC -> L-BTC
aqua sideswap peg-out --amount 50000 --btc-address bc1... --wallet-name default
aqua sideswap swap --asset-ticker USDt --amount 50000 --wallet-name default
aqua sideshift send --deposit-coin btc --deposit-network liquid --settle-coin usdt --settle-network tron \
--settle-address T... --deposit-amount 0.001 --wallet-name default
aqua changelly send --external-network tron --settle-address T... --amount-from 100 --wallet-name default
# WapuPay (pay ARS bank accounts, funded with USDT on Liquid)
aqua wapupay quote --amount-ars 10000 --alias some.alias
aqua wapupay create-order --amount-ars 10000 --alias some.alias --wallet-name default
# then fund the returned address:
aqua liquid send-asset --wallet-name default --address <funding_address> --amount <amount> --asset-ticker USDt
# QR
aqua qr decode ./invoice-qr.png
# Run as MCP stdio server
aqua serve # recommended
aqua-mcp # direct MCP entrypointOutput defaults to a human-readable table on the terminal and JSON when piped. Force a format with --format json or --format pretty.
Loading seeds safely
Avoid pasting seeds into the chat with your agent. Because it will persist in logs and will be sent to the AI provider, agent transcripts may persist them. The recommended workflow is to use this command that hides the text input:
aqua wallet import-mnemonic --mnemonic-stdin --wallet-name defaultx --network mainnet --password-stdinThe CLI honors these variables out of the box:
Variable | Used by |
|
|
|
|
| Any CLI option (Click |
If you would rather pipe secrets from a password manager, every secret-bearing command also accepts --mnemonic-stdin / --password-stdin:
pass show crypto/aqua-mnemonic | aqua-cli wallet import-mnemonic --mnemonic-stdinTips:
Never commit
.envorsecrets.envfiles (the project's.gitignorealready excludes them).Prefer
set -a; . file; set +aoverexport $(cat file)— the former tolerates spaces and quotes inside values.After importing a wallet, the seed is no longer needed for day-to-day operations; only
AQUA_PASSWORDis used to sign transactions.
JAN3 account login
Two login flows, both multi-account (one session per email), ending with a locally saved session:
# Default (free email-OTP)
aqua jan3 login --email you@example.com # emails an OTP
aqua jan3 verify --email you@example.com --otp 123456
# Fallback (paid captchaless), for accounts that can't use the free flow
aqua jan3 login-start --email you@example.com --wallet-name default --password-stdin
aqua jan3 login-complete --email you@example.com --otp 123456Once logged in:
aqua jan3 list-sessions
aqua jan3 user-info --email you@example.com
aqua jan3 logout --email you@example.comConfiguration
Default config location: ~/.aqua/config.json
Migrating from
aqua-mcp? The config dir moved from~/.aqua-mcpto~/.aqua. There is no automatic migration. To carry over your wallets, run once:mv ~/.aqua-mcp ~/.aqua
{
"network": "mainnet",
"default_wallet": "default",
"electrum_url": null,
"auto_sync": true
}Security
Seeds are encrypted at rest using a password (PBKDF2 + Fernet). Without a password, the seed is stored base64-encoded only — use a password for real funds. Note: this password is NOT a BIP39 passphrase; the derived Liquid/Bitcoin keys depend solely on the seed, so the same seed restores identical descriptors in any BIP39-compliant wallet (AQUA, Blockstream App, Jade, etc.).
For maximum security you can:
Generate wallet on an air-gapped device
Export the CT descriptor
Import as watch-only on your daily machine
All private key operations happen locally. Only blockchain sync uses Blockstream's public servers.
Development
# Install with dev dependencies
uv python install 3.13
uv sync --python 3.13 --all-extras
# Run tests
uv run --python 3.13 python -m pytest tests/
# Format code
uv run black src/
uv run ruff check src/Architecture
AI Assistant ←→ MCP Server (Python) ←→ LWK (Liquid) ──→ Electrum/Esplora
│
├──→ BDK (Bitcoin) ──→ Esplora (Blockstream)
│
└──→ Boltz / Ankara ──→ LightningCredits
Built with:
Available Tools
71 toolsbtc_addressA
Generate a Bitcoin receive address (bc1...). Also returns qr_code_path: a PNG QR of the address — display it to the user so they can scan it.
| Name | Required | Description | Default |
|---|---|---|---|
| index | No | Specific address index (optional) | |
| wallet_name | No | Name of the wallet | default |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses additional output (qr_code_path) beyond schema. With no annotations, description carries full burden; it addresses the QR return but lacks details on determinism or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first for purpose, second for output. Concise and front-loaded with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple tool; description covers address generation and QR output. Could mention index reuse behavior, but adequate given no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description does not add meaning to parameters beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'Generate' with resource 'Bitcoin receive address' and format detail 'bc1...'. Distinguishes from sibling tools like btc_balance, btc_send, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like lightning_receive or lw_address for other networks. No when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
btc_balanceB
Get Bitcoin wallet balance in Satoshis
| Name | Required | Description | Default |
|---|---|---|---|
| wallet_name | No | Name of the wallet | default |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose any behavioral traits such as error handling, latency, or authentication needs. It only states what it does, not how it behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words. The description is appropriately sized for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description is incomplete. It does not mention return format, possible errors, or what happens if the wallet does not exist. For a simple tool, more context would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers the single parameter with a default and description. The description adds no further meaning beyond the schema, which is already clear. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get'), the resource ('Bitcoin wallet balance'), and the unit ('Satoshis'). It is specific and distinguishes from sibling tools like btc_address or btc_send.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like lw_balance or unified_balance. There is no mention of context or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
btc_export_descriptorA
Export the Bitcoin BIP84 descriptors + xpub for a wallet. ONLY returns Bitcoin — for the Liquid CT descriptor (different derivation path + SLIP-77 blinding key), use lw_export_descriptor.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet_name | No | Name of the wallet | default |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries burden. It mentions what is exported but does not disclose whether it is read-only, prerequisites (wallet must exist), or output format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first states purpose, second provides usage guidance. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter, description is sufficient. Could mention output format but not necessary given no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Single parameter wallet_name with default, fully described in schema. Description adds no extra meaning beyond schema, so baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it exports Bitcoin BIP84 descriptors and xpub for a wallet. Distinguishes from sibling lw_export_descriptor by specifying Bitcoin only.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use this tool vs. lw_export_descriptor for Liquid, including different derivation path and blinding key.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
btc_import_descriptorA
Import a watch-only Bitcoin wallet from a BIP84 descriptor. ONLY imports Bitcoin — to monitor the same seed's Liquid wallet, the user must separately import its CT descriptor with lw_import_descriptor (different derivation path + SLIP-77 key).
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | Network to use | mainnet |
| descriptor | Yes | BIP84 external descriptor (with or without [fp/path] prefix) | |
| wallet_name | Yes | Wallet name (may add Bitcoin to an existing Liquid-only wallet) | |
| change_descriptor | No | Optional change descriptor; auto-derived from external if omitted (replaces /0/* with /1/*) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry behavioral info. It mentions 'watch-only' implying no private key access, but does not disclose side effects (e.g., adding to existing wallet), prerequisites, or error handling. Adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences that front-load the core verb and resource, with no wasted words. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description lacks information about return values or success confirmation. It mentions only the action, leaving the user to infer outcomes. Adequate for a simple import, but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no extra parameter-specific details beyond what the schema already provides, so it meets the baseline but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool imports a watch-only Bitcoin wallet from a BIP84 descriptor, and explicitly distinguishes from the Liquid counterpart lw_import_descriptor, leaving no ambiguity about its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool (import Bitcoin) and when not to (Liquid should use lw_import_descriptor), providing clear alternatives and context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
btc_sendC
Send BTC to an address
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount in Satoshis | |
| address | Yes | Destination Bitcoin address (bc1...) | |
| fee_rate | No | Optional fee rate in Sat/vB | |
| password | No | Password to decrypt mnemonic (if encrypted at rest) | |
| wallet_name | Yes | Name of the wallet |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description fails to disclose behavioral aspects such as wallet unlock requirements, transaction confirmation behavior, or error handling. The agent gets no safety or side-effect context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is too brief for a tool with 5 parameters and no output schema. It sacrifices necessary detail for brevity, resulting in under-specification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema is provided, and the description does not explain the return value, success/failure indicators, or side effects. The agent lacks sufficient context to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are self-documented. The tool description adds no additional meaning beyond what is already in the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (send BTC) and target (address), but it does not differentiate from other send tools like lightning_send or lw_send, lacking specificity about the Bitcoin mainchain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternative send tools (e.g., lightning_send, sideshift_send). No prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
btc_sweepA
Sweep the entire Bitcoin balance to one address. Fee is deducted from the inputs — leaves 0 sats in the wallet. Use this whenever the user says 'send all', 'sweep', 'drain', 'empty wallet', or 'move everything' on Bitcoin.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Destination Bitcoin address (bc1...) | |
| fee_rate | No | Optional fee rate in Sat/vB | |
| password | No | Password to decrypt mnemonic (if encrypted at rest) | |
| wallet_name | Yes | Name of the wallet |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses key behavioral traits: fee deducted from inputs and resulting balance of 0 sats. With no annotations, this is helpful but could further mention irreversibility or the need for unlocked wallet.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The purpose is front-loaded, and every sentence adds value. Ideal conciseness for a tool description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the core operation well, but lacks mention of return value (e.g., transaction ID) or error conditions. Since no output schema exists, the description could be more complete about what the agent can expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds context to fee_rate by noting it's deducted from inputs. This goes beyond the schema's standalone description, enhancing parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'sweep' and the resource 'entire Bitcoin balance to one address'. It distinguishes from siblings like btc_send by specifying 'entire balance' and providing common user phrases that trigger this tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly lists user commands that should trigger this tool ('send all', 'sweep', 'drain', 'empty wallet', 'move everything'), providing clear when-to-use guidance. It also implies when not to use (for partial sends) by contrasting with btc_send.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
btc_transactionsA
Get Bitcoin transaction history
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of transactions | |
| wallet_name | No | Name of the wallet | default |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure, but only states 'Get Bitcoin transaction history', lacking details on side effects, permissions, pagination, or return format. This is insufficient for a tool with no other metadata.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no unnecessary words. It efficiently communicates the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and schema covering parameters, the description is passable but incomplete. It does not describe the return value (no output schema), which could aid agent understanding. However, the agent can infer transactions are listed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers both parameters (limit and wallet_name) with descriptions, achieving 100% coverage. The description adds no extra meaning beyond the schema, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'Bitcoin transaction history', which is specific and distinct from sibling tools like btc_balance (balance) and btc_send (transactions).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving transaction history, but provides no explicit guidance on when to use it versus alternatives or when not to use it. The context of sibling tools suggests it's for historical data, but no exclusions or prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
changelly_list_currenciesA
List the currencies Changelly supports (Changelly's own asset id format). Useful for discovery; the agentic-aqua surface only enables the curated USDt-Liquid ↔ USDt-on-{ethereum,tron,bsc,solana,polygon} pairs for actual swaps.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description discloses that the list uses Changelly's own asset id format and that not all listed currencies are swappable. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no filler. Every sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, the description adequately covers purpose, format, and usage context. No output schema needed for a simple list.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so baseline is 4. The description adds value by explaining the output format and context, fully compensating for absence of parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool lists currencies supported by Changelly, mentions the asset id format, and distinguishes from sibling tools by noting that only specific pairs are usable for swaps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says the tool is useful for discovery, and clarifies that actual swaps are limited to curated USDt pairs, guiding when to use this tool vs other swap-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
changelly_quoteA
Get a fixed-rate Changelly quote for a USDt-Liquid ↔ USDt-on-X swap. Provide exactly one of deposit_amount or settle_amount as a decimal string. Use BEFORE changelly_send to confirm the price with the user.
| Name | Required | Description | Default |
|---|---|---|---|
| amount_to | No | Settle-side amount (decimal string) | |
| direction | No | 'send' = deposit USDt-Liquid; 'receive' = deposit USDt on external chain | send |
| amount_from | No | Deposit-side amount (decimal string) | |
| external_network | Yes | USDt network on the non-Liquid side |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only mentions 'fixed-rate' but omits behavioral traits like quote expiration, authorization needs, rate limits, or that it is a read-only operation. Minimal disclosure beyond basic functionality.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences deliver essential information: what the tool does, key parameters, and ordering context. No unnecessary words or redundancies.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks output schema, and description does not describe return values (e.g., quote details, rate, or validity). While it covers primary usage, the absence of output expectations is a gap. Adequate but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds critical usage clarity: mutual exclusivity of amount_from/amount_to and decimal string format. Enhances understanding beyond schema, aligning with the tool's intended use.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it gets a fixed-rate Changelly quote for a specific asset pair (USDT-Liquid ↔ USDT-on-X). Distinguishes from sibling tools like changelly_send and changelly_list_currencies through context about sequencing and asset pairing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to provide exactly one of deposit_amount or settle_amount and to use before changelly_send for price confirmation. Provides clear context but does not mention exclusions or alternatives to Changelly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
changelly_receiveA
Receive USDt-Liquid via a Changelly variable-rate swap. Returns a deposit address on the source chain — the external sender pays to it. Settles to the wallet's Liquid address as USDt-Liquid. STRONGLY RECOMMEND passing external_refund_address. Also returns qr_code_path: a PNG QR of the deposit address — display it to the user so they can scan it.
| Name | Required | Description | Default |
|---|---|---|---|
| amount_to | No | Amount to receive in the wallet (decimal string). Mutually exclusive with amount_from. | |
| amount_from | No | Amount the external sender will deposit (decimal string, e.g. '50'). Mutually exclusive with amount_to. | |
| wallet_name | No | default | |
| external_network | Yes | Source USDt network the external sender pays from | |
| external_refund_address | No | Source-chain refund address (strongly recommended) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the variable-rate swap, deposit address generation, and QR output. However, missing details on swap expiration, rate lock, slippage, or consequences of omitting the refund address. Basic behavior is covered but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loading the main purpose and key output. It uses clear sentences with no wasted words. Slightly longer than necessary, but still efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the basic flow and outputs (deposit address, QR code) despite no output schema. However, missing details on swap lifecycle (timeouts, failures), amount constraints, and error handling. Adequate but has gaps for a tool with 5 parameters and no annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is high (80%), so baseline is 3. The description adds minimal value beyond the schema, only strongly recommending external_refund_address. No explanation of amount_to/amount_from mutual exclusivity or enum values, so it meets the minimum.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool receives USDt-Liquid via a Changelly variable-rate swap, specifying the returned deposit address and settlement to wallet's Liquid address. It distinguishes from sibling tools like changelly_send and sideshift_receive by naming the specific asset and provider.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context: the external sender pays the deposit address, and strongly recommends external_refund_address. However, it does not explicitly mention when not to use (e.g., for fixed-rate swaps) or list alternatives, though the flow is well-described.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
changelly_sendA
Send USDt-Liquid out via a Changelly fixed-rate swap. Gets a quote, creates the order, and broadcasts the deposit from the local wallet. Refund address is set automatically (the wallet's own Liquid address). ALWAYS call changelly_quote first and confirm the price with the user.
| Name | Required | Description | Default |
|---|---|---|---|
| rate_id | No | Rate id from a prior changelly_quote call — pass this to lock the previewed rate and avoid drift | |
| password | No | Password to decrypt mnemonic (if encrypted at rest) | |
| amount_to | No | Amount the recipient should receive (decimal string). Mutually exclusive with amount_from. Use this to pay fees from the sender side, matching AQUA APK behavior. | |
| amount_from | No | USDt-Liquid to send (decimal string, e.g. '100'). Mutually exclusive with amount_to. | |
| wallet_name | No | default | |
| settle_address | Yes | External chain address to receive USDt at | |
| external_network | Yes | Target USDt network |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description should fully disclose behavior. It outlines the workflow (quote, order, broadcast) and automatic refund address, but lacks details on error handling, fee implications, or what happens after broadcast. Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with a clear imperative, no unnecessary words. Efficiently conveys critical information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, so description should explain returns. It states 'broadcasts the deposit' but not the response format or next steps. Also lacks mention of error states. Sufficient for basic understanding but incomplete for robust agent usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 86%, so baseline 3. Description does not significantly add meaning beyond schema; it mentions refund address automation but no param details. No compensation for the 14% uncovered parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action (send), resource (USDt-Liquid via Changelly fixed-rate swap), and the sub-steps (get quote, create order, broadcast deposit). Distinguishes from siblings like changelly_quote (prerequisite) and sideshift_send (different service).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to always call changelly_quote first and confirm with user, providing a clear prerequisite and usage context. Implicitly distinguishes from other send tools in sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
changelly_statusA
Check the status of a Changelly swap order. Returns is_final / is_success / is_failed booleans. State machine: new → waiting → confirming → exchanging → sending → finished. Failure: failed, refunded, expired, overdue.
| Name | Required | Description | Default |
|---|---|---|---|
| order_id | Yes | ID from changelly_send or changelly_receive |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Clearly states return booleans (is_final, is_success, is_failed) and state machine with possible statuses. No side effects mentioned, but tool is inherently read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences plus a state machine list; no unnecessary words. Efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers essential information for a status-check tool with one parameter and no output schema. Could mention typical polling behavior or expected response format, but adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% description coverage for the only parameter. Description does not add extra semantic meaning beyond the schema's 'ID from changelly_send or changelly_receive'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Verb 'check' and resource 'status of a Changelly swap order' clearly indicate functionality. Distinct from sibling tools like changelly_send and changelly_receive, which create orders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies use after initiating a swap but does not explicitly state when or when not to use. No mention of alternatives like sideshift_status for other services.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_walletA
Delete a wallet and all its cached data. IMPORTANT: The agent MUST check balances and ask for user confirmation before calling this tool. Use the 'delete_wallet' prompt for the safe workflow.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet_name | Yes | Name of the wallet to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden. It discloses the destructive action (delete) and that cached data is removed. The confirmation requirement signals irreversibility, though no details on error handling or permissions are provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences, front-loaded with purpose, followed by critical guidelines. No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool (one parameter, no output schema), the description covers the essential behavioral context (destructive, needs confirmation). Lacks details on failure modes, but sufficient for safe usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (parameter 'wallet_name' described as 'Name of the wallet to delete'). The tool description adds no extra semantic value for the parameter, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (delete) and resource (wallet and its cached data). While it doesn't explicitly distinguish from sibling tools, the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs the agent to check balances and ask for user confirmation before calling, and references a specific safe workflow ('delete_wallet' prompt). Provides clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jan3_enable_lightning_addressA
Enable or disable the user's Lightning Address. Ask the user first: enabling means JAN3/AQUA delivers inbound Lightning payments to their Lightning Address by handing out a batch of Liquid receive addresses this tool registers (received BTC lands on those stored Liquid addresses). On enable, the pool is populated immediately (best-effort, under ln_address_pool). Requires a prior JAN3 login.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | |||
| enabled | Yes | True to opt in (and populate the pool), False to opt out. | |
| wallet_name | No | Liquid wallet whose addresses back the pool. | default |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description explains the enabling mechanism (batch of Liquid addresses, best-effort pool population), prerequisites, and the need for user consent. It does not disclose potential side effects like costs or rate limits, which prevents a higher score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (3 sentences) and front-loaded with the main action. It provides necessary detail without fluff. Could benefit from structured bullet points, but current form is effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema and moderate complexity, the description covers the mechanism, prerequisites, and user authorization. It is reasonably complete for an agent to understand and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67% (2 of 3 parameters have descriptions). The description adds context about 'ln_address_pool' and Liquid addresses but does not significantly enhance parameter meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Enable or disable the user's Lightning Address.' It provides specific context about what enabling entails (delivering inbound payments via Liquid addresses) and distinguishes it from other jan3 tools like login or user_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Ask the user first' and 'Requires a prior JAN3 login,' giving clear usage context. However, it does not explicitly state when not to use this tool or compare it to alternatives, which would merit a higher score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jan3_list_sessionsA
List all persisted JAN3 sessions (metadata only, no tokens).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description bears full burden. It discloses that only metadata is returned and no tokens, which is a key behavioral trait. However, it could further clarify read-only nature or response structure, but given simplicity, it's adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words, front-loaded with verb and resource. Perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, no output schema, and simple listing task, the description fully informs the agent what the tool does. It is complete for its context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, and schema coverage is 100% (empty schema). Baseline for 0 params is 4. The description adds no parameter info, but none needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'List' and resource 'all persisted JAN3 sessions', with a clear behavioral qualifier 'metadata only, no tokens'. It clearly distinguishes from siblings like jan3_session_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context signals show sibling tools like jan3_session_info, implying differentiation but the description does not explicitly state when to use or alternatives. The usage is clear but lacks explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jan3_ln_check_usernameA
Check whether a Lightning username is free before buying it. Call before jan3_purchase_ln_username to avoid paying for a username that's already taken. Requires an active JAN3 session for the email.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | |||
| ln_username | Yes | Desired username (the local part, before the @domain). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden for behavioral disclosure. It mentions the session requirement but does not describe what happens on success/failure (e.g., returns boolean vs error), nor any side effects or limitations. This is a basic level of transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences, front-loading the purpose and then providing usage guidance and prerequisites. Every sentence serves a purpose with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (check username availability) and absence of output schema, the description could be more complete by indicating the return format (e.g., 'returns true if available'). It currently leaves the agent to infer the behavior, which is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%, with only 'ln_username' having a description in the schema. The overall description adds context that the email must have an active session, but does not elaborate on parameter meaning beyond the schema. Baseline score of 3 is appropriate as the description moderately supplements the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks if a Lightning username is free, with a specific verb ('Check whether') and resource ('Lightning username'). It distinguishes itself from the sibling tool jan3_purchase_ln_username by indicating it should be called before buying, providing clear differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides usage guidance: 'Call before jan3_purchase_ln_username to avoid paying for a username that's already taken.' Also states a prerequisite: 'Requires an active JAN3 session for the email.' This clearly tells the agent when and with what context to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jan3_loginA
Default JAN3 login (free, email-OTP): the backend emails a 6-digit OTP to the user's address. Prefer this over the paid captchaless fallback (jan3_login_start). Follow up with jan3_verify.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | User's JAN3 account email address. | ||
| language | No | OTP email language. | en |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes key behavior (sends OTP email) and free nature, but lacks details on side effects, rate limits, or idempotency. With no annotations, more depth would help.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with essential information, no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Sufficient for a simple login tool with two parameters; covers purpose, workflow, and alternative. Could mention return values or async behavior but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with descriptions for both parameters; description adds no extra parameter-level meaning beyond what schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it's for login via email-OTP, distinguishes from sibling jan3_login_start, and specifies the mechanism (emails 6-digit OTP).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to prefer over jan3_login_start and directs to follow up with jan3_verify, providing clear usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jan3_login_completeA
Step 2 of the paid captchaless login. Exchanges the OTP for JWT tokens and saves the session to ~/.aqua/jan3/{email}.json (0o600). Only token previews are echoed back — never the full tokens. The result's next_step cues you to offer the user the Lightning Address opt-in (jan3_enable_lightning_address).
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Must match the email used in jan3_login_start. | ||
| otp_code | Yes | OTP code from the verification email. | |
| fingerprint | No | Optional device fingerprint string. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses key behavioral traits: session file saved with restrictive permissions (0o600), token previews only (security measure), and next_step hint. It could mention potential errors but is sufficiently transparent for a login step.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, each adding essential context: role in flow, core action, security behavior, and next step. No unnecessary words, and the most critical info (step number and purpose) comes first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's role in a two-step login process with security implications, the description covers purpose, sequencing, file persistence, token handling, and next action. Despite no output schema, the description sufficiently sets expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all parameters. The description does not add additional meaning beyond what the schema provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Exchanges the OTP for JWT tokens and saves the session' with specific file path and permissions. It distinguishes itself as 'Step 2' of the captchaless login, differentiating from jan3_login_start and jan3_login.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly positions this as the second step of a multi-step process and mentions that the result cues the user to use jan3_enable_lightning_address. However, it does not provide explicit exclusion criteria or compare with jan3_login.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jan3_login_startA
Fallback JAN3 login (paid captchaless) — use only when the free jan3_login email-OTP flow isn't available for the account. Step 1: crafts a signed L-BTC tx funding AQUA's vault for the CAPTCHALESS_LOGIN price, POSTs it to /api/v2/auth/login/, and the server emails an OTP. Then call jan3_login_complete.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | JAN3 account email — will receive the OTP. | ||
| language | No | 2-letter language code for the OTP email. | en |
| password | No | Decrypts the wallet mnemonic if encrypted at rest. | |
| wallet_name | No | Liquid wallet used to fund the login payment. | default |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes the process: crafts signed L-BTC tx, posts to endpoint, server emails OTP. Discloses it's a paid step. Lacks info on failure modes or side effects, but otherwise transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose and usage, no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the step's purpose, prerequisite, and next step. No output schema, but the process is clear enough for an agent to use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage 100% with descriptions; description adds context like email receives OTP, password decrypts wallet, wallet_name funds payment.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it's a fallback login method (paid captchaless) and explains the first step of crafting a signed L-BTC tx. It distinguishes from the free email-OTP flow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'use only when the free jan3_login email-OTP flow isn't available for the account' and directs to call jan3_login_complete next.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jan3_logoutB
Delete a persisted JAN3 session file. Idempotent.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states it is 'idempotent,' which is helpful behavioral info. However, no annotations are provided, so the description carries the full burden. It does not mention side effects (e.g., invalidating sessions) or security implications (e.g., auth required). This is adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (two sentences), no wasted words. It front-loads the action and idempotency. Could optionally add 'logs out the user' for clarity, but current length is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one param, no output schema, no annotations), the description is minimally adequate. However, it lacks context such as return values or confirmation of success, and does not clarify the relationship to session management tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one required parameter 'email' with 0% description coverage. The description does not explain the role of email, e.g., that it identifies which session to delete. The agent might guess from the tool name, but schema alone leaves ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it deletes a persisted JAN3 session file, which effectively logs out the session. The verb 'delete' and resource 'session file' are specific, and it distinguishes from sibling tools like jan3_login or jan3_session_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs alternatives such as jan3_login_start or jan3_login_complete. An agent would not know if this is the appropriate logout action or if there are prerequisites (e.g., must be logged in).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jan3_purchase_ln_usernameA
Purchase / update the Lightning username for a JAN3 account with an on-chain payment (fund in L-BTC or USDt). TWO-STEP, do NOT pass confirm=true first: (1) call with confirm=false (default) to get a price quote WITHOUT spending — the server locks the price on that order; it returns display_amount (already formatted for the user, e.g. '2000 Sats' for L-BTC or '1.50 USDT' for USDt), amount_base_units (technical), amount, asset_ticker, payment_id and expires_at; SHOW display_amount to the user and get explicit consent; (2) only then call with confirm=true — it funds exactly the quoted order (same payment_id and amount) and errors if the quote expired (re-quote and re-confirm). When telling the user the price, use display_amount verbatim — never surface the raw amount/amount_base_units. Check availability first with jan3_ln_check_username. Requires an active JAN3 session (either flow).
| Name | Required | Description | Default |
|---|---|---|---|
| asset | No | Funding asset — 'L-BTC' or 'USDt'. Ask the user which they prefer; the price is quoted in that asset. | L-BTC |
| Yes | |||
| confirm | No | False (default) returns a non-spending price quote; True funds the previously quoted order. Only set True after the user approves the quoted display_amount. | |
| password | No | Decrypts the wallet mnemonic if encrypted at rest (only needed when confirm=true). | |
| ln_username | Yes | Desired username (the local part, before the @domain). | |
| wallet_name | No | Liquid wallet used to fund the purchase. | default |
| expected_amount_base_units | No | With confirm=true and no prior quote, the amount_base_units the user approved; the purchase aborts (nothing spent) if the current price exceeds it. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It discloses the two-step locking behavior, quote expiration, error conditions, and return values. However, it could be more explicit about updating vs. new purchase and any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with numbered steps and warnings. It is slightly verbose but every sentence earns its place given the tool's complexity. Could be slightly more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters and no output schema, the description is highly complete. It explains the flow, return values, failure conditions, and mentions prerequisite (active session). Minor gap: no details on update vs. purchase behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 86%, and the description adds significant value beyond schema. It explains the asset choice, confirm parameter role, password necessity, and expected_amount_base_units safety feature, making each parameter's purpose clear in the two-step flow.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Purchase / update the Lightning username for a JAN3 account with an on-chain payment'. It distinguishes from the sibling tool 'jan3_ln_check_username' by instructing to check availability first.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly outlines the two-step process, warns against passing confirm=true first, and details when to call each step. It also advises checking availability with jan3_ln_check_username, providing clear usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jan3_rebind_walletA
Re-bind the account's Lightning Address to a different local wallet (the only path that passes override_fingerprint). DESTRUCTIVE: it moves inbound Lightning delivery to wallet_name and stops delivery to the previously-bound wallet. Use when the account is bound to a wallet you no longer have (new seed, old JAN3 account) or to switch which wallet receives funds. TWO-STEP HANDSHAKE — do NOT pass confirm=true first: (1) call with confirm=false to get a non-mutating preview (ln_username, current_fingerprint->new_fingerprint, warning), SHOW the warning and get explicit user consent; (2) only then call with confirm=true to execute. The ln_username shown is the Lightning Address (a user@domain), it isn't the account login email, never substitute one for the other.already_bound=true means it was a no-op. Requires a prior JAN3 login.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | JAN3 account email (identifies the account/session). | ||
| confirm | No | False previews without mutating; True executes the re-bind (override). Only set True after explicit user consent. | |
| wallet_name | No | Local Liquid wallet to bind LN delivery to. | default |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully bears the burden of behavioral disclosure. It explicitly labels the tool as DESTRUCTIVE, describes the side effect (moves inbound Lightning delivery to wallet_name, stops delivery to previously-bound wallet), and explains the no-op case (already_bound=true). It also clarifies that ln_username is not the email and that prior JAN3 login is required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections: purpose, destructive warning, use cases, step-by-step procedure, and important clarifications. Every sentence adds value and there is no redundancy. It is front-loaded with the core action and then provides necessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (two-step handshake, destructive, requires prior login, no output schema), the description is remarkably complete. It explains preview outputs (ln_username, current_fingerprint->new_fingerprint, warning), the meaning of already_bound, and the distinction between Lightning Address and email. An agent has all the information needed to decide when and how to invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although the input schema already describes all three parameters with 100% coverage, the description adds significant procedural context: it explains the two-step flow for confirm (false=preview, true=execute), notes that wallet_name defaults to 'default', and clarifies that email identifies the account/session. This enhances understanding beyond the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool's purpose: re-binding the account's Lightning Address to a different local wallet. It uses a specific verb ('Re-bind') and resource ('Lightning Address to a different local wallet'), and distinguishes itself from siblings like jan3_enable_lightning_address by noting it is 'the only path that passes override_fingerprint'. This leaves no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear when-to-use scenarios: when the account is bound to a wallet you no longer have (new seed, old JAN3 account) or to switch which wallet receives funds. It also gives a detailed two-step handshake procedure, explicitly stating not to pass confirm=true first and to show the warning for consent. This guides correct invocation and prevents misuse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jan3_session_infoA
Return non-sensitive info about a persisted JAN3 session (base_url, created_at, captcha_exempt, token previews).
| Name | Required | Description | Default |
|---|---|---|---|
| Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It clearly states 'non-sensitive info', implying read-only and safe. It lists the fields returned. However, it does not disclose error conditions (e.g., session not found) or authentication requirements. Given the simple read-only nature, transparency is good overall but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with verb and resource, efficient. Could be slightly improved by explicitly noting the input parameter, but overall well-structured for its length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Low complexity (one parameter, no output schema). Description covers what info is returned (list of fields). Missing return format details or error handling would be nice but not critical for a simple info retrieval tool. Adequate given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has one required parameter 'email' (format email) with 0% description coverage. The description does not mention 'email' or explain how it identifies the session. It adds no meaning beyond the schema's type/format, failing to compensate for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Return' and the resource 'non-sensitive info about a persisted JAN3 session'. It lists specific fields (base_url, created_at, captcha_exempt, token previews), which distinguishes it from sibling tools like jan3_list_sessions (which lists sessions) and jan3_user_info (likely user-level info).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance. The description implies it provides session details, but does not compare to alternatives like jan3_list_sessions or mention prerequisites or context (e.g., session must exist). Purpose clarity partially compensates, but explicit guidance is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jan3_user_infoA
Get the AQUA account profile (email, ln_username, fingerprint, feature flags). The ln_username field is the user's full Lightning Address as returned by the backend — surface it verbatim, never append a domain. Carries the LN-address state (ln_address_toggled, new_addresses_needed, fingerprint). When LN-address is active this auto-tops-up the unused-address pool (best-effort, under ln_address_pool). Requires a prior JAN3 login for the email.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | |||
| wallet_name | No | Liquid wallet whose addresses back the LN-address pool. | default |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It discloses side effects (auto-tops-up unused address pool under certain conditions, best-effort), conditions (requires prior login), and fields returned. However, the mutability of the tool is not explicitly stated (e.g., read-only vs. write).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five sentences front-loaded with purpose. Includes a critical handling instruction for ln_username and a behavioral note. Could be slightly trimmed, but overall efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description covers return fields (email, ln_username, fingerprint, feature flags) and side effects, but it does not explain error modes or the format of feature flags. Some ambiguity about 'carries the LN-address state'—whether that is part of the return or a separate context. Adequate but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 2 parameters: email and wallet_name. Description adds context for email (requires prior login) but does not mention wallet_name at all. With 50% schema coverage, the description marginally compensates, but the undocumented wallet_name reduces value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it gets the AQUA account profile with specific fields (email, ln_username, fingerprint, feature flags). The verb 'Get' and resource 'AQUA account profile' are specific, and it distinguishes from sibling tools that focus on sessions or login.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Specifies a prerequisite ('Requires a prior JAN3 login for the email.') and explains the ln_username field handling, but does not explicitly state when to use this tool vs. alternatives like jan3_list_sessions or jan3_session_info. No exclusions or when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jan3_verifyA
Verify the OTP emailed by jan3_login and persist the JAN3 session for that email (multi-account, 0o600). Ask the user for the 6-digit code from their email. The result's next_step cues you to offer the user the Lightning Address opt-in (jan3_enable_lightning_address).
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Same email used in jan3_login. | ||
| otp_code | Yes | 6-digit code from the email. | |
| fingerprint | No | Optional device fingerprint string. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses key behaviors: persisting the session, multi-account nature, and a 0o600 permission. However, it does not detail what happens on invalid OTP, potential side effects (e.g., overwriting), or authorization needs. Adequate but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (three sentences) and front-loaded. The first sentence states the core function, the second instructs the agent's action, and the third outlines the expected follow-up. No redundant or irrelevant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a verification tool with three parameters and no output schema, the description covers purpose, input, effect, and next step. It lacks error handling or retry guidance, but is otherwise sufficient for an agent to use it correctly. Good completeness given the minimal annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage with descriptions for all three parameters. The description adds context by instructing to ask for the 6-digit code, but does not provide new meaning or constraints beyond the schema's existing descriptions. Baseline score of 3 applies per rubric.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to verify the OTP emailed by jan3_login and persist the JAN3 session. It uses specific verbs ('Verify', 'persist') and explicitly mentions the resource (OTP, email). It also distinguishes from siblings like jan3_login and jan3_login_complete by detailing the follow-up action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by instructing the agent to ask the user for the 6-digit code from their email, implying it is used after jan3_login. It also mentions the next step (offering Lightning Address opt-in), but lacks explicit guidance on when not to use or direct comparisons with alternative tools. However, the sibling list helps inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lightning_decodeA
Decode a BOLT11 Lightning invoice without paying it. Returns amount_sats (null for zero-amount invoices), description/message, and expiry_seconds.
| Name | Required | Description | Default |
|---|---|---|---|
| invoice | Yes | BOLT11 Lightning invoice string (lnbc... for mainnet, lntb... for testnet) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries burden. It reveals non-destructive behavior and return fields (amount_sats, description, expiry_seconds). Adequate for a decode tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence front-loads core action and lists key return fields. No wasted words; every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one parameter and no output schema, the description fully explains the tool's purpose and return values, making it complete for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and already describes the invoice parameter format. Description adds no extra semantics beyond the schema, meeting baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'decode' and resource 'BOLT11 Lightning invoice', and distinguishes from sibling tools like lightning_send by noting 'without paying it'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly states when to use (decode without payment) and what it returns. Could be improved by explicitly naming alternatives like lightning_send for payment.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lightning_receiveA
Generate a Lightning invoice to receive L-BTC into a Liquid wallet (~1-2 min after payment). Limits: 100 – 25,000,000 Sats. Also returns qr_code_path: a PNG QR of the invoice — display it to the user so they can scan it.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount in Satoshis (100 – 25,000,000) | |
| password | No | Password to decrypt mnemonic (if encrypted at rest) | |
| wallet_name | No | Liquid wallet to receive into | default |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the QR code return and time estimate, but does not mention authentication needs, rate limits, or what happens with encrypted wallets (password parameter). The 'generate' verb implies non-destructive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose and key details (limits, time, QR). Every sentence is valuable and no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description partially covers return value (qr_code_path) but omits other potential fields like invoice string or expiration. However, for a simple receive tool, it is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description mentions amount limits and QR code, but adds little beyond the schema's parameter descriptions. No additional semantic meaning for password or wallet_name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it generates a Lightning invoice to receive L-BTC, with limits and a note about the QR code. This distinguishes it from siblings like lightning_send (send) and lightning_decode (decode).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context on usage: receiving L-BTC, time estimate (~1-2 min), and instructs to display QR to user. However, it does not explicitly state when not to use it or compare to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lightning_sendA
Pay a Lightning invoice or Lightning Address using L-BTC from a Liquid wallet (reverse submarine swap). Fees: ~0.1% + miner fees. Limits: 100 – 25,000,000 Sats.
| Name | Required | Description | Default |
|---|---|---|---|
| invoice | Yes | BOLT11 Lightning invoice (lnbc.../lntb...) OR Lightning Address (user@domain.com) | |
| password | No | Password to decrypt mnemonic (if encrypted at rest) | |
| amount_sats | No | Amount in sats. Required when invoice is a Lightning Address; optional for BOLT11 (must match if supplied). | |
| wallet_name | No | Liquid wallet to pay from | default |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the destructive nature (payment) and mentions fees and limits, but does not address failure modes, reversibility, or post-payment confirmation. While adequate, it could be more transparent about behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no fluff, immediately stating the purpose and then providing fees and limits. Every sentence adds value, and it is front-loaded with the key action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and the complexity of a reverse submarine swap payment, the description covers essential elements (what it pays, fees, limits) but lacks details on outcome confirmation, failure reasons, or time expectations. It is mostly complete for a payment tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions (invoice, password, amount_sats, wallet_name). The tool description adds little beyond the schema, only repeating that the invoice can be BOLT11 or Lightning Address. Baseline 3 is appropriate since schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool pays a Lightning invoice or Lightning Address using L-BTC from a Liquid wallet, specifying the mechanism (reverse submarine swap). It uniquely identifies this tool among siblings like lightning_receive (receive), lw_send (Liquid asset send), and btc_send (Bitcoin on-chain).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for paying Lightning invoices/addresses with L-BTC, and provides fees and limits, but does not explicitly state when to use this tool versus alternatives or when not to use it. The sibling list provides context but the description itself lacks direct guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lightning_transaction_statusA
Check the status of a Lightning swap (send or receive). For receive: auto-claims L-BTC when settled. For send: checks Boltz status and retrieves preimage when claimed.
| Name | Required | Description | Default |
|---|---|---|---|
| swap_id | Yes | Swap ID returned from lightning_receive or lightning_send |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behaviors. It does so by noting that for receive swaps it auto-claims L-BTC when settled, and for send it checks Boltz status and retrieves preimage. This adds useful context about side effects and success criteria, though it omits details like auth requirements or error states.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two brief sentences that front-load the purpose and efficiently detail send vs receive behavior. Every word contributes meaning with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple single-parameter schema, no output schema, and straightforward task of checking a swap status, the description covers the essential scenarios (send and receive) with relevant behavioral details. It is sufficiently complete for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the single parameter swap_id described as 'Swap ID returned from lightning_receive or lightning_send'. The description adds minimal extra meaning beyond that, only implicitly confirming the origin of the swap_id. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks the status of a Lightning swap, distinguishing between send and receive. It uses specific verbs ('Check the status') and resource ('Lightning swap'), and differentiates it from sibling tools like lightning_receive/send which initiate swaps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (after initiating a Lightning swap) and briefly differentiates send vs receive behavior. However, it does not explicitly state when not to use it or mention alternatives like changelly_status or sideshift_status for non-Lightning swaps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lw_addressB
Generate a receive address. Also returns qr_code_path: a PNG QR of the address — display it to the user so they can scan it.
| Name | Required | Description | Default |
|---|---|---|---|
| index | No | If index is omitted, returns the next unused receive address (idempotent). Specifying an index gets the address at that index. | |
| wallet_name | No | Name of the wallet | default |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions idempotency when index is omitted, which is helpful. However, with no annotations, it fails to disclose other behavioral traits such as permissions, side effects, or rate limits. The QR code return is noted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences. It front-loads the main purpose and includes the key output detail (qr_code_path) without extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks details about the return format beyond the QR code path. With no output schema, the agent may need to infer the structure of the address and other possible fields. It is adequate but not comprehensive for a parameter-free tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds limited value beyond the schema. It repeats the idempotent behavior of the index parameter but does not explain wallet_name or any parameter constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'Generate a receive address' and mentions the QR code output. The verb-resource is specific, but it does not differentiate from siblings like btc_address or lightning_receive, which serve similar purposes for different networks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as btc_address or lightning_receive. No context is provided for when to omit the index or specify it beyond the schema description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lw_balanceA
Get wallet balance for all assets (L-BTC, USDT, etc.)
| Name | Required | Description | Default |
|---|---|---|---|
| wallet_name | No | Name of the wallet | default |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries burden. It indicates a read operation ('Get') but lacks details on side effects, errors, or what happens if wallet doesn't exist. Adequate for a simple read but could be more transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words. Front-loaded with verb and resource. Efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter and no output schema, the description is adequate but minimal. Could benefit from mentioning return format or default behavior, but not strictly necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter 'wallet_name' described. Description does not add any additional meaning beyond the schema. Baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Get wallet balance for all assets' with examples (L-BTC, USDT). Distinguishes from siblings like btc_balance (Bitcoin) and unified_balance (combined) by specifying L-wallet assets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives like btc_balance or unified_balance. No mention of prerequisites or expected wallet state.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lw_export_descriptorA
Export the CT descriptor for a wallet (for watch-only import elsewhere)
| Name | Required | Description | Default |
|---|---|---|---|
| wallet_name | No | Name of the wallet | default |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It only mentions the export purpose but does not disclose traits such as whether the operation is idempotent, any side effects, required permissions, or expected output format. For a read-like export, minimal disclosure may be acceptable, but more detail would improve transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence front-loading the action and resource, with no filler or redundant information. Every word serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter export tool with full schema coverage, the description is minimally adequate. However, it lacks any hint about the output format (since no output schema exists) and does not explain how the descriptor is structured, which could be important for downstream usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for the sole parameter (wallet_name), so the schema already explains it. The tool description adds no extra meaning beyond what the schema provides, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Export') and the resource ('CT descriptor for a wallet'), and includes the context 'for watch-only import elsewhere', which distinguishes it from sibling tools like lw_import_descriptor or btc_export_descriptor.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While no explicit 'when to use' is given, the description's phrase 'for watch-only import elsewhere' provides clear context that this tool is intended for exporting a descriptor to be used in another wallet, implicitly guiding the agent when this export step is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lw_generate_mnemonicA
Generate a new BIP39 seed phrase for creating a Liquid wallet
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; the description fails to disclose behavioral traits such as whether it creates a new wallet automatically, if it overwrites existing data, or what side effects occur.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words, front-loaded with key action and purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Description lacks detail about return value (e.g., the generated seed phrase string) since there is no output schema; also missing information about prerequisites or state changes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters and schema coverage is 100%, so description adds no parameter info; baseline of 4 is appropriate as it does not need to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Generate' and resource 'BIP39 seed phrase for creating a Liquid wallet', distinguishing it from the sibling tool lw_import_mnemonic which imports an existing seed phrase.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage as it contrasts with lw_import_mnemonic, but no explicit guidance on when to use this tool versus alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lw_import_descriptorB
Import a watch-only wallet from a CT descriptor
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | Network to use | mainnet |
| descriptor | Yes | CT descriptor string | |
| wallet_name | Yes | Name for the wallet |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description does not disclose side effects (e.g., wallet creation, overwrite behavior), permission requirements, or reversibility. For a mutation tool, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no wasted words. Appropriate length, though slightly terse. No unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Medium complexity tool (3 params, enum) with no output schema or annotations. Description lacks guidance on return values, error conditions, or prerequisites (e.g., needing a descriptor from export).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all 3 parameters. The description adds no additional meaning beyond schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (import), resource (watch-only wallet), and source (CT descriptor). It distinguishes from siblings like btc_import_descriptor (Bitcoin) and lw_import_mnemonic (mnemonic-based).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use versus alternatives like btc_import_descriptor or lw_import_mnemonic. The implied context is via tool name prefix 'lw_' but description does not help agent decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lw_import_mnemonicA
Import a wallet from a BIP39 seed phrase (creates both Liquid and Bitcoin wallets from the same seed)
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | Network to use | mainnet |
| mnemonic | Yes | BIP39 mnemonic phrase (12 words) | |
| password | No | Optional password to encrypt the mnemonic at rest (NOT a BIP39 passphrase) | |
| wallet_name | No | Name for the wallet | default |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses the dual-wallet creation behavior but omits details like idempotency, overwrite rules, or storage effects. The password encryption note is in the schema, not in the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 20 words, front-loading the key action and detail. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description is minimal. It does not explain return values, error conditions, or prerequisites (e.g., network compatibility). Adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds meaning by explaining the mnemonic creates both wallets, enhancing understanding beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Import' and resource 'wallet' from a 'BIP39 seed phrase', and specifies that it creates both Liquid and Bitcoin wallets. This distinguishes it from sibling tools like lw_import_descriptor or btc_import_descriptor.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for importing a BIP39 seed phrase but does not explicitly guide when to use this tool versus alternatives (e.g., lw_import_descriptor). No exclusions or context are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lw_list_assetsA
List known Liquid assets (asset_id, ticker, name, precision). Use this to resolve asset IDs for lw_send_asset without a prior balance query.
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | Which asset registry to list | mainnet |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It describes the tool as a read-only list operation returning specific asset details. There is no mention of side effects, rate limits, or destructive behavior, which is appropriate for this simple list tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences, each serving a clear purpose: stating what the tool does and providing a usage scenario. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simple nature (single optional parameter, no output schema), the description provides sufficient information about its purpose and return fields. It could optionally mention that the list is from the public asset registry, but it is complete enough for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers the network parameter with 100% description coverage and an enum. The description adds no further meaning beyond the schema, achieving the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists known Liquid assets and specifies the returned fields (asset_id, ticker, name, precision). It also distinguishes itself by mentioning a use case with lw_send_asset, which differentiates it from sibling tools like lw_balance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly recommends using this tool to resolve asset IDs for lw_send_asset without a prior balance query, providing clear context. It does not explicitly exclude other scenarios, but the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lw_list_walletsB
List all wallets
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description bears full responsibility for behavioral disclosure. It only states 'List all wallets' without explaining return format, side effects, or any constraints, offering minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at three words, with no wasted content. It effectively front-loads the core purpose for a parameterless tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and no output schema, the description is adequate but lacks details about the response format. It does not indicate whether the tool returns names, IDs, or other properties, leaving some gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with 0 parameters, so the baseline is 3. The description adds no parameter information, but none is needed since there are no parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List all wallets' clearly specifies the verb (List) and resource (wallets). It distinguishes from sibling tools like lw_balance or lw_send, which perform specific operations on wallets rather than listing them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of context, prerequisites, or exclusions, leaving the agent to infer usage without explicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lw_sendB
Send L-BTC to an address
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount in Satoshis | |
| address | Yes | Destination Liquid address | |
| password | No | Password to decrypt mnemonic (if encrypted at rest) | |
| wallet_name | Yes | Name of the wallet |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist. The description lacks disclosure of destructive nature (sending L-BTC is irreversible), password usage, or any behavioral traits beyond the obvious action. This leaves critical gaps for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, zero waste, and front-loaded with the essential action. Perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description is minimal. It does not explain return values, side effects, prerequisites (e.g., wallet must exist), or confirmation steps. Inadequate for a 4-parameter mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds no extra meaning beyond what is already in the input schema; it merely restates the action.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description 'Send L-BTC to an address' clearly states the specific verb 'Send' and resource 'L-BTC', distinguishing it from siblings like btc_send (BTC) and lw_send_asset (other assets).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidelines are provided. The description does not indicate when to use this tool vs alternatives (e.g., for L-BTC transfers it's appropriate, but no exclusions or context given).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lw_send_assetC
Send a Liquid asset (USDT, etc.) to an address
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount in Satoshis | |
| address | Yes | Destination Liquid address | |
| asset_id | Yes | Asset ID (hex string) | |
| password | No | Password to decrypt mnemonic (if encrypted at rest) | |
| wallet_name | Yes | Name of the wallet |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states the action (send) without mentioning mutation effects, confirmation steps, fees, or failure modes. It does not clarify if the transaction is irreversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence that conveys the core purpose. While minimal, it is not verbose. Could benefit from slightly more structure or examples, but remains concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters, no output schema, and no annotations, the description is insufficient. It does not explain the return value, how to verify success, or any constraints (e.g., asset must be in wallet). Critical gaps exist.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters. The description adds no additional context, such as the amount unit (satoshis) or asset ID format, beyond what is in the schema. Baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sends a Liquid asset (like USDT) to an address. It distinguishes from Bitcoin-only sends (btc_send) but does not differentiate from the sibling lw_send, which may send Liquid Bitcoin.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool over alternatives like lw_send or other asset senders. No context about prerequisites, such as needing the asset to be present in the wallet.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lw_sweepA
Sweep the entire L-BTC balance (or full balance of a specific Liquid asset) to one address. Fee is deducted from the inputs — leaves 0 sats of the targeted balance in the wallet. Use this whenever the user says 'send all', 'sweep', 'drain', 'empty wallet', or 'move everything' on Liquid. Asset sweep note: with asset_id set, the asset balance goes to 0 in one tx but L-BTC change may remain because the fee was paid in L-BTC — call lw_sweep again without asset_id to also empty L-BTC.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Destination Liquid address | |
| asset_id | No | Optional asset ID (hex). Omit for an L-BTC sweep. Passing the L-BTC policy asset id is equivalent to omitting. | |
| password | No | Password to decrypt mnemonic (if encrypted at rest) | |
| wallet_name | Yes | Name of the wallet |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description fully discloses behavioral traits: fee deducted from inputs, leaves 0 sats of targeted balance, and explains the asset sweep nuance where L-BTC change may remain. It clearly indicates a write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences plus a note. It is front-loaded with the core purpose and includes essential behavioral details without redundancy. Every sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of sweeping assets with fee deduction and asset-specific behavior, the description is complete. It covers the main operation, the asset sweep scenario, and the expected outcome. No output schema exists, but the description is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds value by explaining that asset_id is optional, what happens when omitted or set to L-BTC policy asset, and the behavior of the sweep. This goes beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it sweeps the entire L-BTC balance or full balance of a specific Liquid asset to one address, distinguishing it from sibling tools like btc_sweep and lw_send. It specifies the verb 'sweep' and the resource 'L-BTC balance or Liquid asset balance'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: 'whenever the user says "send all", "sweep", "drain", "empty wallet", or "move everything" on Liquid.' Also provides guidance on asset sweep scenario and suggests calling again without asset_id to empty L-BTC. This is exemplary usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lw_transactionsC
Get transaction history
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of transactions | |
| wallet_name | No | Name of the wallet | default |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Only says 'Get transaction history' – does not disclose whether it returns all transactions, default wallet behavior, or any side effects. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise (one short sentence) but lacks structure and front-loading of key details. Could benefit from specifying scope or differentiating context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description is too sparse. It omits details like default wallet, limit meaning, sorting, or temporal scope. Incomplete for an agent to use effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (both parameters described). Description does not add extra meaning beyond the schema. Baseline 3 applies; no additional value provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states 'Get transaction history' – a clear verb+resource. However, it does not differentiate from sibling tools like btc_transactions or lw_tx_status, which may also relate to transaction history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. Sibling tools include btc_transactions (Bitcoin) and lw_tx_status, but the description offers no criteria for selecting this one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lw_tx_statusA
Get the status of a Liquid transaction. Accepts a txid or a Blockstream explorer URL (e.g. https://blockstream.info/liquid/tx/abc123...)
| Name | Required | Description | Default |
|---|---|---|---|
| tx | Yes | Transaction ID (64-char hex) or Blockstream explorer URL |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It indicates a read operation ('Get') but does not describe what the status response contains (e.g., confirmations, block height). Lacks detail on potential errors or prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with clear, direct wording. No unnecessary information; every word is functional.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description is mostly complete. It explains input format with an example. However, it omits what the output 'status' looks like, which could be helpful for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and already describes the parameter as a txid or URL. The description adds no new information beyond the schema, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action ('Get'), the resource ('status of a Liquid transaction'), and distinguishes it from sibling status tools (btc_transactions, lightning_transaction_status) by specifying 'Liquid' and accepting both txid and Blockstream URL.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for Liquid transactions, but no explicit guidance on when to use this over alternatives like btc_transactions or lightning_transaction_status. The agent must infer from the resource name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
qr_decodeA
Decode a QR code from an image file and return the raw string content. Supports Bitcoin addresses, Liquid addresses, Lightning invoices (BOLT11), and Lightning addresses.
| Name | Required | Description | Default |
|---|---|---|---|
| image_path | Yes | Absolute path to the image file containing the QR code (PNG, JPG, WEBP supported) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses supported image formats via the parameter description but does not mention error handling, file system access requirements, or any side effects. The behavioral transparency is adequate but not thorough for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is incredibly concise with two sentences that front-load the main action and then provide additional context about supported content types. There is no redundant or unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description is fairly complete. It explains the input format, main function, and types of output expected. However, it does not discuss error conditions or what happens when decoding fails, which would be beneficial for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter, so the schema already explains its meaning. The tool description adds context about supported content types, which is more about the tool's output than the parameter itself. No additional parameter-level guidance is needed, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (decode), resource (QR code from image file), and outcome (raw string content). It also lists supported content types, making the tool's purpose unambiguous and distinguishing it from sibling tools like lightning_decode.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context by listing supported content types, implying when to use this tool (for Bitcoin addresses, Lightning invoices, etc.). However, it lacks explicit guidance on when not to use it or alternatives, such as limitations to specific image formats or that it may not support other QR code types.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sideshift_list_coinsA
List the coins and networks SideShift supports for cross-chain swaps. Use to discover valid (coin, network) IDs for the other sideshift_* tools.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses that it lists supported coins/networks but lacks details on whether the list is static or dynamic, or any rate limits. Acceptable for a simple discovery tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words, front-loaded with action and purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a parameterless list tool. Tells what it lists and how to use the results. No output schema needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so baseline is 4. Description adds meaning beyond schema by explaining the tool's output purpose, though no parameter-specific details are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool lists coins and networks for cross-chain swaps, and explicitly mentions its purpose to discover valid IDs for other sideshift tools, distinguishing it from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to use it for discovering IDs for other sideshift tools, providing clear context. Does not mention alternatives like changelly_list_currencies, but the scope is well-defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sideshift_pair_infoA
Get rate, min, and max for a SideShift pair (e.g. USDt-Liquid → USDt-Tron). Returns decimal-string rate / min / max in deposit-coin units.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | No | Optional reference amount in deposit-coin units (decimal string) | |
| to_coin | Yes | Settle coin ticker | |
| from_coin | Yes | Deposit coin ticker (e.g. 'USDT') | |
| to_network | Yes | Settle network | |
| from_network | Yes | Deposit network (e.g. 'liquid', 'tron', 'ethereum') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It confirms a read operation returning strings but does not disclose authentication needs, rate limits, or any potential side effects. Minimal behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with front-loaded action and no wasted words. Efficiently communicates core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks details on error handling, network specifics, or when to use this vs other sideshift tools. Output format is explained, but overall completeness is moderate for a simple info tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds a clarifying example but no additional semantics beyond the schema's property descriptions. Baseline 3 is appropriate as no extra value is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves rate, min, and max for a SideShift pair, with an example and explanation of return format. This distinctively separates it from sibling tools like sideshift_quote (which quotes a specific amount) and sideshift_list_coins.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for getting pair rate info but does not explicitly state when to use it over alternatives like sideshift_quote for live quotes. No guidance on prerequisites or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sideshift_quoteA
Request a fixed-rate SideShift quote (~15 min TTL). Provide exactly one of deposit_amount or settle_amount as a decimal string. Use BEFORE sideshift_send to confirm the quote with the user.
| Name | Required | Description | Default |
|---|---|---|---|
| settle_coin | Yes | ||
| deposit_coin | Yes | ||
| settle_amount | No | User receives this much (decimal string) | |
| deposit_amount | No | User sends this much (decimal string) | |
| settle_network | Yes | ||
| deposit_network | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description mentions fixed-rate and TTL (~15 min) but lacks details on quote expiration, idempotency, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no redundancy, front-loaded with purpose and TTL.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Provides essential usage flow and amount constraint, but lacks description of return value (quote object) and more detail on coin/network parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Clarifies exclusive relationship and decimal format for amount parameters (33% schema coverage), but no additional info for coin/network parameters beyond their names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Explicitly states it requests a fixed-rate SideShift quote with a TTL hint, clearly distinguishing from sibling tools like sideshift_send and sideshift_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit instructions: use exactly one of deposit_amount or settle_amount as decimal string, and use before sideshift_send to confirm quote.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sideshift_receiveA
Receive into the local wallet via a SideShift variable-rate shift. Returns a deposit address on the deposit chain — the user (or external sender) sends to it from any wallet. Settle chain MUST be 'bitcoin' or 'liquid'. Both legs must be in the curated allowlist (USDt on ethereum/tron/bsc/solana/polygon/liquid, or BTC on bitcoin) — mirrors AQUA Flutter's supported pairs. Set SIDESHIFT_ALLOW_ALL_NETWORKS=1 to bypass. STRONGLY RECOMMEND passing external_refund_address (the deposit-side sender's address) so a stuck shift can refund automatically. Also returns qr_code_path: a PNG QR of the deposit address — display it to the user so they can scan it.
| Name | Required | Description | Default |
|---|---|---|---|
| settle_coin | Yes | 'btc' or 'usdt' typically | |
| settle_memo | No | ||
| wallet_name | No | default | |
| deposit_coin | Yes | ||
| settle_network | Yes | ||
| deposit_network | Yes | ||
| external_refund_memo | No | ||
| external_refund_address | No | Deposit-chain refund address (strongly recommended) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses return values (deposit address, QR code) and refund behavior, but omits error states, rate limits, or auth requirements. Adequate for a receive tool but could be richer.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, each carrying essential information. No redundancy, front-loaded with purpose and key constraints. Excellent structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters and no output schema, description covers core purpose, constraints, and return values. Lacks details on some parameters and error handling, but otherwise complete for a receive tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is low (25%), but description adds meaning: explains deposit/settle constraints, enumerates settle_network values, and stresses external_refund_address. Does not cover all params (wallet_name, settle_memo, external_refund_memo), but the added context compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Receive into the local wallet via a SideShift variable-rate shift.' It distinguishes from siblings like sideshift_send (sending) and changelly_receive by specifying the shift type and constraints.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit constraints: settle chain must be 'bitcoin' or 'liquid', both legs must be in the curated allowlist, and recommends external_refund_address. However, does not explicitly exclude alternatives or state when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sideshift_recommendA
Recommend SideSwap vs SideShift for a cross-asset conversion. SideSwap when both legs are on Bitcoin/Liquid (atomic, lower fees); SideShift when at least one leg is on a non-Liquid chain (custodial, covers 30+ chains).
| Name | Required | Description | Default |
|---|---|---|---|
| to_coin | Yes | ||
| from_coin | Yes | ||
| to_network | Yes | ||
| from_network | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden and explains the behavioral differences: SideSwap is atomic with lower fees, SideShift is custodial covering 30+ chains. This gives good insight into the recommendations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler: first states purpose, second gives decision logic. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple recommendation tool, the description covers the decision rule and use case. Missing details like output format are acceptable given the simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description implies the parameters relate to coins and networks but does not define each parameter individually. With 0% schema coverage, it adds minimal value beyond the schema field names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool recommends between SideSwap and SideShift for cross-asset conversions, and distinguishes it from other tools like sideshift_quote by specifying the criteria for each option.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit guidance on when to use each recommendation (SideSwap for Bitcoin/Liquid both legs, SideShift for non-Liquid leg), but does not explicitly state when not to use the tool itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sideshift_sendA
Send funds out via SideShift. Gets a fixed-rate quote, creates the shift, and broadcasts the deposit from the local wallet. Deposit chain MUST be 'bitcoin' or 'liquid'. Both legs must be in the curated allowlist (USDt on ethereum/tron/bsc/solana/polygon/liquid, or BTC on bitcoin) — mirrors AQUA Flutter's supported pairs. Set SIDESHIFT_ALLOW_ALL_NETWORKS=1 to bypass. A refund address is set automatically (the wallet's own deposit-chain address). For non-L-BTC Liquid assets (e.g. USDt-Liquid), the Liquid asset_id is auto-resolved from deposit_coin against the known asset registry — no need to look it up first. Pass liquid_asset_id only to override the registry. ALWAYS call sideshift_quote first and confirm the price with the user.
| Name | Required | Description | Default |
|---|---|---|---|
| password | No | Password to decrypt mnemonic (if encrypted) | |
| quote_id | No | Optional fixed-rate quote id from a prior sideshift_quote call. Pass this after the user confirms the preview so the shift executes at the same rate they saw — without it, the tool fetches a fresh quote and the rate may have moved. | |
| refund_memo | No | ||
| settle_coin | Yes | ||
| settle_memo | No | Required for memo networks (BNB, etc.) | |
| wallet_name | No | default | |
| deposit_coin | Yes | L-BTC: 'btc' (network='liquid'); BTC: 'btc'; USDt-Liquid: 'usdt' | |
| settle_amount | No | ||
| deposit_amount | No | ||
| settle_address | Yes | Where SideShift sends the converted asset | |
| settle_network | Yes | ||
| deposit_network | Yes | Chain we sign on | |
| liquid_asset_id | No | Optional hex asset id. When omitted and depositing a non-L-BTC Liquid asset, it's auto-resolved from `deposit_coin` against the known Liquid asset registry (USDt, DePix, JPYS, EURx, MEX). Pass explicitly only to override the registry. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses auto-refund address setting, auto-resolution of Liquid asset IDs, and the overall flow (quote, shift, broadcast). Could add error handling details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Multiple sentences but each adds unique info. Could be slightly tighter, but front-loaded and well-structured. No waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 13 params and no output schema, the description covers key workflow, constraints, and parameter details. Missing return value description, but overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 54%. Description adds meaning for deposit_coin, deposit_network, liquid_asset_id, quote_id, but leaves settle_amount, deposit_amount, settle_coin, settle_network undocumented. Partial value added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Send funds out via SideShift') and resource, and distinguishes from sibling tools like sideshift_quote and sideshift_receive by describing the full flow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to call sideshift_quote first and confirm price, specifies allowed deposit chains (bitcoin/liquid) and allowlist, and mentions the environment variable bypass.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sideshift_statusA
Check the status of a SideShift shift order. Returns the shift record plus is_final / is_success / is_failed booleans.
| Name | Required | Description | Default |
|---|---|---|---|
| shift_id | Yes | ID from sideshift_send or sideshift_receive |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It indicates a read-only check and lists return fields, but does not explicitly state read-only behavior, rate limits, or authentication needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no extraneous information, front-loading the purpose and key return fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple status check tool with one parameter and no output schema, the description adequately covers the purpose and return values, though it lacks mention of error cases or pagination.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema description already details the parameter 'shift_id' as an ID from related tools. The tool description adds no further parameter information beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Check' and the resource 'status of a SideShift shift order', distinguishing it from sibling tools like sideshift_send and sideshift_receive.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage after creating a shift order (via shift_id from sideshift_send or sideshift_receive), but does not explicitly state when to use this tool vs alternatives or provide any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sideswap_execute_swapA
Execute a Liquid atomic swap on SideSwap. Both directions are supported via send_bitcoins: True = L-BTC → asset (default), False = asset → L-BTC. The PSET returned by SideSwap is verified locally against the agreed quote BEFORE signing — the swap is aborted if the wallet's net balance change does not exactly match (refusing to sign protects against a hostile server). The fee tolerance is pinned to L-BTC, so on the asset → L-BTC direction the asset side is checked at strict equality. Order is persisted at every step for crash recovery. ALWAYS call sideswap_quote first and confirm the price with the user before invoking this tool.
| Name | Required | Description | Default |
|---|---|---|---|
| asset_id | Yes | Non-L-BTC Liquid asset (e.g. USDt). The L-BTC side is always the policy asset. | |
| password | No | Password to decrypt mnemonic (if encrypted at rest) | |
| send_amount | Yes | Send amount in sats (L-BTC if send_bitcoins, else asset) | |
| wallet_name | No | Liquid wallet to sign with | default |
| send_bitcoins | No | True = send L-BTC to receive asset; False = send asset to receive L-BTC | |
| min_recv_amount | No | Optional floor on the dealer's recv_amount in sats. Pass the recv_amount the user just confirmed in sideswap_quote — if the rate moved between preview and execution and the dealer offers less, the swap is rejected before signing. | |
| flexible_small_amount | No | When True, accept dealer-rounded send_amount up to ±3000 sats from what was requested. SideSwap's mkt::* dealer rounds internally; small swaps (e.g. 5k–25k sats) often come back at a slightly different amount. Off by default — strict equality is safer at scale. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility. It discloses critical behaviors: local PSET verification against quote, abort on balance mismatch, fee tolerance pinned to L-BTC, order persistence for crash recovery, and strict equality check on asset side for asset→L-BTC direction. These details are essential for safe usage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively concise, with a clear structure starting with the core action, then direction, then safety mechanisms, then prerequisite. Each sentence adds value, though it could be slightly more streamlined without losing essential details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a swap execution tool with 7 parameters and no annotations, the description covers all key aspects: direction, verification, failure conditions, persistence, and prerequisite. It is complete enough for safe usage without external documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so a baseline of 3. The description adds value beyond the schema by explaining behavioral implications of parameters (e.g., send_bitcoins direction logic, flexible_small_amount tolerance, min_recv_amount as a floor check). It enriches the understanding of how parameters interact with the swap execution.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Execute a Liquid atomic swap on SideSwap.' It specifies both directions via the send_bitcoins parameter and distinguishes itself from siblings like sideswap_quote by mandating its prior use.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the prerequisite: 'ALWAYS call sideswap_quote first and confirm the price with the user.' This provides clear guidance on when to invoke this tool versus alternatives, and explains the direction parameter effectively.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sideswap_list_assetsC
List Liquid assets that SideSwap supports for atomic swaps (e.g. L-BTC, USDt, EURx, MEX, DePix).
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | mainnet |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description does not disclose behavioral traits beyond the basic listing operation. No mention of side effects, permissions, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no fluff, front-loaded with action and resource. Could be expanded slightly with parameter info without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, no parameter descriptions, no guidance on behavior. Description is too minimal given the tool's complexity and lack of annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only parameter 'network' is present in schema with enum but no description. Description does not mention the parameter or explain its purpose (e.g., mainnet vs testnet). Schema coverage is 0%.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'List Liquid assets that SideSwap supports for atomic swaps' with specific examples (L-BTC, USDt, EURx, MEX, DePix). This distinguishes it from sibling tools like lw_list_assets (for Liquid Wallet) and sideshift_list_coins.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives such as lw_list_assets or sideshift_list_coins. No mention of prerequisites or context where this is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sideswap_peg_inA
Initiate a SideSwap peg-in (BTC → L-BTC). Returns a Bitcoin deposit address; the user (or btc_send) must send BTC to it. After 2 BTC confirmations (~20 min hot path; up to ~17 hours cold path for very large amounts), L-BTC arrives in the Liquid wallet. Recommended over a swap-market trade for amounts ≥ ~0.01 BTC: lower fee (0.1% vs 0.2%) at the cost of waiting. ALWAYS call sideswap_recommend first for large amounts so the user understands the trade-off.
| Name | Required | Description | Default |
|---|---|---|---|
| password | No | Password to decrypt mnemonic (if encrypted at rest) | |
| wallet_name | No | Liquid wallet to receive L-BTC | default |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses the process: deposit address generation, necessary BTC send, confirmation times (hot/cold paths), and final L-BTC arrival. It lacks details on failure modes or optional password handling, but is otherwise transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five well-structured sentences: purpose, process steps, recommendation, and a critical directive. Every sentence adds value without redundancy. Front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given two parameters, no output schema, and moderate tool complexity, the description covers the overall flow, wait times, and trade-offs. It lacks details on potential errors or deposit address validity, but is sufficient for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters are fully described in the schema (100% coverage). The description adds context by explaining the password's purpose ('if encrypted at rest') and implying wallet_name is optional with default 'default'. The mention of 'btc_send' usage adds operational meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Initiate a SideSwap peg-in (BTC → L-BTC).' It explains the output (Bitcoin deposit address) and the required subsequent step. This distinguishes it from sibling tools like sideswap_peg_out and sideswap_recommend.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance is given: 'Recommended over a swap-market trade for amounts ≥ ~0.01 BTC' with fee comparison. It also mandates calling sideswap_recommend first for large amounts, providing clear when-to-use and alternative actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sideswap_peg_outB
Initiate a SideSwap peg-out (L-BTC → BTC) and broadcast the L-BTC send. After 2 Liquid confirmations (~2 min) and the federation BTC sweep (typically 15–60 min total), BTC arrives at the user's Bitcoin address. Fees: 0.1% + Bitcoin network fee. Standard way to move L-BTC back to Bitcoin mainchain.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount in Satoshis to peg out | |
| password | No | Password to decrypt mnemonic (if encrypted at rest) | |
| btc_address | Yes | Destination Bitcoin address (bc1...) | |
| wallet_name | Yes | Liquid wallet to send L-BTC from |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description mentions timing and fees but does not disclose error states, return behavior, auth needs, or side effects beyond the basic process.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, efficient but the second sentence could be more streamlined; still concise overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the core process and fees but does not specify the immediate return value (e.g., transaction ID), which is needed given no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions; the description adds little beyond schema, such as clarifying amount is in Satoshis and destination address format, but does not meaningfully enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it initiates a SideSwap peg-out (L-BTC to BTC) and broadcasts the L-BTC send, distinguishing it from peg-in and other swap tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Describes the process and fees but does not explicitly state when to use this tool vs alternatives like sideswap_peg_quote or sideswap_peg_status, lacking usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sideswap_peg_quoteB
Quote the receive amount for a SideSwap peg (BTC ↔ L-BTC) at current fees (0.1% + ~286 sats Liquid claim fee on peg-in). Returns send_amount, recv_amount, fee_amount.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Send amount in Satoshis | |
| peg_in | No | True for BTC → L-BTC, False for L-BTC → BTC | |
| network | No | mainnet |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses fee structure (0.1% + ~286 sats) and return fields, but no annotations exist. It lacks details on side effects, auth requirements, or state changes, leaving gaps for the agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently conveys the purpose, key fee info, and return fields. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter tool with no output schema and no annotations, the description covers the basics but omits details like peg direction clarity, network impact, and behavioral traits, leaving the agent with moderate understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67% (amount and peg_in have descriptions; network lacks description). The description adds fee context but does not explain parameter semantics beyond schema, e.g., network values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it quotes the receive amount for a SideSwap peg (BTC ↔ L-BTC) with fee details. It distinguishes from sibling tools like sideswap_peg_in/sideswap_peg_out (execution) and sideswap_quote (generic swap), but could be more explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives. No when-to-use, when-not-to-use, or prerequisite information is given, despite many related sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sideswap_peg_statusA
Check the status of a SideSwap peg order (peg-in or peg-out). Returns confirmations progress (X/Y), tx_state, lockup_txid, payout_txid when complete.
| Name | Required | Description | Default |
|---|---|---|---|
| order_id | Yes | Order ID from sideswap_peg_in or sideswap_peg_out |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It clearly lists the returned fields (confirmations progress, tx_state, lockup_txid, payout_txid), indicating it's a read-only status check. No side effects or permissions are mentioned, but this is acceptable for a simple status tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no extraneous words. The first sentence states the purpose, the second lists return values. Efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no output schema, the description is sufficient. It covers purpose and return data. Minor improvement could note that the tool is non-destructive, but that is implied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not add semantic value beyond the input schema, which already covers the single parameter 'order_id' with a clear description. Schema coverage is 100%, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly uses the verb 'Check' and specifies the resource as 'SideSwap peg order (peg-in or peg-out)', clearly distinguishing from sibling tools like sideswap_swap_status or sideswap_peg_quote.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied (after initiating a peg), but there is no explicit guidance on when to use this tool versus alternatives such as sideswap_peg_quote or sideswap_execute_swap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sideswap_quoteA
Get a read-only price quote for a SideSwap Liquid asset swap (e.g. L-BTC ↔ USDt). Provide exactly one of send_amount or recv_amount. Use this BEFORE sideswap_execute_swap so the user can confirm the price.
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | mainnet | |
| asset_id | Yes | Liquid asset ID (hex) to swap with L-BTC | |
| recv_amount | No | Amount the user wants to receive (Satoshis) | |
| send_amount | No | Amount the user is sending (Satoshis) | |
| send_bitcoins | No | True if sending L-BTC for the asset; False if sending the asset for L-BTC |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description labels the tool as 'read-only', implying no state change. No annotations provided, so description carries full burden. It discloses the mutual exclusivity constraint and does not contradict any annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first states purpose, second gives critical usage instruction. No unnecessary words, front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers main behavioral aspects (read-only, mutual exclusivity, usage order). With no output schema, it could mention the return format (e.g., quote details), but it is sufficient for a simple quote tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 80%. Description adds value by clarifying mutual exclusivity of send_amount and recv_amount, which is not obvious from schema alone. However, it does not provide additional semantics for the other parameters beyond what schema offers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Get a read-only price quote for a SideSwap Liquid asset swap', specifying verb and resource. It distinguishes from sibling sideswap_execute_swap by noting it should be used before that tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear usage instructions: 'Provide exactly one of send_amount or recv_amount' and 'Use this BEFORE sideswap_execute_swap'. Gives context on when to use, but does not explicitly list alternatives or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sideswap_recommendA
Recommend a peg vs an instant swap-market trade for a BTC ↔ L-BTC conversion. Surfaces the trade-off (lower fee but slower) and warns when the amount exceeds SideSwap's hot-wallet liquidity. ALWAYS call this for large conversions before initiating a peg.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount in Satoshis to convert | |
| network | No | mainnet | |
| direction | Yes | Direction of conversion |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description covers important behaviors: it 'surfaces the trade-off (lower fee but slower)' and 'warns when the amount exceeds SideSwap's hot-wallet liquidity'. This gives agents realistic expectations. However, it does not explicitly state if the tool is read-only or has side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each serving a purpose: purpose, behavior, and usage guidance. Front-loaded with the core action. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the moderate complexity, no output schema, and no annotations, the description covers the tool's purpose, behavior, and when to use it. It could be improved by mentioning the expected output format, but it remains adequate for correct tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% (amount and direction have descriptions, network only has default). The description adds context about 'large conversions' but does not provide additional meaning for individual parameters beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'recommend a peg vs an instant swap-market trade for a BTC ↔ L-BTC conversion'. It uses a specific verb ('recommend') and resource ('peg vs instant swap'), which distinguishes it from sibling tools like sideswap_peg_in or sideswap_quote.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs 'ALWAYS call this for large conversions before initiating a peg', providing clear context for when to use. It implies the trade-off consideration but does not specify when not to use (e.g., for small amounts).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sideswap_server_statusA
Fetch SideSwap server status: live fees, minimum amounts, and hot-wallet balances. Call this BEFORE recommending a peg or swap so values reflect current SideSwap state.
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | mainnet |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states what data is returned (fees, amounts, balances) but does not explicitly confirm read-only behavior, error handling, or authentication needs. The term 'Fetch' implies read, but more clarity on non-destructive nature would improve transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two concise sentences that are front-loaded with the core purpose, followed by usage guidance. Every word serves a purpose, with no redundancy or irrelevant detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 optional parameter, no output schema), the description provides sufficient information: what it fetches and when to use it. However, it could be more complete by mentioning that the call is safe and can be repeated, or by noting potential error states (e.g., server timeout).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description does not mention the 'network' parameter. Although the parameter is simple (enum of mainnet/testnet), the description fails to add any value beyond the schema. For a tool with no schema descriptions, the description should explain the parameter's purpose and effect.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Fetch' and the resource 'SideSwap server status', listing specific data types (live fees, minimum amounts, hot-wallet balances). It distinguishes itself from siblings by focusing on server status, which is a prerequisite for other swap/peg operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs to call this BEFORE recommending a peg or swap to ensure values reflect current state. This provides clear when-to-use guidance, though it omits explicit alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sideswap_swap_statusA
Get persisted status of a SideSwap atomic asset swap. Once the swap is broadcast, pass the txid to lw_tx_status to track on-chain confirmations.
| Name | Required | Description | Default |
|---|---|---|---|
| order_id | Yes | Order ID returned from sideswap_execute_swap |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey all behavioral traits. It indicates the status is 'persisted' and hints at a lifecycle step (broadcast), but does not describe what the returned status contains, error conditions (e.g., swap not found), or any side effects. This is adequate for a simple status check but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first states the core purpose, the second provides follow-up guidance. It is front-loaded with the main action and contains no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema and only one parameter. The description explains the tool's role in the swap lifecycle but does not describe the structure of the returned status or how to interpret it. For a status-check tool, this is minimally complete but leaves gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'order_id' has 100% schema description coverage (described as 'Order ID returned from sideswap_execute_swap'). The description adds no additional semantics beyond the schema. With high coverage, a score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the persisted status of a SideSwap atomic asset swap, and it distinguishes itself from the sibling tool lw_tx_status by specifying that after broadcast, the txid should be passed to that tool for on-chain confirmation tracking.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance (get status of a swap) and when-to-use-alternative guidance (after broadcast, use lw_tx_status for on-chain confirmations). This helps the agent select the correct tool in the workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unified_balanceA
Get balance for both Bitcoin and Liquid networks (unified wallet)
| Name | Required | Description | Default |
|---|---|---|---|
| wallet_name | No | Name of the wallet | default |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It states the tool gets a balance, which is a safe read operation. However, it does not disclose any potential side effects, rate limits, or requirements beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words, directly states the tool's function. Front-loaded with the key action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple balance getter with no output schema, the description is adequate but does not hint at return format (e.g., combined balance or separate values). Slightly incomplete given the lack of output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has one parameter with description 'Name of the wallet'. Description does not add any new meaning beyond the schema. Since schema coverage is 100%, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Get' and resource 'balance for both Bitcoin and Liquid networks (unified wallet)'. It distinguishes from siblings btc_balance and lw_balance by emphasizing the unified view.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance. The existence of sibling tools btc_balance and lw_balance implies this is for a combined view, but alternatives are not named or contrasted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wapupay_create_orderA
Create a WapuPay order and get a Liquid USDT funding address. Creates the tentative (freezing the quote) and issues funding instructions. Returns address_destination (Liquid), asset_id (USDT), funding_amount_usdt, total_amount_usdt, total_funding_amount_base_units, funding_expires_at and a QR. Pay the TOTAL with lw_send_asset (amount = total_funding_amount_base_units); WapuPay then makes a P2P payer settle ARS to the bank account. Does NOT broadcast the payment itself — confirm the quote with the user first via wapupay_quote.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Transfer speed. 'fast_fiat_transfer' name it 'Fast Transfer' for the user (default, higher fee): prioritized, completes in ~10 min to 1 hour during daytime (not instant). 'fiat_transfer' name it 'Normal Transfer' for the user (standard, lower fee): takes 3 to 12 hours; recommend only when there is no rush, or when paying at night/weekends since usually a payer picks it up the next day. Explain this trade-off to the user. | fast_fiat_transfer |
| alias | Yes | Recipient bank alias / CBU / CVU | |
| amount_ars | Yes | Amount in Argentine pesos (decimal string, e.g. '10000') | |
| wallet_name | No | Wallet you intend to fund from (recorded for tracking) | default |
| receiver_name | No | Recipient name (optional) | |
| refund_address | No | Liquid mainnet refund address (lq1…/ex1…) if funding cannot execute (optional); validated before the order is created |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Fully discloses behavior: creates tentative order, issues funding instructions, returns specific fields, and emphasizes it does NOT broadcast payment. No annotations to contradict.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Informative but slightly long; every sentence adds value. Front-loaded with main purpose. Could be tighter, but no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 6 params, no output schema, and no annotations, the description covers all key aspects: inputs, outputs, flow, and relationship to sibling tools. Completely sufficient for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds meaningful context for 'type' enum (explains trade-off between fast and normal) and mentions refund_address validation. Adds value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it creates a WapuPay order and gets a Liquid USDT funding address. Distinguishes from siblings by noting it does not broadcast the payment and that users should confirm with wapupay_quote first.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly explains when to use (after quote) and when not to (does not broadcast payment). Provides alternative tool (lw_send_asset) for payment and advises confirming quote via wapupay_quote.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wapupay_exchange_ratesA
Get WapuPay's current exchange rates (e.g. USDT/ARS). Public — no login or API key.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It correctly notes that the tool is publicly accessible and requires no authentication, which is a key behavioral trait. However, it does not disclose details like rate update frequency or whether rates are bid/ask, but for a simple rate getter, this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—two sentences that front-load the purpose and then provide a key usage guideline. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity (no parameters, no output schema), the description is fully complete. It tells the agent exactly what the tool does and that it requires no authentication. No additional context is necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters, so schema description coverage is 100%. The description adds no parameter information, but none is needed. Baseline for zero parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'exchange rates' with a concrete example (USDT/ARS). It effectively distinguishes this tool from sibling tools like wapupay_quote (which provides quotes for specific amounts) and changelly_* tools (which involve different services).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states 'Public — no login or API key,' indicating it can be used without authentication. While it does not explicitly contrast with alternatives, the context of sibling tools makes the purpose clear. Slight improvement could include when to prefer this over wapupay_quote or changelly_quote.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wapupay_fund_orderA
Issue (or re-issue) Liquid USDT funding instructions for an existing order. Use to recover an order created without funding, or to refresh the funding address before it expires. Returns the funding address + QR.
| Name | Required | Description | Default |
|---|---|---|---|
| tentative_id | Yes | Order id from wapupay_create_order |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries the burden. It states the return value (funding address + QR) but does not disclose side effects, auth needs, or what happens if called on a funded order.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with key action and use cases. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given one parameter, no output schema, and low complexity, the description covers purpose and return value adequately. Could mention address expiration or idempotency, but overall sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter documented clearly. Description adds no extra semantics beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool issues or re-issues Liquid USDT funding instructions for an existing order, with specific use cases. This distinguishes it from siblings like wapupay_create_order or wapupay_order_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly mentions when to use: to recover an order without funding or refresh the address. Does not provide when-not-to-use or alternatives, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wapupay_ordersA
List locally-tracked WapuPay direct-fiat orders (recovery records on this device), most recent first — distinct from wapupay_transactions (WapuPay's server-side view). Each record carries the orchestrated swap's txids (funding/executed) and status for local tracking.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description discloses record contents (txids, status), ordering (most recent first), and local scope. Sufficient for a read-only tool with no side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with core action and distinction. No wasted words, every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and no output schema, description fully covers purpose, scope, content, and sibling differentiation. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, schema coverage 100%. Description adds context about local tracking, meeting the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'List locally-tracked WapuPay direct-fiat orders' with explicit distinction from sibling wapupay_transactions, providing a specific verb and resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly distinguishes from wapupay_transactions (server-side view), implying when to use each. Lacks explicit when-not or exhaustive alternatives but sufficient for a simple list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wapupay_order_statusA
Check a WapuPay P2P order's status (re-read from WapuPay). Returns is_final / is_success / is_failed. States: CREATED → FUNDING_ISSUED → EXECUTED. Terminals: EXPIRED, SETTLED_TO_BALANCE, FAILED.If it contains a funding_transaction_id or executed_transaction_id you can fetch the details with wapupay_transaction if user asks
| Name | Required | Description | Default |
|---|---|---|---|
| tentative_id | Yes | Order id from wapupay_create_order |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description fully discloses behavior: it re-reads from WapuPay (network call), returns specific boolean flags, and describes the state machine (CREATED → FUNDING_ISSUED → EXECUTED with terminals). No hidden side effects or contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is compact and front-loaded with the main purpose. Four sentences convey all necessary information without redundancy. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description covers return values (is_final, is_success, is_failed) and state transitions. It also mentions related tool wapupay_transaction for fetching details. Complete for a status-checking tool with clear state machine.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Single parameter tentative_id with schema description 'Order id from wapupay_create_order'. Schema coverage is 100%, so description adds minimal extra meaning beyond schema. While sufficient, it doesn't elaborate on parameter format or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks a WapuPay P2P order's status, re-reads from WapuPay, and specifies return fields (is_final, is_success, is_failed) along with state transitions. It distinguishes itself from sibling tools like wapupay_transaction by indicating when to use that instead.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use this tool (to check status) and when to use wapupay_transaction (if funding_transaction_id or executed_transaction_id are present). Provides clear context for selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wapupay_provision_accountA
Provision a WapuPay API key via the user's JAN3 account so the other WapuPay tools work. Use when the user wants WapuPay but has no API key set. Requires a prior JAN3 login for the email (either flow: jan3_login then jan3_verify, or jan3_login_start then jan3_login_complete); calls the AQUA backend with that session, then stores the returned key locally (0o600) for all wapupay_* tools — the raw key is never returned, only a masked preview. The AQUA backend issues a fresh key on every call and invalidates the previous one (no grace period), so this only calls the backend when no key is configured yet: if one already exists (env var or stored) it is a no-op (already_configured=true) and never invalidates a working key.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Logged-in JAN3 account whose session authorizes the call. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given no annotations, the description fully discloses behavior: it calls the AQUA backend, stores the key locally (0o600), never returns the raw key, only a masked preview. It also explains idempotency (no-op if key exists) and the backend's key invalidation policy. This provides comprehensive behavioral understanding.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is comprehensive and front-loaded with the purpose. It is somewhat lengthy but every sentence adds value, covering prerequisites, behavior, and edge cases. It could be slightly more structured (e.g., bullet points), but remains clear and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (setup tool with prerequisites, idempotency, security) and no output schema, the description covers all essential aspects: what it does, when to use, prerequisites, behavioral details, and return format (masked preview). It is complete enough for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the email parameter (format email, description about session authorization). The description adds context that the email must be from a completed JAN3 login flow, which is valuable beyond the schema. This enhances the agent's understanding of the parameter's role.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Provision' and the resource 'WapuPay API key', and distinguishes from sibling tools by noting that this is a prerequisite for other wapupay tools. It also explains the link to the user's JAN3 account.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says when to use ('when the user wants WapuPay but has no API key set') and details prerequisites (prior JAN3 login). It also indicates that calling when already configured is a no-op, implying it's unnecessary. However, it does not explicitly list alternative tools or when not to use beyond the no-op case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wapupay_quoteA
Preview the USDT cost, fee, and exchange rate for an ARS payment without creating an order. Call BEFORE wapupay_create_order to confirm the price. Pass alias to validate the bank alias/CBU/CVU (see valid_cbu_alias in the response).
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Transfer speed. 'fast_fiat_transfer' show as 'Fast Transfer' for the user (default, higher fee): prioritized, completes in ~10 min to 1 hour during daytime (not instant). 'fiat_transfer' show as 'Normal Transfer' for the user (standard, lower fee): takes 3 to 12 hours; recommend only when there is no rush, or when paying at night/weekends since usually a payer picks it up the next day. Explain this trade-off to the user. | fast_fiat_transfer |
| alias | No | Recipient bank alias / CBU / CVU (optional; enables validation) | |
| amount_ars | Yes | Amount in Argentine pesos (decimal string, e.g. '10000') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. It states it's a preview without creating order, which implies read-only. It mentions output includes valid_cbu_alias. Could be more detailed about side effects or limits, but adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no fluff. First sentence captures purpose, second provides usage guidance and alias info. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, description mentions valid_cbu_alias but could list other expected output fields (cost, fee, rate). Still sufficiently complete for a quote preview tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. Description adds significant value by explaining the trade-off between 'fast_fiat_transfer' and 'fiat_transfer' for the type parameter, and clarifying that alias enables validation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Preview' and the resource 'USDT cost, fee, and exchange rate for an ARS payment'. It distinguishes from siblings by specifying it's a preview before creating an order.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to call BEFORE wapupay_create_order to confirm price. Also mentions alias can be passed for validation. Does not discuss when not to use or alternatives, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wapupay_spending_limitA
Get the WapuPay account/key's monthly spending limit (USDT), based on KYC tier.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states it 'gets' the limit, implying a read-only operation, but fails to mention response format, potential errors, or whether authentication is needed. Basic functionality is clear, but no deeper transparency is provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no redundancy, front-loaded with key information. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple parameterless query, the description sufficiently conveys purpose and output. However, lacking an output schema, it could explicitly mention that the return value is a numeric amount. Overall, it's complete enough for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has zero parameters, so schema coverage is 100%. The description adds no parameter details because none exist. According to the rubric, 0 parameters nets a baseline of 4, which is appropriate here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool retrieves a monthly spending limit in USDT based on KYC tier for a WapuPay account/key. It uses a specific verb ('Get') and resource ('spending limit'), and is distinct from sibling tools like wapupay_create_order or wapupay_quote.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It does not mention when not to use, prerequisites, or compare with sibling tools like wapupay_transactions or wapupay_orders. An AI agent has insufficient context to select it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wapupay_transactionA
Get a single WapuPay transaction by id (UUID or numeric). It can be a funding (crypto), an executed fiat transfer or a refund (crypto) transaction.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | WapuPay transaction id (uuid or numeric) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It indicates the tool is a read operation ("Get") and lists transaction types it can retrieve. However, it does not disclose required permissions, response format, error cases, or whether the returned data differs by type. Adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences that immediately state the purpose and transaction types. No filler or redundant information. Front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description does not explain what the response contains (e.g., fields, structure). It lists transaction types but lacks details on return values, making it incomplete for an agent that needs to interpret the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (the `id` parameter is described). The description adds that the id can be UUID or numeric, which is already in the schema description. It does not provide additional semantic value beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves a single WapuPay transaction by id, listing possible transaction types (funding, fiat transfer, refund). This distinguishes it from siblings like wapupay_transactions (likely a list) and other related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you have a specific transaction id and need details, but it does not provide explicit guidance on when not to use this tool or suggest alternatives like wapupay_transactions for listing. Usage context is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wapupay_transactionsA
List WapuPay transactions (scoped to the WapuPay account/key).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description only says 'List', implying read operation, but lacks details on pagination, filtering, rate limits, or safety.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded, no filler. Efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-param, no-output-schema tool, description is adequate. Could mention return format, but not essential.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters in input schema; baseline is 4. Description does not add parameter info, but none needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'List', resource 'WapuPay transactions', and scope 'scoped to the WapuPay account/key'. Differentiates from sibling 'wapupay_transaction' which is singular.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. Does not specify exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
38 tool updates
v0.5.0- Added
btc_sweep - Added
jan3_enable_lightning_address - Added
jan3_list_sessions - Added
jan3_ln_check_username - Added
jan3_login - Added
jan3_login_complete - Added
jan3_login_start - Added
jan3_logout - Added
jan3_purchase_ln_username - Added
jan3_rebind_wallet - Added
jan3_session_info - Added
jan3_user_info - Added
jan3_verify - Added
lightning_decode - Changed
lw_address1 field changed- changed
Input schema / properties / index / descriptionPrevious value: -"Specific address index (optional)"New value: +"If index is omitted, returns the next unused receive address (idempotent). Specifying an index gets the address at that index. "
- Added
lw_sweep - Added
qr_decode - Changed
sideshift_send1 field changed- changed
Input schema / properties / liquid_asset_id / descriptionPrevious value: -"Hex asset id; required when sending a non-L-BTC Liquid asset"New value: +"Optional hex asset id. When omitted and depositing a non-L-BTC Liquid asset, it's auto-resolved from `deposit_coin` against the known Liquid asset registry (USDt, DePix, JPYS, EURx, MEX). Pass explicitly only to override the registry."
- Added
sideswap_execute_swap - Added
sideswap_list_assets - Added
sideswap_peg_in - Added
sideswap_peg_out - Added
sideswap_peg_quote - Added
sideswap_peg_status - Added
sideswap_quote - Added
sideswap_recommend - Added
sideswap_server_status - Added
sideswap_swap_status - Added
wapupay_create_order - Added
wapupay_exchange_rates - Added
wapupay_fund_order - Added
wapupay_order_status - Added
wapupay_orders - Added
wapupay_provision_account - Added
wapupay_quote - Added
wapupay_spending_limit - Added
wapupay_transaction - Added
wapupay_transactions
35 tool updates
v0.1.0- First observed
btc_address - First observed
btc_balance - First observed
btc_export_descriptor - First observed
btc_import_descriptor - First observed
btc_send - First observed
btc_transactions - First observed
changelly_list_currencies - First observed
changelly_quote - First observed
changelly_receive - First observed
changelly_send - First observed
changelly_status - First observed
delete_wallet - First observed
lightning_receive - First observed
lightning_send - First observed
lightning_transaction_status - First observed
lw_address - First observed
lw_balance - First observed
lw_export_descriptor - First observed
lw_generate_mnemonic - First observed
lw_import_descriptor - First observed
lw_import_mnemonic - First observed
lw_list_assets - First observed
lw_list_wallets - First observed
lw_send - First observed
lw_send_asset - First observed
lw_transactions - First observed
lw_tx_status - First observed
sideshift_list_coins - First observed
sideshift_pair_info - First observed
sideshift_quote - First observed
sideshift_receive - First observed
sideshift_recommend - First observed
sideshift_send - First observed
sideshift_status - First observed
unified_balance
TDQS
Tools are clearly distinguished by network prefix and detailed descriptions, but the abundance of similar actions (e.g., send, receive, quote) across multiple swap services could cause occasional misselection.
Consistent snake_case pattern with network prefix + verb + noun (e.g., btc_balance, sideshift_quote, wapupay_create_order). No mixing of conventions.
71 tools is far beyond the recommended 3-15 range. Even for a comprehensive crypto wallet server, this is excessive and overwhelming for an agent to navigate.
The tool set covers wallet management, multiple network sends/receives, Lightning, three swap providers, fiat off-ramp, and account management. Very few gaps exist for the stated domain.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for Gainium — manage trading bots, deals, and balances via AI assistants
Tenzro Network MCP server: wallet, identity, payments, inference, staking, bridges, verification.
MCP server connecting AI agents to non-custodial staking data across 130+ networks.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Related MCP Servers
- AlicenseBqualityDmaintenanceAn MCP server to provide AI agents money functionalities via Nostr and Cashu.67717MIT
- AlicenseNot gradedqualityFmaintenanceMCP server that gives AI agents Lightning payments, L402 API access, trust verification, and service discovery.10MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that enables AI agents to send and receive Bitcoin over the Lightning Network using NWC or LND backends.MIT
- AlicenseNot gradedqualityDmaintenanceMCP server giving AI agents Bitcoin and Lightning superpowers for price checks, mempool inspection, Lightning payments, and more.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jan3dev/agentic-aqua'
If you have feedback or need assistance with the MCP directory API, please join our Discord server