hostinger-api-mcp 0.2.13 → 0.2.15

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 CHANGED
@@ -49,14 +49,14 @@ pnpm update -g hostinger-api-mcp
49
49
 
50
50
  This package installs the following MCP server commands:
51
51
 
52
- - `hostinger-api-mcp` — unified server with every tool (139 total)
52
+ - `hostinger-api-mcp` — unified server with every tool (145 total)
53
53
  - `hostinger-billing-mcp` — 7 tools for billing
54
54
  - `hostinger-dns-mcp` — 8 tools for dns
55
55
  - `hostinger-domains-mcp` — 18 tools for domains
56
- - `hostinger-ecommerce-mcp` — 2 tools for ecommerce
56
+ - `hostinger-ecommerce-mcp` — 7 tools for ecommerce
57
57
  - `hostinger-horizons-mcp` — 2 tools for horizons
58
58
  - `hostinger-hosting-mcp` — 30 tools for hosting
59
- - `hostinger-reach-mcp` — 10 tools for reach
59
+ - `hostinger-reach-mcp` — 11 tools for reach
60
60
  - `hostinger-vps-mcp` — 62 tools for vps
61
61
 
62
62
  Pick the binary that matches your agent's scope. `hostinger-api-mcp` remains the backwards-compatible default.
@@ -546,6 +546,43 @@ Use this endpoint to view which domains use specific contact profiles.
546
546
 
547
547
  ### `hostinger-ecommerce-mcp`
548
548
 
549
+ #### ecommerce_enableManualPaymentMethodV1
550
+
551
+ Enable a manual payment method so the store can accept orders without an online payment provider.
552
+
553
+ - **Method**: `POST`
554
+ - **Path**: `/api/ecommerce/v1/stores/{store_id}/payment-methods/manual`
555
+
556
+ #### ecommerce_createDigitalProductV1
557
+
558
+ Create a published digital product with a single variant and an optional external download link.
559
+
560
+ - **Method**: `POST`
561
+ - **Path**: `/api/ecommerce/v1/stores/{store_id}/products/digital`
562
+
563
+ #### ecommerce_createPhysicalProductV1
564
+
565
+ Create a published physical product with a single variant priced in the store currency.
566
+
567
+ - **Method**: `POST`
568
+ - **Path**: `/api/ecommerce/v1/stores/{store_id}/products/physical`
569
+
570
+ #### ecommerce_setStoreShippingV1
571
+
572
+ Set the flat-rate shipping price for a store, creating the shipping zone if it does not exist yet.
573
+
574
+ - **Method**: `POST`
575
+ - **Path**: `/api/ecommerce/v1/stores/{store_id}/shipping`
576
+
577
+ #### ecommerce_deleteStoreV1
578
+
579
+ Soft-delete a store owned by your account.
580
+
581
+ The underlying store data is preserved; only the store is marked as deleted.
582
+
583
+ - **Method**: `DELETE`
584
+ - **Path**: `/api/ecommerce/v1/stores/{store_id}`
585
+
549
586
  #### ecommerce_getStoresV1
550
587
 
551
588
  Retrieve the stores associated with your account.
@@ -1004,6 +1041,16 @@ The segment can be configured with specific criteria like email, name, subscript
1004
1041
  - **Method**: `POST`
1005
1042
  - **Path**: `/api/reach/v1/segmentation/segments`
1006
1043
 
1044
+ #### reach_listProfileSegmentContactsV1
1045
+
1046
+ Retrieve contacts associated with a specific segment for a given profile.
1047
+
1048
+ This endpoint allows you to fetch and filter contacts that belong to a particular segment,
1049
+ identified by its UUID, scoped to a specific profile.
1050
+
1051
+ - **Method**: `GET`
1052
+ - **Path**: `/api/reach/v1/profiles/{profileUuid}/segmentation/segments/{segmentUuid}/contacts`
1053
+
1007
1054
  #### reach_listSegmentContactsV1
1008
1055
 
1009
1056
  Retrieve contacts associated with a specific segment.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hostinger-api-mcp",
3
- "version": "0.2.13",
3
+ "version": "0.2.15",
4
4
  "mcpName": "io.github.hostinger/hostinger-api-mcp",
5
5
  "description": "MCP server for Hostinger API",
6
6
  "repository": {
package/server.json CHANGED
@@ -6,12 +6,12 @@
6
6
  "url": "https://github.com/hostinger/api-mcp-server",
7
7
  "source": "github"
8
8
  },
