From spark
Validates wallet features, debugs flows, and develops MCP tools against a running local Spark environment using spark_ prefixed tools.
How this skill is triggered — by the user, by Claude, or both
Slash command
/spark:spark-mcp-e2eThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
The Spark MCP server (`sdks/js/packages/spark-mcp/`) exposes wallet operations as tools for end-to-end validation of features, debugging flows against a running local Spark environment, and developing new MCP tools.
The Spark MCP server (sdks/js/packages/spark-mcp/) exposes wallet operations as tools for end-to-end validation of features, debugging flows against a running local Spark environment, and developing new MCP tools.
Before running any e2e workflow, verify the MCP tools are available by invoking any spark_ tool (e.g., spark_get_balance).
If tools are available, proceed to the relevant workflow below.
If tools are NOT available:
mise build-js-packages
.mcp.json at the repo root. If missing, direct the user to the setup instructions in sdks/js/packages/spark-mcp/README.md (Installation section)..mcp.json exists but tools still fail, consult the environment variable table in the README and the network routing details in sdks/js/packages/spark-mcp/CLAUDE.md.The README.md and CLAUDE.md in the spark-mcp package are the source of truth for setup and configuration — do not duplicate their contents here.
Tools change as the MCP server evolves. Do not rely on a hardcoded tool list.
spark_. Call any tool or use tool discovery to see what's available.sdks/js/packages/spark-mcp/src/tools/index.ts.After implementing a feature, use these patterns to verify it works against a running local Spark environment. Adapt steps to the specific feature under test.
Quick check that the local Spark environment is functional:
If any step fails, the error message usually indicates which component is down (SO, bitcoind, chain watcher, etc.).
When debugging a specific issue:
opensearch-logs skill if available) to correlate wallet-level behavior with server-side processing.When e2e validation was performed during the current session, capture the results for the PR description. Include a ## Proof of Work section with:
<details> blockExample format:
## Proof of Work
Validated against local Spark environment:
1. Created sender and receiver wallets
2. Funded sender with 50,000 sats via deposit flow
3. Sent transfer with new `memo` field set to `"test-memo"` → transfer ID `abc123`
4. Retrieved transfer on receiver — confirmed `memo: "test-memo"` present in response
<details>
<summary>MCP tool outputs</summary>
`spark_send_transfer` response:
...
`spark_get_transfer` response:
...
</details>
Only include proof when validation was actually performed — do not fabricate results.
When building a feature in the Spark SDK or SO that should be testable via MCP:
sdks/js/packages/spark-mcp/src/tools/index.ts for current registrations — an existing tool may already cover the feature.sdks/js/packages/spark-mcp/CLAUDE.md for the package structure and "Adding a new tool" steps.resolve parameter for dependency injection (enables testing with mock wallets)BITCOIN_NETWORK being LOCALsdks/js/packages/spark-mcp/src/tests/.mise build-js-packagesnpx claudepluginhub buildonspark/sparkConnects AI assistants to Lightning Network lnd nodes via encrypted WebSocket tunnels using pairing phrases. Provides 18 read-only tools for querying node state, channels, payments, invoices, peers, and on-chain data.
Guides creation of MCP servers for LLM tool integration. Covers tool design, Streamable HTTP transport, auth patterns, and debugging for Python/TypeScript.
Configures MoonPay CLI as an MCP server for Claude Desktop or Claude Code, providing wallet management, token operations, fiat on-ramp, x402 payments, and transaction tools.