MCP server for Bitcoin Lightning Network operations via LND node
Server has 5 tools with basic descriptions and minimal input schemas. Naming is verb-first (pay_, create_, check_, get_) which is good. However, schemas are incomplete: most parameters lack descriptions, and output schemas are undocumented. Error handling is absent, no recovery guidance, no categorization. The server exposes raw protobuf JSON responses without shaping, violating mxe:strip-api-responses. No tool annotations (readOnlyHint/destructiveHint). Overall, this is a D-grade server with functional but poorly documented tools.
Check if an invoice is settled.
Check my wallet balance.
Create an invoice for the given amount and return the invoice payment request.
GetInfo returns general information concerning the lightning node including its identity pubkey, alias, the chains it is connected to, and information concerning the number of open+pending channels.
Pay a payment request.
Parameter descriptions missing on all tools. 'payment_request', 'amount', 'r_hash' lack descriptions explaining format, constraints, or expected values. LLMs cannot infer parameter meaning from names alone.
Output schemas undocumented. Tools return raw MessageToJson() or primitive types without documenting structure. LLMs cannot plan downstream calls or extract required fields (e.g., invoice payment request format, balance field name).
No error handling or recovery guidance. Tools return raw exceptions without actionable messages. If payment fails or invoice lookup fails, LLM receives no guidance on retry strategy or next steps.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | 2026-07-28+ | v2 |
No tool annotations. Destructive tools (pay_invoice, create_invoice) lack destructiveHint. Read-only tools lack readOnlyHint. Agents cannot distinguish safe from risky operations.
Raw API responses not shaped. MessageToJson() dumps entire protobuf structure including internal fields, audit metadata, and verbose nesting. Violates mxe:strip-api-responses. Wastes tokens and confuses LLM reasoning.