nwc-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| NWC_LOG_PATH | No | Path to structured audit log file. | ./nwc-mcp.log |
| NWC_READ_ONLY | No | If true, disables all spend tools. | false |
| NWC_KEYSEND_ENABLED | No | Opt-in toggle for nwc_pay_keysend. | false |
| NWC_REQUIRE_CONFIRM | No | If true, spend tools return a one-time token requiring confirmation. | false |
| NWC_MAX_INVOICE_SATS | No | Per-payment cap in sats (optional). | |
| NWC_BUDGET_STATE_PATH | No | Path to persisted budget tracker state. | ./nwc-mcp-state.json |
| NWC_CONNECTION_STRING | Yes | Nostr Wallet Connect connection string (nostr+walletconnect://...). Treat as secret. | |
| NWC_DAILY_BUDGET_SATS | Yes | Rolling 24h spend cap in sats. | |
| NWC_TOTAL_BUDGET_SATS | No | Lifetime spend cap in sats (optional). | |
| NWC_ALLOWED_DESTINATIONS | No | Comma-separated allowlist of LN addresses/pubkeys/LNURLs. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| nwc_get_infoA | Return the connected wallet's capabilities, supported NIP-47 methods, node pubkey, network, alias, and color. Call this first in any session to discover what the wallet supports. |
| nwc_get_balanceA | Return the current spendable balance of the connected wallet, in satoshis. |
| nwc_lookup_invoiceA | Look up an invoice by payment hash or bolt11 string. Returns the invoice state (paid/unpaid), settled timestamp, amount, fees paid, and preimage if settled. Provide either payment_hash OR invoice. |
| nwc_list_transactionsA | List transactions on the connected wallet. Supports filtering by time range, direction (incoming/outgoing), and inclusion of unpaid invoices. |
| nwc_decode_invoiceA | Decode a bolt11 Lightning invoice locally (no network call). Returns amount in sats, description, payment hash, expiry, payee pubkey, and network. Use this before pay_invoice to confirm the invoice contents. |
| nwc_budget_statusA | Show the current spend-budget state: rolling-24h spent, daily cap, lifetime spent, optional total cap, and per-invoice max. Useful before attempting a payment to know whether it will be allowed. |
| nwc_make_invoiceA | Create a bolt11 Lightning invoice for the given amount in sats. Safe — does not move funds; only generates a payment request. Returns the bolt11 string and payment hash. |
| nwc_pay_invoiceA | Pay a bolt11 Lightning invoice. Decodes locally, runs the safety pipeline (read-only gate, destination allowlist, budget cap), and either executes immediately or — if NWC_REQUIRE_CONFIRM=true — returns a one-time confirmation token to pass to nwc_confirm_payment. Returns preimage + fees on success. |
| nwc_pay_lightning_addressA | Pay a Lightning Address (e.g., alice@getalby.com). Resolves the LNURL-pay endpoint to a bolt11 invoice, then runs the safety pipeline (read-only gate, allowlist check on the LN address, budget cap, optional two-step confirmation). Returns preimage on success. |
| nwc_pay_lnurlA | Pay a raw LNURL-pay endpoint (bech32 lnurl1... string). Decodes the LNURL, resolves the pay request, then runs the safety pipeline (read-only gate, allowlist check on the LNURL, budget cap, optional two-step confirmation). Use nwc_pay_lightning_address when you have a name@domain.tld instead. |
| nwc_multi_pay_invoiceA | Pay multiple bolt11 invoices sequentially in one tool call. Each invoice is decoded and safety-checked independently; the batch sum is checked against the daily and total budget caps upfront. If any pre-check or sum check fails, no payments are sent. Execution is per-invoice — a failure mid-batch does not roll back already-settled invoices. |
| nwc_pay_keysendA | Send sats directly to a node pubkey via keysend (spontaneous payment, no invoice). Default-off — must be opt-in via NWC_KEYSEND_ENABLED=true. Power-user feature: no payment hash receipt, weaker safety surface than bolt11. Use bolt11 invoices when available. Runs the full safety pipeline (read-only gate, allowlist on pubkey, budget cap, optional two-step confirmation). |
| nwc_confirm_paymentA | Execute a previously prepared payment, identified by its one-time token. Only meaningful when NWC_REQUIRE_CONFIRM=true. The token is consumed (single use) and safety checks (budget, allowlist) are re-run before execution. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 13 tools
Each tool targets a distinct operation: info, balance, invoice lookup, transaction listing, invoice decoding, budget status, invoice creation, and various payment types (bolt11, lightning address, LNURL, batch, keysend) plus a confirmation step. The payment tools are clearly differentiated by their parameter type and use case, with cross-references in descriptions to avoid confusion.
Most tools follow the consistent nwc_verb_noun pattern (e.g., nwc_get_info, nwc_pay_invoice, nwc_confirm_payment). The only deviation is nwc_budget_status, which lacks an explicit verb like 'get'—it should ideally be nwc_get_budget_status. Overall, the convention is strong and predictable.
13 tools is well within the ideal 3-15 range for a wallet-focused server. Each tool covers a meaningful aspect of Lightning wallet management: discovery, balance, invoicing, payment, transaction history, budget control, and confirmation. No redundant or trivial tools.
The tool surface covers the full lifecycle of a Lightning wallet: creating invoices, paying via multiple methods, looking up invoices, listing transactions, decoding, checking budget, and confirming payments. It also includes an info tool for capability discovery per NIP-47. No obvious gaps for the stated domain.