UNPKG

@getalby/mcp

Version:

MCP server for controlling a Lightning wallet using Nostr Wallet Connect

37 lines (36 loc) 1.74 kB
import { webln } from "@getalby/sdk"; import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { registerGetInfoTool } from "./tools/nwc/get_info.js"; import { registerGetWalletServiceInfoTool } from "./tools/nwc/get_wallet_service_info.js"; import { registerLookupInvoiceTool } from "./tools/nwc/lookup_invoice.js"; import { registerMakeInvoiceTool } from "./tools/nwc/make_invoice.js"; import { registerPayInvoiceTool } from "./tools/nwc/pay_invoice.js"; import { registerGetBalanceTool } from "./tools/nwc/get_balance.js"; import { registerListTransactionsTool } from "./tools/nwc/list_transactions.js"; import { registerFetchL402Tool } from "./tools/lightning/fetch_l402.js"; import { registerFiatToSatsTool } from "./tools/lightning/fiat_to_sats.js"; import { registerParseInvoiceTool } from "./tools/lightning/parse_invoice.js"; import { registerRequestInvoiceFromLightningAddressTool } from "./tools/lightning/request_invoice.js"; export function createMCPServer(client) { const server = new McpServer({ name: "@getalby/mcp", version: "1.1.0", title: "Alby MCP Server", }); // NWC registerGetWalletServiceInfoTool(server, client); registerGetInfoTool(server, client); registerMakeInvoiceTool(server, client); registerPayInvoiceTool(server, client); registerGetBalanceTool(server, client); registerLookupInvoiceTool(server, client); registerListTransactionsTool(server, client); // Lightning tools registerFetchL402Tool(server, new webln.NostrWebLNProvider({ client, })); registerFiatToSatsTool(server); registerParseInvoiceTool(server); registerRequestInvoiceFromLightningAddressTool(server); return server; }