@codespar/mcp-nequi 0.1.0 → 0.2.0-alpha.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.
- package/README.md +18 -5
- package/dist/index.d.ts +12 -2
- package/dist/index.js +302 -4
- package/package.json +13 -4
package/README.md
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
# MCP Nequi
|
|
2
2
|
|
|
3
|
+
|
|
4
|
+
> **Alpha release** — published under the `alpha` npm dist-tag. Endpoint paths follow public docs and BACEN/provider conventions but have not been fully live-validated. Pin exact versions during `0.x.x-alpha`. Install with `npm install <pkg>@alpha`.
|
|
5
|
+
|
|
3
6
|
MCP server for **Nequi** — Colombia's leading digital wallet with 50M+ users, powered by Bancolombia. Supports push payments, QR payments, and subscriptions.
|
|
4
7
|
|
|
5
8
|
## Quick Start
|
|
@@ -28,16 +31,26 @@ npx tsx packages/colombia/nequi/src/index.ts --http
|
|
|
28
31
|
| `MCP_HTTP` | No | Set to `"true"` to enable HTTP transport |
|
|
29
32
|
| `MCP_PORT` | No | HTTP port (default: 3000) |
|
|
30
33
|
|
|
31
|
-
## Tools
|
|
34
|
+
## Tools (16)
|
|
32
35
|
|
|
33
|
-
| Tool |
|
|
34
|
-
|
|
36
|
+
| Tool | Purpose |
|
|
37
|
+
|---|---|
|
|
35
38
|
| `create_push_payment` | Send a push payment notification to a Nequi user |
|
|
36
|
-
| `get_payment_status` | Check
|
|
39
|
+
| `get_payment_status` | Check the status of a payment |
|
|
37
40
|
| `create_qr_payment` | Generate a QR code for payment |
|
|
38
41
|
| `reverse_payment` | Reverse a completed payment |
|
|
39
|
-
| `get_subscription` | Get subscription details |
|
|
42
|
+
| `get_subscription` | Get subscription details for a phone number |
|
|
40
43
|
| `unsubscribe` | Cancel a subscription |
|
|
44
|
+
| `create_static_qr` | Generate a static (reusable) Nequi QR code for a merchant |
|
|
45
|
+
| `reverse_transaction` | Reverse any Nequi transaction by transaction ID (refund flow) |
|
|
46
|
+
| `validate_phone` | Check whether a phone number is enrolled in Nequi |
|
|
47
|
+
| `notify_unregistered_payment` | Notify a non-Nequi recipient with instructions to claim a payment |
|
|
48
|
+
| `list_transactions` | List transactions for a merchant within a date range |
|
|
49
|
+
| `get_balance` | Get the merchant's own Nequi account balance |
|
|
50
|
+
| `schedule_payment` | Schedule a Nequi push payment for a future date |
|
|
51
|
+
| `authorize_recurring_charge` | Authorize a recurring charge agreement against a Nequi user |
|
|
52
|
+
| `get_merchant_info` | Retrieve registered merchant business profile |
|
|
53
|
+
| `get_settlement` | Query settlement (liquidation) for a given date |
|
|
41
54
|
|
|
42
55
|
## Auth
|
|
43
56
|
|
package/dist/index.d.ts
CHANGED
|
@@ -2,13 +2,23 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* MCP Server for Nequi — Colombian digital wallet (50M+ users, by Bancolombia).
|
|
4
4
|
*
|
|
5
|
-
* Tools:
|
|
5
|
+
* Tools (16):
|
|
6
6
|
* - create_push_payment: Send a push payment notification to a Nequi user
|
|
7
7
|
* - get_payment_status: Check payment status
|
|
8
|
-
* - create_qr_payment: Generate a QR code payment
|
|
8
|
+
* - create_qr_payment: Generate a QR code payment (dynamic)
|
|
9
|
+
* - create_static_qr: Generate a static (reusable) QR code
|
|
9
10
|
* - reverse_payment: Reverse a payment
|
|
11
|
+
* - reverse_transaction: Reverse any transaction by ID
|
|
10
12
|
* - get_subscription: Get subscription details
|
|
11
13
|
* - unsubscribe: Cancel a subscription
|
|
14
|
+
* - validate_phone: Check if a phone number is enrolled in Nequi
|
|
15
|
+
* - notify_unregistered_payment: Notify a non-Nequi user with payment instructions
|
|
16
|
+
* - list_transactions: List transactions for a merchant in a date range
|
|
17
|
+
* - get_balance: Get merchant account balance
|
|
18
|
+
* - schedule_payment: Schedule a payment for a future date
|
|
19
|
+
* - authorize_recurring_charge: Authorize a recurring charge agreement
|
|
20
|
+
* - get_merchant_info: Retrieve merchant business profile
|
|
21
|
+
* - get_settlement: Query settlement for a given date
|
|
12
22
|
*
|
|
13
23
|
* Environment:
|
|
14
24
|
* NEQUI_API_KEY — API key
|
package/dist/index.js
CHANGED
|
@@ -2,13 +2,23 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* MCP Server for Nequi — Colombian digital wallet (50M+ users, by Bancolombia).
|
|
4
4
|
*
|
|
5
|
-
* Tools:
|
|
5
|
+
* Tools (16):
|
|
6
6
|
* - create_push_payment: Send a push payment notification to a Nequi user
|
|
7
7
|
* - get_payment_status: Check payment status
|
|
8
|
-
* - create_qr_payment: Generate a QR code payment
|
|
8
|
+
* - create_qr_payment: Generate a QR code payment (dynamic)
|
|
9
|
+
* - create_static_qr: Generate a static (reusable) QR code
|
|
9
10
|
* - reverse_payment: Reverse a payment
|
|
11
|
+
* - reverse_transaction: Reverse any transaction by ID
|
|
10
12
|
* - get_subscription: Get subscription details
|
|
11
13
|
* - unsubscribe: Cancel a subscription
|
|
14
|
+
* - validate_phone: Check if a phone number is enrolled in Nequi
|
|
15
|
+
* - notify_unregistered_payment: Notify a non-Nequi user with payment instructions
|
|
16
|
+
* - list_transactions: List transactions for a merchant in a date range
|
|
17
|
+
* - get_balance: Get merchant account balance
|
|
18
|
+
* - schedule_payment: Schedule a payment for a future date
|
|
19
|
+
* - authorize_recurring_charge: Authorize a recurring charge agreement
|
|
20
|
+
* - get_merchant_info: Retrieve merchant business profile
|
|
21
|
+
* - get_settlement: Query settlement for a given date
|
|
12
22
|
*
|
|
13
23
|
* Environment:
|
|
14
24
|
* NEQUI_API_KEY — API key
|
|
@@ -67,7 +77,7 @@ async function nequiRequest(method, path, body) {
|
|
|
67
77
|
}
|
|
68
78
|
return res.json();
|
|
69
79
|
}
|
|
70
|
-
const server = new Server({ name: "mcp-nequi", version: "0.
|
|
80
|
+
const server = new Server({ name: "mcp-nequi", version: "0.2.0-alpha.2" }, { capabilities: { tools: {} } });
|
|
71
81
|
server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
72
82
|
tools: [
|
|
73
83
|
{
|
|
@@ -153,6 +163,140 @@ server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
|
153
163
|
required: ["phone_number", "code", "token"],
|
|
154
164
|
},
|
|
155
165
|
},
|
|
166
|
+
{
|
|
167
|
+
name: "create_static_qr",
|
|
168
|
+
description: "Generate a static (reusable) Nequi QR code for a merchant",
|
|
169
|
+
inputSchema: {
|
|
170
|
+
type: "object",
|
|
171
|
+
properties: {
|
|
172
|
+
code: { type: "string", description: "Merchant QR code identifier" },
|
|
173
|
+
merchant_id: { type: "string", description: "Merchant ID" },
|
|
174
|
+
message: { type: "string", description: "QR description" },
|
|
175
|
+
},
|
|
176
|
+
required: ["code"],
|
|
177
|
+
},
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
name: "reverse_transaction",
|
|
181
|
+
description: "Reverse any Nequi transaction by transaction ID (refund flow)",
|
|
182
|
+
inputSchema: {
|
|
183
|
+
type: "object",
|
|
184
|
+
properties: {
|
|
185
|
+
transaction_id: { type: "string", description: "Original transaction ID" },
|
|
186
|
+
merchant_id: { type: "string", description: "Merchant ID" },
|
|
187
|
+
value: { type: "string", description: "Amount to reverse in COP" },
|
|
188
|
+
reason: { type: "string", description: "Reversal reason" },
|
|
189
|
+
},
|
|
190
|
+
required: ["transaction_id", "value"],
|
|
191
|
+
},
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
name: "validate_phone",
|
|
195
|
+
description: "Check whether a phone number is enrolled in Nequi",
|
|
196
|
+
inputSchema: {
|
|
197
|
+
type: "object",
|
|
198
|
+
properties: {
|
|
199
|
+
phone_number: { type: "string", description: "Phone number (10 digits, CO)" },
|
|
200
|
+
merchant_id: { type: "string", description: "Merchant ID" },
|
|
201
|
+
},
|
|
202
|
+
required: ["phone_number"],
|
|
203
|
+
},
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
name: "notify_unregistered_payment",
|
|
207
|
+
description: "Notify a non-Nequi recipient with instructions to claim a payment",
|
|
208
|
+
inputSchema: {
|
|
209
|
+
type: "object",
|
|
210
|
+
properties: {
|
|
211
|
+
phone_number: { type: "string", description: "Recipient phone number" },
|
|
212
|
+
code: { type: "string", description: "Payment code" },
|
|
213
|
+
value: { type: "string", description: "Amount in COP" },
|
|
214
|
+
merchant_id: { type: "string", description: "Merchant ID" },
|
|
215
|
+
message: { type: "string", description: "Notification message" },
|
|
216
|
+
},
|
|
217
|
+
required: ["phone_number", "code", "value"],
|
|
218
|
+
},
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
name: "list_transactions",
|
|
222
|
+
description: "List transactions for a merchant within a date range",
|
|
223
|
+
inputSchema: {
|
|
224
|
+
type: "object",
|
|
225
|
+
properties: {
|
|
226
|
+
merchant_id: { type: "string", description: "Merchant ID" },
|
|
227
|
+
date_from: { type: "string", description: "Start date (ISO 8601)" },
|
|
228
|
+
date_to: { type: "string", description: "End date (ISO 8601)" },
|
|
229
|
+
status: { type: "string", description: "Optional status filter" },
|
|
230
|
+
},
|
|
231
|
+
required: ["date_from", "date_to"],
|
|
232
|
+
},
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
name: "get_balance",
|
|
236
|
+
description: "Get the merchant's own Nequi account balance",
|
|
237
|
+
inputSchema: {
|
|
238
|
+
type: "object",
|
|
239
|
+
properties: {
|
|
240
|
+
merchant_id: { type: "string", description: "Merchant ID" },
|
|
241
|
+
},
|
|
242
|
+
required: [],
|
|
243
|
+
},
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
name: "schedule_payment",
|
|
247
|
+
description: "Schedule a Nequi push payment for a future date",
|
|
248
|
+
inputSchema: {
|
|
249
|
+
type: "object",
|
|
250
|
+
properties: {
|
|
251
|
+
phone_number: { type: "string", description: "Nequi phone number" },
|
|
252
|
+
code: { type: "string", description: "Payment code" },
|
|
253
|
+
value: { type: "string", description: "Amount in COP" },
|
|
254
|
+
merchant_id: { type: "string", description: "Merchant ID" },
|
|
255
|
+
scheduled_date: { type: "string", description: "ISO 8601 date to execute" },
|
|
256
|
+
message: { type: "string", description: "Description" },
|
|
257
|
+
},
|
|
258
|
+
required: ["phone_number", "code", "value", "scheduled_date"],
|
|
259
|
+
},
|
|
260
|
+
},
|
|
261
|
+
{
|
|
262
|
+
name: "authorize_recurring_charge",
|
|
263
|
+
description: "Authorize a recurring charge agreement against a Nequi user",
|
|
264
|
+
inputSchema: {
|
|
265
|
+
type: "object",
|
|
266
|
+
properties: {
|
|
267
|
+
phone_number: { type: "string", description: "Nequi phone number" },
|
|
268
|
+
code: { type: "string", description: "Subscription/agreement code" },
|
|
269
|
+
merchant_id: { type: "string", description: "Merchant ID" },
|
|
270
|
+
max_value: { type: "string", description: "Max charge amount in COP" },
|
|
271
|
+
frequency: { type: "string", description: "Frequency: monthly|weekly|daily" },
|
|
272
|
+
message: { type: "string", description: "Description" },
|
|
273
|
+
},
|
|
274
|
+
required: ["phone_number", "code", "max_value", "frequency"],
|
|
275
|
+
},
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
name: "get_merchant_info",
|
|
279
|
+
description: "Retrieve registered merchant business profile",
|
|
280
|
+
inputSchema: {
|
|
281
|
+
type: "object",
|
|
282
|
+
properties: {
|
|
283
|
+
merchant_id: { type: "string", description: "Merchant ID" },
|
|
284
|
+
},
|
|
285
|
+
required: [],
|
|
286
|
+
},
|
|
287
|
+
},
|
|
288
|
+
{
|
|
289
|
+
name: "get_settlement",
|
|
290
|
+
description: "Query settlement (liquidation) for a given date",
|
|
291
|
+
inputSchema: {
|
|
292
|
+
type: "object",
|
|
293
|
+
properties: {
|
|
294
|
+
merchant_id: { type: "string", description: "Merchant ID" },
|
|
295
|
+
settlement_date: { type: "string", description: "Settlement date (YYYY-MM-DD)" },
|
|
296
|
+
},
|
|
297
|
+
required: ["settlement_date"],
|
|
298
|
+
},
|
|
299
|
+
},
|
|
156
300
|
],
|
|
157
301
|
}));
|
|
158
302
|
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
@@ -254,6 +398,160 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
254
398
|
},
|
|
255
399
|
},
|
|
256
400
|
}), null, 2) }] };
|
|
401
|
+
case "create_static_qr":
|
|
402
|
+
return { content: [{ type: "text", text: JSON.stringify(await nequiRequest("POST", "/payments/v2/-services-paymentservice-generatestaticcodeqr", {
|
|
403
|
+
RequestMessage: {
|
|
404
|
+
RequestHeader: { Channel: "PNP04-C001", RequestDate: new Date().toISOString(), MessageID: `MCP-${Date.now()}`, ClientID: CLIENT_ID },
|
|
405
|
+
RequestBody: {
|
|
406
|
+
any: {
|
|
407
|
+
generateStaticCodeQRRQ: {
|
|
408
|
+
code: args?.code,
|
|
409
|
+
merchantId: args?.merchant_id,
|
|
410
|
+
message: args?.message,
|
|
411
|
+
},
|
|
412
|
+
},
|
|
413
|
+
},
|
|
414
|
+
},
|
|
415
|
+
}), null, 2) }] };
|
|
416
|
+
case "reverse_transaction":
|
|
417
|
+
return { content: [{ type: "text", text: JSON.stringify(await nequiRequest("POST", "/payments/v2/-services-reverseservices-reversetransactionbyid", {
|
|
418
|
+
RequestMessage: {
|
|
419
|
+
RequestHeader: { Channel: "PNP04-C001", RequestDate: new Date().toISOString(), MessageID: `MCP-${Date.now()}`, ClientID: CLIENT_ID },
|
|
420
|
+
RequestBody: {
|
|
421
|
+
any: {
|
|
422
|
+
reverseTransactionByIdRQ: {
|
|
423
|
+
transactionId: args?.transaction_id,
|
|
424
|
+
merchantId: args?.merchant_id,
|
|
425
|
+
value: args?.value,
|
|
426
|
+
reason: args?.reason,
|
|
427
|
+
},
|
|
428
|
+
},
|
|
429
|
+
},
|
|
430
|
+
},
|
|
431
|
+
}), null, 2) }] };
|
|
432
|
+
case "validate_phone":
|
|
433
|
+
return { content: [{ type: "text", text: JSON.stringify(await nequiRequest("POST", "/payments/v2/-services-clientservice-validateclient", {
|
|
434
|
+
RequestMessage: {
|
|
435
|
+
RequestHeader: { Channel: "PNP04-C001", RequestDate: new Date().toISOString(), MessageID: `MCP-${Date.now()}`, ClientID: CLIENT_ID },
|
|
436
|
+
RequestBody: {
|
|
437
|
+
any: {
|
|
438
|
+
validateClientRQ: {
|
|
439
|
+
phoneNumber: args?.phone_number,
|
|
440
|
+
merchantId: args?.merchant_id,
|
|
441
|
+
},
|
|
442
|
+
},
|
|
443
|
+
},
|
|
444
|
+
},
|
|
445
|
+
}), null, 2) }] };
|
|
446
|
+
case "notify_unregistered_payment":
|
|
447
|
+
return { content: [{ type: "text", text: JSON.stringify(await nequiRequest("POST", "/payments/v2/-services-paymentservice-notifyunregistered", {
|
|
448
|
+
RequestMessage: {
|
|
449
|
+
RequestHeader: { Channel: "PNP04-C001", RequestDate: new Date().toISOString(), MessageID: `MCP-${Date.now()}`, ClientID: CLIENT_ID },
|
|
450
|
+
RequestBody: {
|
|
451
|
+
any: {
|
|
452
|
+
notifyUnregisteredRQ: {
|
|
453
|
+
phoneNumber: args?.phone_number,
|
|
454
|
+
code: args?.code,
|
|
455
|
+
value: args?.value,
|
|
456
|
+
merchantId: args?.merchant_id,
|
|
457
|
+
message: args?.message,
|
|
458
|
+
},
|
|
459
|
+
},
|
|
460
|
+
},
|
|
461
|
+
},
|
|
462
|
+
}), null, 2) }] };
|
|
463
|
+
case "list_transactions":
|
|
464
|
+
return { content: [{ type: "text", text: JSON.stringify(await nequiRequest("POST", "/payments/v2/-services-reportservice-listtransactions", {
|
|
465
|
+
RequestMessage: {
|
|
466
|
+
RequestHeader: { Channel: "PNP04-C001", RequestDate: new Date().toISOString(), MessageID: `MCP-${Date.now()}`, ClientID: CLIENT_ID },
|
|
467
|
+
RequestBody: {
|
|
468
|
+
any: {
|
|
469
|
+
listTransactionsRQ: {
|
|
470
|
+
merchantId: args?.merchant_id,
|
|
471
|
+
dateFrom: args?.date_from,
|
|
472
|
+
dateTo: args?.date_to,
|
|
473
|
+
status: args?.status,
|
|
474
|
+
},
|
|
475
|
+
},
|
|
476
|
+
},
|
|
477
|
+
},
|
|
478
|
+
}), null, 2) }] };
|
|
479
|
+
case "get_balance":
|
|
480
|
+
return { content: [{ type: "text", text: JSON.stringify(await nequiRequest("POST", "/payments/v2/-services-merchantservice-getbalance", {
|
|
481
|
+
RequestMessage: {
|
|
482
|
+
RequestHeader: { Channel: "PNP04-C001", RequestDate: new Date().toISOString(), MessageID: `MCP-${Date.now()}`, ClientID: CLIENT_ID },
|
|
483
|
+
RequestBody: {
|
|
484
|
+
any: {
|
|
485
|
+
getBalanceRQ: {
|
|
486
|
+
merchantId: args?.merchant_id,
|
|
487
|
+
},
|
|
488
|
+
},
|
|
489
|
+
},
|
|
490
|
+
},
|
|
491
|
+
}), null, 2) }] };
|
|
492
|
+
case "schedule_payment":
|
|
493
|
+
return { content: [{ type: "text", text: JSON.stringify(await nequiRequest("POST", "/payments/v2/-services-paymentservice-schedulepayment", {
|
|
494
|
+
RequestMessage: {
|
|
495
|
+
RequestHeader: { Channel: "PNP04-C001", RequestDate: new Date().toISOString(), MessageID: `MCP-${Date.now()}`, ClientID: CLIENT_ID },
|
|
496
|
+
RequestBody: {
|
|
497
|
+
any: {
|
|
498
|
+
schedulePaymentRQ: {
|
|
499
|
+
phoneNumber: args?.phone_number,
|
|
500
|
+
code: args?.code,
|
|
501
|
+
value: args?.value,
|
|
502
|
+
merchantId: args?.merchant_id,
|
|
503
|
+
scheduledDate: args?.scheduled_date,
|
|
504
|
+
message: args?.message,
|
|
505
|
+
},
|
|
506
|
+
},
|
|
507
|
+
},
|
|
508
|
+
},
|
|
509
|
+
}), null, 2) }] };
|
|
510
|
+
case "authorize_recurring_charge":
|
|
511
|
+
return { content: [{ type: "text", text: JSON.stringify(await nequiRequest("POST", "/payments/v2/-services-subscriptionpaymentservice-authorizerecurring", {
|
|
512
|
+
RequestMessage: {
|
|
513
|
+
RequestHeader: { Channel: "PNP04-C001", RequestDate: new Date().toISOString(), MessageID: `MCP-${Date.now()}`, ClientID: CLIENT_ID },
|
|
514
|
+
RequestBody: {
|
|
515
|
+
any: {
|
|
516
|
+
authorizeRecurringRQ: {
|
|
517
|
+
phoneNumber: args?.phone_number,
|
|
518
|
+
code: args?.code,
|
|
519
|
+
merchantId: args?.merchant_id,
|
|
520
|
+
maxValue: args?.max_value,
|
|
521
|
+
frequency: args?.frequency,
|
|
522
|
+
message: args?.message,
|
|
523
|
+
},
|
|
524
|
+
},
|
|
525
|
+
},
|
|
526
|
+
},
|
|
527
|
+
}), null, 2) }] };
|
|
528
|
+
case "get_merchant_info":
|
|
529
|
+
return { content: [{ type: "text", text: JSON.stringify(await nequiRequest("POST", "/payments/v2/-services-merchantservice-getmerchantinfo", {
|
|
530
|
+
RequestMessage: {
|
|
531
|
+
RequestHeader: { Channel: "PNP04-C001", RequestDate: new Date().toISOString(), MessageID: `MCP-${Date.now()}`, ClientID: CLIENT_ID },
|
|
532
|
+
RequestBody: {
|
|
533
|
+
any: {
|
|
534
|
+
getMerchantInfoRQ: {
|
|
535
|
+
merchantId: args?.merchant_id,
|
|
536
|
+
},
|
|
537
|
+
},
|
|
538
|
+
},
|
|
539
|
+
},
|
|
540
|
+
}), null, 2) }] };
|
|
541
|
+
case "get_settlement":
|
|
542
|
+
return { content: [{ type: "text", text: JSON.stringify(await nequiRequest("POST", "/payments/v2/-services-reportservice-getsettlement", {
|
|
543
|
+
RequestMessage: {
|
|
544
|
+
RequestHeader: { Channel: "PNP04-C001", RequestDate: new Date().toISOString(), MessageID: `MCP-${Date.now()}`, ClientID: CLIENT_ID },
|
|
545
|
+
RequestBody: {
|
|
546
|
+
any: {
|
|
547
|
+
getSettlementRQ: {
|
|
548
|
+
merchantId: args?.merchant_id,
|
|
549
|
+
settlementDate: args?.settlement_date,
|
|
550
|
+
},
|
|
551
|
+
},
|
|
552
|
+
},
|
|
553
|
+
},
|
|
554
|
+
}), null, 2) }] };
|
|
257
555
|
default:
|
|
258
556
|
return { content: [{ type: "text", text: `Unknown tool: ${name}` }], isError: true };
|
|
259
557
|
}
|
|
@@ -280,7 +578,7 @@ async function main() {
|
|
|
280
578
|
const t = new StreamableHTTPServerTransport({ sessionIdGenerator: () => randomUUID(), onsessioninitialized: (id) => { transports.set(id, t); } });
|
|
281
579
|
t.onclose = () => { if (t.sessionId)
|
|
282
580
|
transports.delete(t.sessionId); };
|
|
283
|
-
const s = new Server({ name: "mcp-nequi", version: "0.
|
|
581
|
+
const s = new Server({ name: "mcp-nequi", version: "0.2.0-alpha.2" }, { capabilities: { tools: {} } });
|
|
284
582
|
server._requestHandlers.forEach((v, k) => s._requestHandlers.set(k, v));
|
|
285
583
|
server._notificationHandlers?.forEach((v, k) => s._notificationHandlers.set(k, v));
|
|
286
584
|
await s.connect(t);
|
package/package.json
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codespar/mcp-nequi",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "MCP server for Nequi
|
|
3
|
+
"version": "0.2.0-alpha.2",
|
|
4
|
+
"description": "MCP server for Nequi \u2014 Colombian digital wallet (by Bancolombia)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"bin": {
|
|
8
8
|
"mcp-nequi": "dist/index.js"
|
|
9
9
|
},
|
|
10
|
-
"files": [
|
|
10
|
+
"files": [
|
|
11
|
+
"dist"
|
|
12
|
+
],
|
|
11
13
|
"scripts": {
|
|
12
14
|
"build": "tsc",
|
|
13
15
|
"start": "node dist/index.js"
|
|
@@ -20,6 +22,13 @@
|
|
|
20
22
|
"typescript": "^5.8.0"
|
|
21
23
|
},
|
|
22
24
|
"license": "MIT",
|
|
23
|
-
"keywords": [
|
|
25
|
+
"keywords": [
|
|
26
|
+
"nequi",
|
|
27
|
+
"wallet",
|
|
28
|
+
"colombia",
|
|
29
|
+
"bancolombia",
|
|
30
|
+
"payments",
|
|
31
|
+
"mcp"
|
|
32
|
+
],
|
|
24
33
|
"mcpName": "io.github.codespar/mcp-nequi"
|
|
25
34
|
}
|