lightning-wallet-mcp 1.5.0 → 1.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +51 -51
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -85,7 +85,7 @@ const PayL402ApiSchema = zod_1.z.object({
85
85
  .describe('Maximum amount in satoshis to pay for this request'),
86
86
  });
87
87
  const PayInvoiceSchema = zod_1.z.object({
88
- bolt11: zod_1.z.string().regex(/^ln(bc|tb|bcrt)1[a-z0-9]+$/i, 'Invalid BOLT11 invoice format')
88
+ bolt11: zod_1.z.string().regex(/^ln(bc|tb|bcrt)([0-9]+[munp]?)?1[a-z0-9]+$/i, 'Invalid BOLT11 invoice format')
89
89
  .describe('BOLT11 invoice string to pay (starts with lnbc...)'),
90
90
  max_fee_sats: zod_1.z.number().min(0).optional()
91
91
  .describe('Maximum routing fee in satoshis (default: 10% of invoice amount)'),
@@ -98,7 +98,7 @@ const GetInvoiceStatusSchema = zod_1.z.object({
98
98
  payment_hash: zod_1.z.string().describe('Payment hash of the invoice to check'),
99
99
  });
100
100
  const GetTransactionsSchema = zod_1.z.object({
101
- limit: zod_1.z.number().min(1).max(200).default(50).describe('Max transactions to return'),
101
+ limit: zod_1.z.number().min(1).max(100).default(50).describe('Max transactions to return'),
102
102
  offset: zod_1.z.number().min(0).default(0).describe('Number to skip for pagination'),
103
103
  });
104
104
  // Operator management schemas
@@ -173,13 +173,13 @@ const RotateApiKeySchema = zod_1.z.object({
173
173
  // Tier 2 schemas
174
174
  const GetInfoSchema = zod_1.z.object({});
175
175
  const DecodeInvoiceSchema = zod_1.z.object({
176
- bolt11: zod_1.z.string().regex(/^ln(bc|tb|bcrt)1[a-z0-9]+$/i, 'Invalid BOLT11 invoice format')
176
+ bolt11: zod_1.z.string().regex(/^ln(bc|tb|bcrt)([0-9]+[munp]?)?1[a-z0-9]+$/i, 'Invalid BOLT11 invoice format')
177
177
  .describe('BOLT11 invoice string to decode'),
178
178
  });
179
179
  const GetRateLimitsSchema = zod_1.z.object({});
180
180
  // Tier 3 schemas
181
181
  const WithdrawSchema = zod_1.z.object({
182
- invoice: zod_1.z.string().regex(/^ln(bc|tb|bcrt)1[a-z0-9]+$/i, 'Invalid BOLT11 invoice format')
182
+ invoice: zod_1.z.string().regex(/^ln(bc|tb|bcrt)([0-9]+[munp]?)?1[a-z0-9]+$/i, 'Invalid BOLT11 invoice format')
183
183
  .describe('BOLT11 invoice to pay out to'),
184
184
  });
185
185
  const SweepAgentSchema = zod_1.z.object({
@@ -331,7 +331,7 @@ server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => ({
331
331
  inputSchema: {
332
332
  type: 'object',
333
333
  properties: {
334
- limit: { type: 'integer', minimum: 1, maximum: 200, default: 50, description: 'Max transactions to return' },
334
+ limit: { type: 'integer', minimum: 1, maximum: 100, default: 50, description: 'Max transactions to return' },
335
335
  offset: { type: 'integer', minimum: 0, default: 0, description: 'Number to skip for pagination' },
336
336
  },
337
337
  required: [],
@@ -822,7 +822,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
822
822
  try {
823
823
  switch (name) {
824
824
  case 'check_balance': {
825
- CheckBalanceSchema.parse(args);
825
+ CheckBalanceSchema.parse(args ?? {});
826
826
  const result = await session.requireClient().checkBalance();
827
827
  return {
828
828
  content: [
@@ -838,7 +838,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
838
838
  };
839
839
  }
840
840
  case 'pay_l402_api': {
841
- const parsed = PayL402ApiSchema.parse(args);
841
+ const parsed = PayL402ApiSchema.parse(args ?? {});
842
842
  const result = await session.requireClient().l402Pay(parsed.url, parsed.method, parsed.body, parsed.max_payment_sats);
843
843
  // Determine if the target returned a success response
844
844
  const targetSuccess = result.statusCode >= 200 && result.statusCode < 300;
@@ -870,7 +870,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
870
870
  };
871
871
  }
872
872
  case 'pay_invoice': {
873
- const parsed = PayInvoiceSchema.parse(args);
873
+ const parsed = PayInvoiceSchema.parse(args ?? {});
874
874
  const result = await session.requireClient().payInvoice(parsed.bolt11, parsed.max_fee_sats);
875
875
  return {
876
876
  content: [
@@ -892,7 +892,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
892
892
  };
893
893
  }
894
894
  case 'create_invoice': {
895
- const parsed = CreateInvoiceSchema.parse(args);
895
+ const parsed = CreateInvoiceSchema.parse(args ?? {});
896
896
  const result = await session.requireClient().createInvoice(parsed.amount_sats, parsed.memo);
897
897
  const invoiceResponse = {
898
898
  success: true,
@@ -914,7 +914,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
914
914
  };
915
915
  }
916
916
  case 'get_invoice_status': {
917
- const parsed = GetInvoiceStatusSchema.parse(args);
917
+ const parsed = GetInvoiceStatusSchema.parse(args ?? {});
918
918
  const result = await session.requireClient().getInvoiceStatus(parsed.payment_hash);
919
919
  return {
920
920
  content: [
@@ -934,7 +934,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
934
934
  };
935
935
  }
936
936
  case 'get_transactions': {
937
- const parsed = GetTransactionsSchema.parse(args);
937
+ const parsed = GetTransactionsSchema.parse(args ?? {});
938
938
  const result = await session.requireClient().getTransactions(parsed.limit, parsed.offset);
939
939
  return {
940
940
  content: [
@@ -952,7 +952,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
952
952
  }
953
953
  // Operator management tool handlers
954
954
  case 'register_operator': {
955
- const parsed = RegisterOperatorSchema.parse(args);
955
+ const parsed = RegisterOperatorSchema.parse(args ?? {});
956
956
  const result = await (0, lightning_faucet_js_1.registerOperator)(parsed.name, parsed.email);
957
957
  // Auto-set credentials so subsequent requests use the new operator key
958
958
  session.setClient(new lightning_faucet_js_1.LightningFaucetClient(result.apiKey));
@@ -974,7 +974,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
974
974
  };
975
975
  }
976
976
  case 'update_operator': {
977
- const parsed = UpdateOperatorSchema.parse(args);
977
+ const parsed = UpdateOperatorSchema.parse(args ?? {});
978
978
  if (parsed.email === undefined && parsed.name === undefined) {
979
979
  throw new Error('Provide email and/or name to update.');
980
980
  }
@@ -994,7 +994,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
994
994
  };
995
995
  }
996
996
  case 'claim_promo': {
997
- const parsed = ClaimPromoSchema.parse(args);
997
+ const parsed = ClaimPromoSchema.parse(args ?? {});
998
998
  const result = await session.requireClient().claimPromo(parsed.promo_code);
999
999
  return {
1000
1000
  content: [
@@ -1006,7 +1006,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
1006
1006
  };
1007
1007
  }
1008
1008
  case 'get_deposit_invoice': {
1009
- const parsed = GetDepositInvoiceSchema.parse(args);
1009
+ const parsed = GetDepositInvoiceSchema.parse(args ?? {});
1010
1010
  const result = await session.requireClient().getDepositInvoice(parsed.amount_sats);
1011
1011
  return {
1012
1012
  content: [
@@ -1026,7 +1026,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
1026
1026
  };
1027
1027
  }
1028
1028
  case 'create_agent': {
1029
- const parsed = CreateAgentSchema.parse(args);
1029
+ const parsed = CreateAgentSchema.parse(args ?? {});
1030
1030
  const result = await session.requireClient().createAgent(parsed.name, parsed.description, parsed.budget_limit_sats);
1031
1031
  return {
1032
1032
  content: [
@@ -1044,7 +1044,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
1044
1044
  };
1045
1045
  }
1046
1046
  case 'fund_agent': {
1047
- const parsed = FundAgentSchema.parse(args);
1047
+ const parsed = FundAgentSchema.parse(args ?? {});
1048
1048
  const result = await session.requireClient().fundAgent(parsed.agent_id, parsed.amount_sats);
1049
1049
  return {
1050
1050
  content: [
@@ -1062,7 +1062,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
1062
1062
  };
1063
1063
  }
1064
1064
  case 'list_agents': {
1065
- ListAgentsSchema.parse(args);
1065
+ ListAgentsSchema.parse(args ?? {});
1066
1066
  const result = await session.requireClient().listAgents();
1067
1067
  return {
1068
1068
  content: [
@@ -1078,7 +1078,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
1078
1078
  };
1079
1079
  }
1080
1080
  case 'set_operator_key': {
1081
- const parsed = SetOperatorKeySchema.parse(args);
1081
+ const parsed = SetOperatorKeySchema.parse(args ?? {});
1082
1082
  session.setClient(new lightning_faucet_js_1.LightningFaucetClient(parsed.api_key));
1083
1083
  return {
1084
1084
  content: [
@@ -1093,7 +1093,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
1093
1093
  };
1094
1094
  }
1095
1095
  case 'set_agent_credentials': {
1096
- const parsed = SetAgentCredentialsSchema.parse(args);
1096
+ const parsed = SetAgentCredentialsSchema.parse(args ?? {});
1097
1097
  session.setClient(new lightning_faucet_js_1.LightningFaucetClient(parsed.api_key));
1098
1098
  return {
1099
1099
  content: [
@@ -1108,7 +1108,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
1108
1108
  };
1109
1109
  }
1110
1110
  case 'whoami': {
1111
- WhoamiSchema.parse(args);
1111
+ WhoamiSchema.parse(args ?? {});
1112
1112
  const result = await session.requireClient().whoami();
1113
1113
  const response = {
1114
1114
  success: true,
@@ -1137,7 +1137,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
1137
1137
  // TIER 1: Webhook Management
1138
1138
  // ==========================================
1139
1139
  case 'register_webhook': {
1140
- const parsed = RegisterWebhookSchema.parse(args);
1140
+ const parsed = RegisterWebhookSchema.parse(args ?? {});
1141
1141
  const result = await session.requireClient().registerWebhook(parsed.url, parsed.events);
1142
1142
  return {
1143
1143
  content: [
@@ -1156,7 +1156,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
1156
1156
  };
1157
1157
  }
1158
1158
  case 'list_webhooks': {
1159
- ListWebhooksSchema.parse(args);
1159
+ ListWebhooksSchema.parse(args ?? {});
1160
1160
  const result = await session.requireClient().listWebhooks();
1161
1161
  return {
1162
1162
  content: [
@@ -1172,7 +1172,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
1172
1172
  };
1173
1173
  }
1174
1174
  case 'delete_webhook': {
1175
- const parsed = DeleteWebhookSchema.parse(args);
1175
+ const parsed = DeleteWebhookSchema.parse(args ?? {});
1176
1176
  const result = await session.requireClient().deleteWebhook(parsed.webhook_id);
1177
1177
  return {
1178
1178
  content: [
@@ -1187,7 +1187,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
1187
1187
  };
1188
1188
  }
1189
1189
  case 'test_webhook': {
1190
- const parsed = TestWebhookSchema.parse(args);
1190
+ const parsed = TestWebhookSchema.parse(args ?? {});
1191
1191
  const result = await session.requireClient().testWebhook(parsed.webhook_id);
1192
1192
  return {
1193
1193
  content: [
@@ -1206,7 +1206,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
1206
1206
  // TIER 1: Budget Management
1207
1207
  // ==========================================
1208
1208
  case 'get_budget_status': {
1209
- const parsed = GetBudgetStatusSchema.parse(args);
1209
+ const parsed = GetBudgetStatusSchema.parse(args ?? {});
1210
1210
  const result = await session.requireClient().getBudgetStatus(parsed.agent_id);
1211
1211
  return {
1212
1212
  content: [
@@ -1225,7 +1225,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
1225
1225
  };
1226
1226
  }
1227
1227
  case 'set_budget': {
1228
- const parsed = SetBudgetSchema.parse(args);
1228
+ const parsed = SetBudgetSchema.parse(args ?? {});
1229
1229
  const result = await session.requireClient().setBudget(parsed.agent_id, parsed.budget_limit_sats);
1230
1230
  return {
1231
1231
  content: [
@@ -1245,7 +1245,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
1245
1245
  // TIER 1: Agent Lifecycle
1246
1246
  // ==========================================
1247
1247
  case 'deactivate_agent': {
1248
- const parsed = DeactivateAgentSchema.parse(args);
1248
+ const parsed = DeactivateAgentSchema.parse(args ?? {});
1249
1249
  const result = await session.requireClient().deactivateAgent(parsed.agent_id);
1250
1250
  return {
1251
1251
  content: [
@@ -1261,7 +1261,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
1261
1261
  };
1262
1262
  }
1263
1263
  case 'reactivate_agent': {
1264
- const parsed = ReactivateAgentSchema.parse(args);
1264
+ const parsed = ReactivateAgentSchema.parse(args ?? {});
1265
1265
  const result = await session.requireClient().reactivateAgent(parsed.agent_id);
1266
1266
  return {
1267
1267
  content: [
@@ -1280,7 +1280,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
1280
1280
  // TIER 1: Recovery & Key Rotation
1281
1281
  // ==========================================
1282
1282
  case 'recover_account': {
1283
- const parsed = RecoverAccountSchema.parse(args);
1283
+ const parsed = RecoverAccountSchema.parse(args ?? {});
1284
1284
  // Recovery doesn't need an existing API key — recoverAccount() uses its own fetch
1285
1285
  const tempClient = session.getClient() || new lightning_faucet_js_1.LightningFaucetClient('recovery-placeholder');
1286
1286
  const result = await tempClient.recoverAccount(parsed.recovery_code);
@@ -1302,7 +1302,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
1302
1302
  };
1303
1303
  }
1304
1304
  case 'rotate_api_key': {
1305
- const parsed = RotateApiKeySchema.parse(args);
1305
+ const parsed = RotateApiKeySchema.parse(args ?? {});
1306
1306
  const result = await session.requireClient().rotateApiKey(parsed.agent_id);
1307
1307
  // Auto-switch to the new key
1308
1308
  session.setClient(new lightning_faucet_js_1.LightningFaucetClient(result.apiKey));
@@ -1324,7 +1324,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
1324
1324
  // TIER 2: Service Info & Invoice Decoding
1325
1325
  // ==========================================
1326
1326
  case 'get_info': {
1327
- GetInfoSchema.parse(args);
1327
+ GetInfoSchema.parse(args ?? {});
1328
1328
  // Service info is public - fall back to an unauthenticated request so
1329
1329
  // first-run users can check the service before registering.
1330
1330
  let result;
@@ -1352,7 +1352,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
1352
1352
  };
1353
1353
  }
1354
1354
  case 'decode_invoice': {
1355
- const parsed = DecodeInvoiceSchema.parse(args);
1355
+ const parsed = DecodeInvoiceSchema.parse(args ?? {});
1356
1356
  const result = await session.requireClient().decodeInvoice(parsed.bolt11);
1357
1357
  return {
1358
1358
  content: [
@@ -1373,7 +1373,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
1373
1373
  };
1374
1374
  }
1375
1375
  case 'get_rate_limits': {
1376
- GetRateLimitsSchema.parse(args);
1376
+ GetRateLimitsSchema.parse(args ?? {});
1377
1377
  const result = await session.requireClient().getRateLimits();
1378
1378
  return {
1379
1379
  content: [
@@ -1393,7 +1393,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
1393
1393
  // TIER 3: Withdrawals & Advanced Payments
1394
1394
  // ==========================================
1395
1395
  case 'withdraw': {
1396
- const parsed = WithdrawSchema.parse(args);
1396
+ const parsed = WithdrawSchema.parse(args ?? {});
1397
1397
  const result = await session.requireClient().withdraw(parsed.invoice);
1398
1398
  return {
1399
1399
  content: [
@@ -1414,9 +1414,9 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
1414
1414
  };
1415
1415
  }
1416
1416
  case 'create_withdraw_link': {
1417
- const amountSats = args && typeof args === 'object' && 'amount_sats' in args
1418
- ? args.amount_sats
1419
- : undefined;
1417
+ const { amount_sats: amountSats } = zod_1.z.object({
1418
+ amount_sats: zod_1.z.coerce.number().int().min(100).optional(),
1419
+ }).parse(args ?? {});
1420
1420
  const result = await session.requireClient().createWithdrawLink(amountSats);
1421
1421
  return {
1422
1422
  content: [
@@ -1439,7 +1439,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
1439
1439
  };
1440
1440
  }
1441
1441
  case 'sweep_agent': {
1442
- const parsed = SweepAgentSchema.parse(args);
1442
+ const parsed = SweepAgentSchema.parse(args ?? {});
1443
1443
  const amount = typeof parsed.amount_sats === 'string' ? 999999999 : parsed.amount_sats;
1444
1444
  const result = await session.requireClient().sweepAgent(parsed.agent_id, amount);
1445
1445
  return {
@@ -1458,7 +1458,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
1458
1458
  };
1459
1459
  }
1460
1460
  case 'pay_lightning_address': {
1461
- const parsed = PayLightningAddressSchema.parse(args);
1461
+ const parsed = PayLightningAddressSchema.parse(args ?? {});
1462
1462
  const result = await session.requireClient().payLightningAddress(parsed.address, parsed.amount_sats, parsed.comment);
1463
1463
  return {
1464
1464
  content: [
@@ -1480,7 +1480,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
1480
1480
  // NOSTR IDENTITY & ZAPS
1481
1481
  // ==========================================
1482
1482
  case 'set_nostr_identity': {
1483
- const parsed = SetNostrIdentitySchema.parse(args);
1483
+ const parsed = SetNostrIdentitySchema.parse(args ?? {});
1484
1484
  const result = await session.requireClient().setNostrIdentity(parsed.private_key);
1485
1485
  return {
1486
1486
  content: [
@@ -1513,7 +1513,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
1513
1513
  };
1514
1514
  }
1515
1515
  case 'nostr_zap': {
1516
- const parsed = NostrZapSchema.parse(args);
1516
+ const parsed = NostrZapSchema.parse(args ?? {});
1517
1517
  const result = await session.requireClient().nostrZap(parsed.address, parsed.amount_sats, parsed.recipient_pubkey, parsed.content, parsed.event_id, parsed.relays);
1518
1518
  return {
1519
1519
  content: [
@@ -1537,7 +1537,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
1537
1537
  // TIER 4: Advanced Agent Management
1538
1538
  // ==========================================
1539
1539
  case 'transfer_to_agent': {
1540
- const parsed = TransferToAgentSchema.parse(args);
1540
+ const parsed = TransferToAgentSchema.parse(args ?? {});
1541
1541
  const result = await session.requireClient().transferToAgent(parsed.to_agent_id, parsed.amount_sats, parsed.from_agent_id);
1542
1542
  return {
1543
1543
  content: [
@@ -1555,7 +1555,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
1555
1555
  };
1556
1556
  }
1557
1557
  case 'delete_agent': {
1558
- const parsed = DeleteAgentSchema.parse(args);
1558
+ const parsed = DeleteAgentSchema.parse(args ?? {});
1559
1559
  if (!parsed.confirm) {
1560
1560
  return {
1561
1561
  content: [
@@ -1588,7 +1588,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
1588
1588
  // TIER 5: Protocol Extensions
1589
1589
  // ==========================================
1590
1590
  case 'lnurl_auth': {
1591
- const parsed = LnurlAuthSchema.parse(args);
1591
+ const parsed = LnurlAuthSchema.parse(args ?? {});
1592
1592
  const result = await session.requireClient().lnurlAuth(parsed.lnurl);
1593
1593
  return {
1594
1594
  content: [
@@ -1604,7 +1604,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
1604
1604
  };
1605
1605
  }
1606
1606
  case 'claim_lnurl_withdraw': {
1607
- const parsed = ClaimLnurlWithdrawSchema.parse(args);
1607
+ const parsed = ClaimLnurlWithdrawSchema.parse(args ?? {});
1608
1608
  const result = await session.requireClient().claimLnurlWithdraw(parsed.lnurl);
1609
1609
  return {
1610
1610
  content: [
@@ -1622,7 +1622,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
1622
1622
  };
1623
1623
  }
1624
1624
  case 'keysend': {
1625
- const parsed = KeysendSchema.parse(args);
1625
+ const parsed = KeysendSchema.parse(args ?? {});
1626
1626
  const result = await session.requireClient().keysend(parsed.destination, parsed.amount_sats, parsed.message);
1627
1627
  return {
1628
1628
  content: [
@@ -1646,7 +1646,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
1646
1646
  // MESSAGE BOARD TOOL HANDLERS
1647
1647
  // ==========================================
1648
1648
  case 'board_read': {
1649
- const parsed = BoardReadSchema.parse(args);
1649
+ const parsed = BoardReadSchema.parse(args ?? {});
1650
1650
  const result = await session.requireClient().boardRead(parsed.sort, parsed.topic, parsed.limit, parsed.offset);
1651
1651
  return {
1652
1652
  content: [
@@ -1658,7 +1658,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
1658
1658
  };
1659
1659
  }
1660
1660
  case 'board_post': {
1661
- const parsed = BoardPostSchema.parse(args);
1661
+ const parsed = BoardPostSchema.parse(args ?? {});
1662
1662
  const result = await session.requireClient().boardPost(parsed.content, parsed.topic);
1663
1663
  return {
1664
1664
  content: [
@@ -1670,7 +1670,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
1670
1670
  };
1671
1671
  }
1672
1672
  case 'board_reply': {
1673
- const parsed = BoardReplySchema.parse(args);
1673
+ const parsed = BoardReplySchema.parse(args ?? {});
1674
1674
  const result = await session.requireClient().boardReply(parsed.post_id, parsed.content);
1675
1675
  return {
1676
1676
  content: [
@@ -1682,7 +1682,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
1682
1682
  };
1683
1683
  }
1684
1684
  case 'board_vote': {
1685
- const parsed = BoardVoteSchema.parse(args);
1685
+ const parsed = BoardVoteSchema.parse(args ?? {});
1686
1686
  const result = await session.requireClient().boardVote(parsed.post_id, parsed.direction);
1687
1687
  return {
1688
1688
  content: [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lightning-wallet-mcp",
3
- "version": "1.5.0",
3
+ "version": "1.5.2",
4
4
  "mcpName": "io.github.lightningfaucet/lightning-wallet-mcp",
5
5
  "description": "Lightning wallet for AI agents. MCP server + CLI. Works with Claude Code, OpenClaw, Cursor, and any agent framework.",
6
6
  "main": "dist/index.js",