9
- "version": "0.2.13",
9
+ "version": "0.2.15",
10
10
  "packages": [
11
11
  {
12
12
  "registryType": "npm",
13
13
  "identifier": "hostinger-api-mcp",
14
- "version": "0.2.13",
14
+ "version": "0.2.15",
15
15
  "transport": {
16
16
  "type": "stdio"
17
17
  },
@@ -29,7 +29,7 @@ const SECURITY_SCHEMES = {
29
29
 
30
30
  /**
31
31
  * MCP Server for Hostinger API
32
- * Generated from OpenAPI spec version 0.19.0
32
+ * Generated from OpenAPI spec version 0.19.2
33
33
  */
34
34
  class MCPServer {
35
35
  constructor({ name, version, tools }) {
@@ -47,7 +47,7 @@ const SECURITY_SCHEMES: Record<string, SecurityScheme> = {
47
47
 
48
48
  /**
49
49
  * MCP Server for Hostinger API
50
- * Generated from OpenAPI spec version 0.19.0
50
+ * Generated from OpenAPI spec version 0.19.2
51
51
  */
52
52
  class MCPServer {
53
53
  private readonly name: string;
@@ -1287,6 +1287,175 @@ export default [
1287
1287
  ],
1288
1288
  "group": "domains"
1289
1289
  },
1290
+ {
1291
+ "name": "ecommerce_enableManualPaymentMethodV1",
1292
+ "description": "Enable a manual payment method so the store can accept orders without an online payment provider.",
1293
+ "method": "POST",
1294
+ "path": "/api/ecommerce/v1/stores/{store_id}/payment-methods/manual",
1295
+ "inputSchema": {
1296
+ "type": "object",
1297
+ "properties": {
1298
+ "store_id": {
1299
+ "type": "string",
1300
+ "description": "The ID of the store to enable manual payment for."
1301
+ },
1302
+ "title": {
1303
+ "type": "string",
1304
+ "description": "Optional display name shown to customers at checkout."
1305
+ }
1306
+ },
1307
+ "required": [
1308
+ "store_id"
1309
+ ]
1310
+ },
1311
+ "security": [
1312
+ {
1313
+ "apiToken": []
1314
+ }
1315
+ ],
1316
+ "group": "ecommerce"
1317
+ },
1318
+ {
1319
+ "name": "ecommerce_createDigitalProductV1",
1320
+ "description": "Create a published digital product with a single variant and an optional external download link.",
1321
+ "method": "POST",
1322
+ "path": "/api/ecommerce/v1/stores/{store_id}/products/digital",
1323
+ "inputSchema": {
1324
+ "type": "object",
1325
+ "properties": {
1326
+ "store_id": {
1327
+ "type": "string",
1328
+ "description": "The ID of the store to create the product in."
1329
+ },
1330
+ "name": {
1331
+ "type": "string",
1332
+ "description": "The product name."
1333
+ },
1334
+ "price": {
1335
+ "type": "integer",
1336
+ "description": "Price in the smallest currency unit (e.g. cents). Must be positive."
1337
+ },
1338
+ "description": {
1339
+ "type": "string",
1340
+ "description": "The product description."
1341
+ },
1342
+ "currency": {
1343
+ "type": "string",
1344
+ "description": "ISO 4217 currency code. Defaults to the store's default currency when omitted."
1345
+ },
1346
+ "download_url": {
1347
+ "type": "string",
1348
+ "description": "Optional external download link delivered to the customer after purchase."
1349
+ }
1350
+ },
1351
+ "required": [
1352
+ "store_id",
1353
+ "name",
1354
+ "price"
1355
+ ]
1356
+ },
1357
+ "security": [
1358
+ {
1359
+ "apiToken": []
1360
+ }
1361
+ ],
1362
+ "group": "ecommerce"
1363
+ },
1364
+ {
1365
+ "name": "ecommerce_createPhysicalProductV1",
1366
+ "description": "Create a published physical product with a single variant priced in the store currency.",
1367
+ "method": "POST",
1368
+ "path": "/api/ecommerce/v1/stores/{store_id}/products/physical",
1369
+ "inputSchema": {
1370
+ "type": "object",
1371
+ "properties": {
1372
+ "store_id": {
1373
+ "type": "string",
1374
+ "description": "The ID of the store to create the product in."
1375
+ },
1376
+ "name": {
1377
+ "type": "string",
1378
+ "description": "The product name."
1379
+ },
1380
+ "price": {
1381
+ "type": "integer",
1382
+ "description": "Price in the smallest currency unit (e.g. cents). Must be positive."
1383
+ },
1384
+ "description": {
1385
+ "type": "string",
1386
+ "description": "The product description."
1387
+ },
1388
+ "currency": {
1389
+ "type": "string",
1390
+ "description": "ISO 4217 currency code. Defaults to the store's default currency when omitted."
1391
+ }
1392
+ },
1393
+ "required": [
1394
+ "store_id",
1395
+ "name",
1396
+ "price"
1397
+ ]
1398
+ },
1399
+ "security": [
1400
+ {
1401
+ "apiToken": []
1402
+ }
1403
+ ],
1404
+ "group": "ecommerce"
1405
+ },
1406
+ {
1407
+ "name": "ecommerce_setStoreShippingV1",
1408
+ "description": "Set the flat-rate shipping price for a store, creating the shipping zone if it does not exist yet.",
1409
+ "method": "POST",
1410
+ "path": "/api/ecommerce/v1/stores/{store_id}/shipping",
1411
+ "inputSchema": {
1412
+ "type": "object",
1413
+ "properties": {
1414
+ "store_id": {
1415
+ "type": "string",
1416
+ "description": "The ID of the store to configure shipping for."
1417
+ },
1418
+ "price": {
1419
+ "type": "integer",
1420
+ "description": "Flat shipping rate in the smallest currency unit (e.g. cents). Use 0 for free shipping."
1421
+ }
1422
+ },
1423
+ "required": [
1424
+ "store_id",
1425
+ "price"
1426
+ ]
1427
+ },
1428
+ "security": [
1429
+ {
1430
+ "apiToken": []
1431
+ }
1432
+ ],
1433
+ "group": "ecommerce"
1434
+ },
1435
+ {
1436
+ "name": "ecommerce_deleteStoreV1",
1437
+ "description": "Soft-delete a store owned by your account.\n\nThe underlying store data is preserved; only the store is marked as deleted.",
1438
+ "method": "DELETE",
1439
+ "path": "/api/ecommerce/v1/stores/{store_id}",
1440
+ "inputSchema": {
1441
+ "type": "object",
1442
+ "properties": {
1443
+ "store_id": {
1444
+ "type": "string",
1445
+ "description": "The ID of the store to delete."
1446
+ }
1447
+ },
1448
+ "required": [
1449
+ "store_id"
1450
+ ]
1451
+ },
1452
+ "security": [
1453
+ {
1454
+ "apiToken": []
1455
+ }
1456
+ ],
1457
+ "group": "ecommerce"
1458
+ },
1290
1459
  {
1291
1460
  "name": "ecommerce_getStoresV1",
1292
1461
  "description": "Retrieve the stores associated with your account.",
@@ -2573,6 +2742,43 @@ export default [
2573
2742
  ],
2574
2743
  "group": "reach"
2575
2744
  },
2745
+ {
2746
+ "name": "reach_listProfileSegmentContactsV1",
2747
+ "description": "Retrieve contacts associated with a specific segment for a given profile.\n\nThis endpoint allows you to fetch and filter contacts that belong to a particular segment,\nidentified by its UUID, scoped to a specific profile.",
2748
+ "method": "GET",
2749
+ "path": "/api/reach/v1/profiles/{profileUuid}/segmentation/segments/{segmentUuid}/contacts",
2750
+ "inputSchema": {
2751
+ "type": "object",
2752
+ "properties": {
2753
+ "profileUuid": {
2754
+ "type": "string",
2755
+ "description": "Profile uuid parameter"
2756
+ },
2757
+ "segmentUuid": {
2758
+ "type": "string",
2759
+ "description": "Segment uuid parameter"
2760
+ },
2761
+ "page": {
2762
+ "type": "integer",
2763
+ "description": "Page number"
2764
+ },
2765
+ "per_page": {
2766
+ "type": "integer",
2767
+ "description": "Number of items per page"
2768
+ }
2769
+ },
2770
+ "required": [
2771
+ "profileUuid",
2772
+ "segmentUuid"
2773
+ ]
2774
+ },
2775
+ "security": [
2776
+ {
2777
+ "apiToken": []
2778
+ }
2779
+ ],
2780
+ "group": "reach"
2781
+ },
2576
2782
  {
2577
2783
  "name": "reach_listSegmentContactsV1",
2578
2784
  "description": "Retrieve contacts associated with a specific segment.\n\nThis endpoint allows you to fetch and filter contacts that belong to a particular segment,\nidentified by its UUID.",
@@ -1297,6 +1297,175 @@ const tools: OpenApiTool[] = [
1297
1297
  ],
1298
1298
  "group": "domains"
1299
1299
  },
1300
+ {
1301
+ "name": "ecommerce_enableManualPaymentMethodV1",
1302
+ "description": "Enable a manual payment method so the store can accept orders without an online payment provider.",
1303
+ "method": "POST",
1304
+ "path": "/api/ecommerce/v1/stores/{store_id}/payment-methods/manual",
1305
+ "inputSchema": {
1306
+ "type": "object",
1307
+ "properties": {
1308
+ "store_id": {
1309
+ "type": "string",
1310
+ "description": "The ID of the store to enable manual payment for."
1311
+ },
1312
+ "title": {
1313
+ "type": "string",
1314
+ "description": "Optional display name shown to customers at checkout."
1315
+ }
1316
+ },
1317
+ "required": [
1318
+ "store_id"
1319
+ ]
1320
+ },
1321
+ "security": [
1322
+ {
1323
+ "apiToken": []
1324
+ }
1325
+ ],
1326
+ "group": "ecommerce"
1327
+ },
1328
+ {
1329
+ "name": "ecommerce_createDigitalProductV1",
1330
+ "description": "Create a published digital product with a single variant and an optional external download link.",
1331
+ "method": "POST",
1332
+ "path": "/api/ecommerce/v1/stores/{store_id}/products/digital",
1333
+ "inputSchema": {
1334
+ "type": "object",
1335
+ "properties": {
1336
+ "store_id": {
1337
+ "type": "string",
1338
+ "description": "The ID of the store to create the product in."
1339
+ },
1340
+ "name": {
1341
+ "type": "string",
1342
+ "description": "The product name."
1343
+ },
1344
+ "price": {
1345
+ "type": "integer",
1346
+ "description": "Price in the smallest currency unit (e.g. cents). Must be positive."
1347
+ },
1348
+ "description": {
1349
+ "type": "string",
1350
+ "description": "The product description."
1351
+ },
1352
+ "currency": {
1353
+ "type": "string",
1354
+ "description": "ISO 4217 currency code. Defaults to the store's default currency when omitted."
1355
+ },
1356
+ "download_url": {
1357
+ "type": "string",
1358
+ "description": "Optional external download link delivered to the customer after purchase."
1359
+ }
1360
+ },
1361
+ "required": [
1362
+ "store_id",
1363
+ "name",
1364
+ "price"
1365
+ ]
1366
+ },
1367
+ "security": [
1368
+ {
1369
+ "apiToken": []
1370
+ }
1371
+ ],
1372
+ "group": "ecommerce"
1373
+ },
1374
+ {
1375
+ "name": "ecommerce_createPhysicalProductV1",
1376
+ "description": "Create a published physical product with a single variant priced in the store currency.",
1377
+ "method": "POST",
1378
+ "path": "/api/ecommerce/v1/stores/{store_id}/products/physical",
1379
+ "inputSchema": {
1380
+ "type": "object",
1381
+ "properties": {
1382
+ "store_id": {
1383
+ "type": "string",
1384
+ "description": "The ID of the store to create the product in."
1385
+ },
1386
+ "name": {
1387
+ "type": "string",
1388
+ "description": "The product name."
1389
+ },
1390
+ "price": {
1391
+ "type": "integer",
1392
+ "description": "Price in the smallest currency unit (e.g. cents). Must be positive."
1393
+ },
1394
+ "description": {
1395
+ "type": "string",
1396
+ "description": "The product description."
1397
+ },
1398
+ "currency": {
1399
+ "type": "string",
1400
+ "description": "ISO 4217 currency code. Defaults to the store's default currency when omitted."
1401
+ }
1402
+ },
1403
+ "required": [
1404
+ "store_id",
1405
+ "name",
1406
+ "price"
1407
+ ]
1408
+ },
1409
+ "security": [
1410
+ {
1411
+ "apiToken": []
1412
+ }
1413
+ ],
1414
+ "group": "ecommerce"
1415
+ },
1416
+ {
1417
+ "name": "ecommerce_setStoreShippingV1",
1418
+ "description": "Set the flat-rate shipping price for a store, creating the shipping zone if it does not exist yet.",
1419
+ "method": "POST",
1420
+ "path": "/api/ecommerce/v1/stores/{store_id}/shipping",
1421
+ "inputSchema": {
1422
+ "type": "object",
1423
+ "properties": {
1424
+ "store_id": {
1425
+ "type": "string",
1426
+ "description": "The ID of the store to configure shipping for."
1427
+ },
1428
+ "price": {
1429
+ "type": "integer",
1430
+ "description": "Flat shipping rate in the smallest currency unit (e.g. cents). Use 0 for free shipping."
1431
+ }
1432
+ },
1433
+ "required": [
1434
+ "store_id",
1435
+ "price"
1436
+ ]
1437
+ },
1438
+ "security": [
1439
+ {
1440
+ "apiToken": []
1441
+ }
1442
+ ],
1443
+ "group": "ecommerce"
1444
+ },
1445
+ {
1446
+ "name": "ecommerce_deleteStoreV1",
1447
+ "description": "Soft-delete a store owned by your account.\n\nThe underlying store data is preserved; only the store is marked as deleted.",
1448
+ "method": "DELETE",
1449
+ "path": "/api/ecommerce/v1/stores/{store_id}",
1450
+ "inputSchema": {
1451
+ "type": "object",
1452
+ "properties": {
1453
+ "store_id": {
1454
+ "type": "string",
1455
+ "description": "The ID of the store to delete."
1456
+ }
1457
+ },
1458
+ "required": [
1459
+ "store_id"
1460
+ ]
1461
+ },
1462
+ "security": [
1463
+ {
1464
+ "apiToken": []
1465
+ }
1466
+ ],
1467
+ "group": "ecommerce"
1468
+ },
1300
1469
  {
1301
1470
  "name": "ecommerce_getStoresV1",
1302
1471
  "description": "Retrieve the stores associated with your account.",
@@ -2583,6 +2752,43 @@ const tools: OpenApiTool[] = [
2583
2752
  ],
2584
2753
  "group": "reach"
2585
2754
  },
2755
+ {
2756
+ "name": "reach_listProfileSegmentContactsV1",
2757
+ "description": "Retrieve contacts associated with a specific segment for a given profile.\n\nThis endpoint allows you to fetch and filter contacts that belong to a particular segment,\nidentified by its UUID, scoped to a specific profile.",
2758
+ "method": "GET",
2759
+ "path": "/api/reach/v1/profiles/{profileUuid}/segmentation/segments/{segmentUuid}/contacts",
2760
+ "inputSchema": {
2761
+ "type": "object",
2762
+ "properties": {
2763
+ "profileUuid": {
2764
+ "type": "string",
2765
+ "description": "Profile uuid parameter"
2766
+ },
2767
+ "segmentUuid": {
2768
+ "type": "string",
2769
+ "description": "Segment uuid parameter"
2770
+ },
2771
+ "page": {
2772
+ "type": "integer",
2773
+ "description": "Page number"
2774
+ },
2775
+ "per_page": {
2776
+ "type": "integer",
2777
+ "description": "Number of items per page"
2778
+ }
2779
+ },
2780
+ "required": [
2781
+ "profileUuid",
2782
+ "segmentUuid"
2783
+ ]
2784
+ },
2785
+ "security": [
2786
+ {
2787
+ "apiToken": []
2788
+ }
2789
+ ],
2790
+ "group": "reach"
2791
+ },
2586
2792
  {
2587
2793
  "name": "reach_listSegmentContactsV1",
2588
2794
  "description": "Retrieve contacts associated with a specific segment.\n\nThis endpoint allows you to fetch and filter contacts that belong to a particular segment,\nidentified by its UUID.",
@@ -1,5 +1,174 @@
1
1
  // Auto-generated tool list for group: ecommerce
2
2
  export default [
3
+ {
4
+ "name": "ecommerce_enableManualPaymentMethodV1",
5
+ "description": "Enable a manual payment method so the store can accept orders without an online payment provider.",
6
+ "method": "POST",
7
+ "path": "/api/ecommerce/v1/stores/{store_id}/payment-methods/manual",
8
+ "inputSchema": {
9
+ "type": "object",
10
+ "properties": {
11
+ "store_id": {
12
+ "type": "string",
13
+ "description": "The ID of the store to enable manual payment for."
14
+ },
15
+ "title": {
16
+ "type": "string",
17
+ "description": "Optional display name shown to customers at checkout."
18
+ }
19
+ },
20
+ "required": [
21
+ "store_id"
22
+ ]
23
+ },
24
+ "security": [
25
+ {
26
+ "apiToken": []
27
+ }
28
+ ],
29
+ "group": "ecommerce"
30
+ },
31
+ {
32
+ "name": "ecommerce_createDigitalProductV1",
33
+ "description": "Create a published digital product with a single variant and an optional external download link.",
34
+ "method": "POST",
35
+ "path": "/api/ecommerce/v1/stores/{store_id}/products/digital",
36
+ "inputSchema": {
37
+ "type": "object",
38
+ "properties": {
39
+ "store_id": {
40
+ "type": "string",
41
+ "description": "The ID of the store to create the product in."
42
+ },
43
+ "name": {
44
+ "type": "string",
45
+ "description": "The product name."
46
+ },
47
+ "price": {
48
+ "type": "integer",
49
+ "description": "Price in the smallest currency unit (e.g. cents). Must be positive."
50
+ },
51
+ "description": {
52
+ "type": "string",
53
+ "description": "The product description."
54
+ },
55
+ "currency": {
56
+ "type": "string",
57
+ "description": "ISO 4217 currency code. Defaults to the store's default currency when omitted."
58
+ },
59
+ "download_url": {
60
+ "type": "string",
61
+ "description": "Optional external download link delivered to the customer after purchase."
62
+ }
63
+ },
64
+ "required": [
65
+ "store_id",
66
+ "name",
67
+ "price"
68
+ ]
69
+ },
70
+ "security": [
71
+ {
72
+ "apiToken": []
73
+ }
74
+ ],
75
+ "group": "ecommerce"
76
+ },
77
+ {
78
+ "name": "ecommerce_createPhysicalProductV1",
79
+ "description": "Create a published physical product with a single variant priced in the store currency.",
80
+ "method": "POST",
81
+ "path": "/api/ecommerce/v1/stores/{store_id}/products/physical",
82
+ "inputSchema": {
83
+ "type": "object",
84
+ "properties": {
85
+ "store_id": {
86
+ "type": "string",
87
+ "description": "The ID of the store to create the product in."
88
+ },
89
+ "name": {
90
+ "type": "string",
91
+ "description": "The product name."
92
+ },
93
+ "price": {
94
+ "type": "integer",
95
+ "description": "Price in the smallest currency unit (e.g. cents). Must be positive."
96
+ },
97
+ "description": {
98
+ "type": "string",
99
+ "description": "The product description."
100
+ },
101
+ "currency": {
102
+ "type": "string",
103
+ "description": "ISO 4217 currency code. Defaults to the store's default currency when omitted."
104
+ }
105
+ },
106
+ "required": [
107
+ "store_id",
108
+ "name",
109
+ "price"
110
+ ]
111
+ },
112
+ "security": [
113
+ {
114
+ "apiToken": []
115
+ }
116
+ ],
117
+ "group": "ecommerce"
118
+ },
119
+ {
120
+ "name": "ecommerce_setStoreShippingV1",
121
+ "description": "Set the flat-rate shipping price for a store, creating the shipping zone if it does not exist yet.",
122
+ "method": "POST",
123
+ "path": "/api/ecommerce/v1/stores/{store_id}/shipping",
124
+ "inputSchema": {
125
+ "type": "object",
126
+ "properties": {
127
+ "store_id": {
128
+ "type": "string",
129
+ "description": "The ID of the store to configure shipping for."
130
+ },
131
+ "price": {
132
+ "type": "integer",
133
+ "description": "Flat shipping rate in the smallest currency unit (e.g. cents). Use 0 for free shipping."
134
+ }
135
+ },
136
+ "required": [
137
+ "store_id",
138
+ "price"
139
+ ]
140
+ },
141
+ "security": [
142
+ {
143
+ "apiToken": []
144
+ }
145
+ ],
146
+ "group": "ecommerce"
147
+ },
148
+ {
149
+ "name": "ecommerce_deleteStoreV1",
150
+ "description": "Soft-delete a store owned by your account.\n\nThe underlying store data is preserved; only the store is marked as deleted.",
151
+ "method": "DELETE",
152
+ "path": "/api/ecommerce/v1/stores/{store_id}",
153
+ "inputSchema": {
154
+ "type": "object",
155
+ "properties": {
156
+ "store_id": {
157
+ "type": "string",
158
+ "description": "The ID of the store to delete."
159
+ }
160
+ },
161
+ "required": [
162
+ "store_id"
163
+ ]
164
+ },
165
+ "security": [
166
+ {
167
+ "apiToken": []
168
+ }
169
+ ],
170
+ "group": "ecommerce"
171
+ },
3
172
  {
4
173
  "name": "ecommerce_getStoresV1",
5
174
  "description": "Retrieve the stores associated with your account.",
@@ -10,6 +10,175 @@ export interface OpenApiTool extends Tool {
10
10
  }
11
11
 
12
12
  const tools: OpenApiTool[] = [
13
+ {
14
+ "name": "ecommerce_enableManualPaymentMethodV1",
15
+ "description": "Enable a manual payment method so the store can accept orders without an online payment provider.",
16
+ "method": "POST",
17
+ "path": "/api/ecommerce/v1/stores/{store_id}/payment-methods/manual",
18
+ "inputSchema": {
19
+ "type": "object",
20
+ "properties": {
21
+ "store_id": {
22
+ "type": "string",
23
+ "description": "The ID of the store to enable manual payment for."
24
+ },
25
+ "title": {
26
+ "type": "string",
27
+ "description": "Optional display name shown to customers at checkout."
28
+ }
29
+ },
30
+ "required": [
31
+ "store_id"
32
+ ]
33
+ },
34
+ "security": [
35
+ {
36
+ "apiToken": []
37
+ }
38
+ ],
39
+ "group": "ecommerce"
40
+ },
41
+ {
42
+ "name": "ecommerce_createDigitalProductV1",
43
+ "description": "Create a published digital product with a single variant and an optional external download link.",
44
+ "method": "POST",
45
+ "path": "/api/ecommerce/v1/stores/{store_id}/products/digital",
46
+ "inputSchema": {
47
+ "type": "object",
48
+ "properties": {
49
+ "store_id": {
50
+ "type": "string",
51
+ "description": "The ID of the store to create the product in."
52
+ },
53
+ "name": {
54
+ "type": "string",
55
+ "description": "The product name."
56
+ },
57
+ "price": {
58
+ "type": "integer",
59
+ "description": "Price in the smallest currency unit (e.g. cents). Must be positive."
60
+ },
61
+ "description": {
62
+ "type": "string",
63
+ "description": "The product description."
64
+ },
65
+ "currency": {
66
+ "type": "string",
67
+ "description": "ISO 4217 currency code. Defaults to the store's default currency when omitted."
68
+ },
69
+ "download_url": {
70
+ "type": "string",
71
+ "description": "Optional external download link delivered to the customer after purchase."
72
+ }
73
+ },
74
+ "required": [
75
+ "store_id",
76
+ "name",
77
+ "price"
78
+ ]
79
+ },
80
+ "security": [
81
+ {
82
+ "apiToken": []
83
+ }
84
+ ],
85
+ "group": "ecommerce"
86
+ },
87
+ {
88
+ "name": "ecommerce_createPhysicalProductV1",
89
+ "description": "Create a published physical product with a single variant priced in the store currency.",
90
+ "method": "POST",
91
+ "path": "/api/ecommerce/v1/stores/{store_id}/products/physical",
92
+ "inputSchema": {
93
+ "type": "object",
94
+ "properties": {
95
+ "store_id": {
96
+ "type": "string",
97
+ "description": "The ID of the store to create the product in."
98
+ },
99
+ "name": {
100
+ "type": "string",
101
+ "description": "The product name."
102
+ },
103
+ "price": {
104
+ "type": "integer",
105
+ "description": "Price in the smallest currency unit (e.g. cents). Must be positive."
106
+ },
107
+ "description": {
108
+ "type": "string",
109
+ "description": "The product description."
110
+ },
111
+ "currency": {
112
+ "type": "string",
113
+ "description": "ISO 4217 currency code. Defaults to the store's default currency when omitted."
114
+ }
115
+ },
116
+ "required": [
117
+ "store_id",
118
+ "name",
119
+ "price"
120
+ ]
121
+ },
122
+ "security": [
123
+ {
124
+ "apiToken": []
125
+ }
126
+ ],
127
+ "group": "ecommerce"
128
+ },
129
+ {
130
+ "name": "ecommerce_setStoreShippingV1",
131
+ "description": "Set the flat-rate shipping price for a store, creating the shipping zone if it does not exist yet.",
132
+ "method": "POST",
133
+ "path": "/api/ecommerce/v1/stores/{store_id}/shipping",
134
+ "inputSchema": {
135
+ "type": "object",
136
+ "properties": {
137
+ "store_id": {
138
+ "type": "string",
139
+ "description": "The ID of the store to configure shipping for."
140
+ },
141
+ "price": {
142
+ "type": "integer",
143
+ "description": "Flat shipping rate in the smallest currency unit (e.g. cents). Use 0 for free shipping."
144
+ }
145
+ },
146
+ "required": [
147
+ "store_id",
148
+ "price"
149
+ ]
150
+ },
151
+ "security": [
152
+ {
153
+ "apiToken": []
154
+ }
155
+ ],
156
+ "group": "ecommerce"
157
+ },
158
+ {
159
+ "name": "ecommerce_deleteStoreV1",
160
+ "description": "Soft-delete a store owned by your account.\n\nThe underlying store data is preserved; only the store is marked as deleted.",
161
+ "method": "DELETE",
162
+ "path": "/api/ecommerce/v1/stores/{store_id}",
163
+ "inputSchema": {
164
+ "type": "object",
165
+ "properties": {
166
+ "store_id": {
167
+ "type": "string",
168
+ "description": "The ID of the store to delete."
169
+ }
170
+ },
171
+ "required": [
172
+ "store_id"
173
+ ]
174
+ },
175
+ "security": [
176
+ {
177
+ "apiToken": []
178
+ }
179
+ ],
180
+ "group": "ecommerce"
181
+ },
13
182
  {
14
183
  "name": "ecommerce_getStoresV1",
15
184
  "description": "Retrieve the stores associated with your account.",
@@ -236,6 +236,43 @@ export default [
236
236
  ],
237
237
  "group": "reach"
238
238
  },
239
+ {
240
+ "name": "reach_listProfileSegmentContactsV1",
241
+ "description": "Retrieve contacts associated with a specific segment for a given profile.\n\nThis endpoint allows you to fetch and filter contacts that belong to a particular segment,\nidentified by its UUID, scoped to a specific profile.",
242
+ "method": "GET",
243
+ "path": "/api/reach/v1/profiles/{profileUuid}/segmentation/segments/{segmentUuid}/contacts",
244
+ "inputSchema": {
245
+ "type": "object",
246
+ "properties": {
247
+ "profileUuid": {
248
+ "type": "string",
249
+ "description": "Profile uuid parameter"
250
+ },
251
+ "segmentUuid": {
252
+ "type": "string",
253
+ "description": "Segment uuid parameter"
254
+ },
255
+ "page": {
256
+ "type": "integer",
257
+ "description": "Page number"
258
+ },
259
+ "per_page": {
260
+ "type": "integer",
261
+ "description": "Number of items per page"
262
+ }
263
+ },
264
+ "required": [
265
+ "profileUuid",
266
+ "segmentUuid"
267
+ ]
268
+ },
269
+ "security": [
270
+ {
271
+ "apiToken": []
272
+ }
273
+ ],
274
+ "group": "reach"
275
+ },
239
276
  {
240
277
  "name": "reach_listSegmentContactsV1",
241
278
  "description": "Retrieve contacts associated with a specific segment.\n\nThis endpoint allows you to fetch and filter contacts that belong to a particular segment,\nidentified by its UUID.",
@@ -246,6 +246,43 @@ const tools: OpenApiTool[] = [
246
246
  ],
247
247
  "group": "reach"
248
248
  },
249
+ {
250
+ "name": "reach_listProfileSegmentContactsV1",
251
+ "description": "Retrieve contacts associated with a specific segment for a given profile.\n\nThis endpoint allows you to fetch and filter contacts that belong to a particular segment,\nidentified by its UUID, scoped to a specific profile.",
252
+ "method": "GET",
253
+ "path": "/api/reach/v1/profiles/{profileUuid}/segmentation/segments/{segmentUuid}/contacts",
254
+ "inputSchema": {
255
+ "type": "object",
256
+ "properties": {
257
+ "profileUuid": {
258
+ "type": "string",
259
+ "description": "Profile uuid parameter"
260
+ },
261
+ "segmentUuid": {
262
+ "type": "string",
263
+ "description": "Segment uuid parameter"
264
+ },
265
+ "page": {
266
+ "type": "integer",
267
+ "description": "Page number"
268
+ },
269
+ "per_page": {
270
+ "type": "integer",
271
+ "description": "Number of items per page"
272
+ }
273
+ },
274
+ "required": [
275
+ "profileUuid",
276
+ "segmentUuid"
277
+ ]
278
+ },
279
+ "security": [
280
+ {
281
+ "apiToken": []
282
+ }
283
+ ],
284
+ "group": "reach"
285
+ },
249
286
  {
250
287
  "name": "reach_listSegmentContactsV1",
251
288
  "description": "Retrieve contacts associated with a specific segment.\n\nThis endpoint allows you to fetch and filter contacts that belong to a particular segment,\nidentified by its UUID.",
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/all.js';
5
5
 
6
- startServer({ name: 'hostinger-api-mcp', version: '0.2.13', tools });
6
+ startServer({ name: 'hostinger-api-mcp', version: '0.2.15', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/all.js';
5
5
 
6
- startServer({ name: 'hostinger-api-mcp', version: '0.2.13', tools });
6
+ startServer({ name: 'hostinger-api-mcp', version: '0.2.15', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/billing.js';
5
5
 
6
- startServer({ name: 'hostinger-billing-mcp', version: '0.2.13', tools });
6
+ startServer({ name: 'hostinger-billing-mcp', version: '0.2.15', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/billing.js';
5
5
 
6
- startServer({ name: 'hostinger-billing-mcp', version: '0.2.13', tools });
6
+ startServer({ name: 'hostinger-billing-mcp', version: '0.2.15', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/dns.js';
5
5
 
6
- startServer({ name: 'hostinger-dns-mcp', version: '0.2.13', tools });
6
+ startServer({ name: 'hostinger-dns-mcp', version: '0.2.15', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/dns.js';
5
5
 
6
- startServer({ name: 'hostinger-dns-mcp', version: '0.2.13', tools });
6
+ startServer({ name: 'hostinger-dns-mcp', version: '0.2.15', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/domains.js';
5
5
 
6
- startServer({ name: 'hostinger-domains-mcp', version: '0.2.13', tools });
6
+ startServer({ name: 'hostinger-domains-mcp', version: '0.2.15', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/domains.js';
5
5
 
6
- startServer({ name: 'hostinger-domains-mcp', version: '0.2.13', tools });
6
+ startServer({ name: 'hostinger-domains-mcp', version: '0.2.15', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/ecommerce.js';
5
5
 
6
- startServer({ name: 'hostinger-ecommerce-mcp', version: '0.2.13', tools });
6
+ startServer({ name: 'hostinger-ecommerce-mcp', version: '0.2.15', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/ecommerce.js';
5
5
 
6
- startServer({ name: 'hostinger-ecommerce-mcp', version: '0.2.13', tools });
6
+ startServer({ name: 'hostinger-ecommerce-mcp', version: '0.2.15', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/horizons.js';
5
5
 
6
- startServer({ name: 'hostinger-horizons-mcp', version: '0.2.13', tools });
6
+ startServer({ name: 'hostinger-horizons-mcp', version: '0.2.15', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/horizons.js';
5
5
 
6
- startServer({ name: 'hostinger-horizons-mcp', version: '0.2.13', tools });
6
+ startServer({ name: 'hostinger-horizons-mcp', version: '0.2.15', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/hosting.js';
5
5
 
6
- startServer({ name: 'hostinger-hosting-mcp', version: '0.2.13', tools });
6
+ startServer({ name: 'hostinger-hosting-mcp', version: '0.2.15', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/hosting.js';
5
5
 
6
- startServer({ name: 'hostinger-hosting-mcp', version: '0.2.13', tools });
6
+ startServer({ name: 'hostinger-hosting-mcp', version: '0.2.15', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/reach.js';
5
5
 
6
- startServer({ name: 'hostinger-reach-mcp', version: '0.2.13', tools });
6
+ startServer({ name: 'hostinger-reach-mcp', version: '0.2.15', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/reach.js';
5
5
 
6
- startServer({ name: 'hostinger-reach-mcp', version: '0.2.13', tools });
6
+ startServer({ name: 'hostinger-reach-mcp', version: '0.2.15', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/vps.js';
5
5
 
6
- startServer({ name: 'hostinger-vps-mcp', version: '0.2.13', tools });
6
+ startServer({ name: 'hostinger-vps-mcp', version: '0.2.15', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/vps.js';
5
5
 
6
- startServer({ name: 'hostinger-vps-mcp', version: '0.2.13', tools });
6
+ startServer({ name: 'hostinger-vps-mcp', version: '0.2.15', tools });
package/types.d.ts CHANGED
@@ -796,6 +796,117 @@ Use this endpoint to view which domains use specific contact profiles.
796
796
  response: any; // Response structure will depend on the API
797
797
  };
798
798
 
799
+ /**
800
+ * Enable a manual payment method so the store can accept orders without an online payment provider.
801
+ */
802
+ "ecommerce_enableManualPaymentMethodV1": {
803
+ params: {
804
+ /**
805
+ * The ID of the store to enable manual payment for.
806
+ */
807
+ store_id: string;
808
+ /**
809
+ * Optional display name shown to customers at checkout.
810
+ */
811
+ title?: string;
812
+ };
813
+ response: any; // Response structure will depend on the API
814
+ };
815
+
816
+ /**
817
+ * Create a published digital product with a single variant and an optional external download link.
818
+ */
819
+ "ecommerce_createDigitalProductV1": {
820
+ params: {
821
+ /**
822
+ * The ID of the store to create the product in.
823
+ */
824
+ store_id: string;
825
+ /**
826
+ * The product name.
827
+ */
828
+ name: string;
829
+ /**
830
+ * Price in the smallest currency unit (e.g. cents). Must be positive.
831
+ */
832
+ price: number;
833
+ /**
834
+ * The product description.
835
+ */
836
+ description?: string;
837
+ /**
838
+ * ISO 4217 currency code. Defaults to the store's default currency when omitted.
839
+ */
840
+ currency?: string;
841
+ /**
842
+ * Optional external download link delivered to the customer after purchase.
843
+ */
844
+ download_url?: string;
845
+ };
846
+ response: any; // Response structure will depend on the API
847
+ };
848
+
849
+ /**
850
+ * Create a published physical product with a single variant priced in the store currency.
851
+ */
852
+ "ecommerce_createPhysicalProductV1": {
853
+ params: {
854
+ /**
855
+ * The ID of the store to create the product in.
856
+ */
857
+ store_id: string;
858
+ /**
859
+ * The product name.
860
+ */
861
+ name: string;
862
+ /**
863
+ * Price in the smallest currency unit (e.g. cents). Must be positive.
864
+ */
865
+ price: number;
866
+ /**
867
+ * The product description.
868
+ */
869
+ description?: string;
870
+ /**
871
+ * ISO 4217 currency code. Defaults to the store's default currency when omitted.
872
+ */
873
+ currency?: string;
874
+ };
875
+ response: any; // Response structure will depend on the API
876
+ };
877
+
878
+ /**
879
+ * Set the flat-rate shipping price for a store, creating the shipping zone if it does not exist yet.
880
+ */
881
+ "ecommerce_setStoreShippingV1": {
882
+ params: {
883
+ /**
884
+ * The ID of the store to configure shipping for.
885
+ */
886
+ store_id: string;
887
+ /**
888
+ * Flat shipping rate in the smallest currency unit (e.g. cents). Use 0 for free shipping.
889
+ */
890
+ price: number;
891
+ };
892
+ response: any; // Response structure will depend on the API
893
+ };
894
+
895
+ /**
896
+ * Soft-delete a store owned by your account.
897
+
898
+ The underlying store data is preserved; only the store is marked as deleted.
899
+ */
900
+ "ecommerce_deleteStoreV1": {
901
+ params: {
902
+ /**
903
+ * The ID of the store to delete.
904
+ */
905
+ store_id: string;
906
+ };
907
+ response: any; // Response structure will depend on the API
908
+ };
909
+
799
910
  /**
800
911
  * Retrieve the stores associated with your account.
801
912
  */
@@ -1692,6 +1803,34 @@ The segment can be configured with specific criteria like email, name, subscript
1692
1803
  response: any; // Response structure will depend on the API
1693
1804
  };
1694
1805
 
1806
+ /**
1807
+ * Retrieve contacts associated with a specific segment for a given profile.
1808
+
1809
+ This endpoint allows you to fetch and filter contacts that belong to a particular segment,
1810
+ identified by its UUID, scoped to a specific profile.
1811
+ */
1812
+ "reach_listProfileSegmentContactsV1": {
1813
+ params: {
1814
+ /**
1815
+ * Profile uuid parameter
1816
+ */
1817
+ profileUuid: string;
1818
+ /**
1819
+ * Segment uuid parameter
1820
+ */
1821
+ segmentUuid: string;
1822
+ /**
1823
+ * Page number
1824
+ */
1825
+ page?: number;
1826
+ /**
1827
+ * Number of items per page
1828
+ */
1829
+ per_page?: number;
1830
+ };
1831
+ response: any; // Response structure will depend on the API
1832
+ };
1833
+
1695
1834
  /**
1696
1835
  * Retrieve contacts associated with a specific segment.
1697
1836