@getalby/mcp
Version:
MCP server for controlling a Lightning wallet using Nostr Wallet Connect
30 lines (29 loc) • 1 kB
JavaScript
import { Invoice } from "@getalby/lightning-tools";
import { z } from "zod";
import { invoiceSchema } from "./schemas/invoice.js";
export function registerParseInvoiceTool(server) {
server.registerTool("parse_invoice", {
title: "Parse Invoice",
description: "Parse a BOLT-11 lightning invoice",
inputSchema: {
invoice: z.string().describe("the bolt11 invoice"),
},
outputSchema: invoiceSchema,
}, async (params) => {
// make output consistent with other tools
const { satoshi, ...invoice } = new Invoice({ pr: params.invoice });
const convertedResult = {
...invoice,
amount_in_sats: satoshi,
};
return {
content: [
{
type: "text",
text: JSON.stringify(convertedResult, null, 2),
},
],
structuredContent: JSON.parse(JSON.stringify(convertedResult)),
};
});
}