hostinger-api-mcp 0.0.15 → 0.0.17

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 (5) hide show
  1. package/README.md +22 -20
  2. package/package.json +1 -1
  3. package/server.js +205 -32
  4. package/server.ts +205 -32
  5. package/types.d.ts +22 -20
package/README.md CHANGED
@@ -147,7 +147,7 @@ We recommend use other payment methods than `credit_card` if you encounter this
147
147
  **Parameters**:
148
148
 
149
149
  - `payment_method_id`: Payment method ID (required)
150
- - `items`: items property (required)
150
+ - `items`: items parameter (required)
151
151
  - `coupons`: Discount coupon codes
152
152
 
153
153
  ### billing_setDefaultPaymentMethodV1
@@ -263,7 +263,7 @@ Otherwise existing records will be updated and new records will be added.
263
263
 
264
264
  - `domain`: Domain name (required)
265
265
  - `overwrite`: If `true`, resource records (RRs) matching name and type will be deleted and new RRs will be created, otherwise resource records' ttl's are updated and new records are appended. If no matching RRs are found, they are created.
266
- - `zone`: zone property (required)
266
+ - `zone`: zone parameter (required)
267
267
 
268
268
  ### DNS_deleteZoneRecordsV1
269
269
 
@@ -309,11 +309,13 @@ If there is validation error, the response will fail with `422 Validation error`
309
309
 
310
310
  - `domain`: Domain name (required)
311
311
  - `overwrite`: If `true`, resource records (RRs) matching name and type will be deleted and new RRs will be created, otherwise resource records' ttl's are updated and new records are appended. If no matching RRs are found, they are created.
312
- - `zone`: zone property (required)
312
+ - `zone`: zone parameter (required)
313
313
 
314
314
  ### domains_checkDomainAvailabilityV1
315
315
 
316
316
  This endpoint checks the availability of a domain name. Multiple TLDs can be checked at once.
317
+ If you want to get alternative domains with response, provide only one TLD in the request and set `with_alternatives` to `true`.
318
+ TLDs should be provided without the leading dot (e.g. `com`, `net`, `org`).
317
319
 
318
320
  Endpoint has rate limit of 10 requests per minute.
319
321
 
@@ -322,8 +324,8 @@ Endpoint has rate limit of 10 requests per minute.
322
324
 
323
325
  **Parameters**:
324
326
 
325
- - `domain`: Domain name without TLD (required)
326
- - `tlds`: TLDs to check (without trailing dot) (required)
327
+ - `domain`: Domain name (without TLD) (required)
328
+ - `tlds`: TLDs to check (without leading dot) (required)
327
329
  - `with_alternatives`: Should response include alternatives
328
330
 
329
331
  ### domains_getForwardingDataV1
@@ -500,7 +502,7 @@ This endpoint retrieves a list of WHOIS contact profiles.
500
502
 
501
503
  **Parameters**:
502
504
 
503
- - `tld`: Filter by TLD (without trailing dot)
505
+ - `tld`: Filter by TLD (without leading dot)
504
506
 
505
507
  ### domains_createWHOISProfileV1
506
508
 
@@ -511,7 +513,7 @@ This endpoint creates WHOIS contact profile.
511
513
 
512
514
  **Parameters**:
513
515
 
514
- - `tld`: TLD of the domain (without trailing dot) (required)
516
+ - `tld`: TLD of the domain (without leading dot) (required)
515
517
  - `country`: ISO 3166 2-letter country code (required)
516
518
  - `entity_type`: Legal entity type (required)
517
519
  - `tld_details`: TLD details
@@ -607,7 +609,7 @@ This endpoint creates a new firewall.
607
609
 
608
610
  **Parameters**:
609
611
 
610
- - `name`: name property (required)
612
+ - `name`: name parameter (required)
611
613
 
612
614
  ### VPS_updateFirewallRuleV1
613
615
 
@@ -622,9 +624,9 @@ Any virtual machine that has this firewall activated will loose sync with the fi
622
624
 
623
625
  - `firewallId`: Firewall ID (required)
624
626
  - `ruleId`: Firewall Rule ID (required)
625
- - `protocol`: protocol property (required)
627
+ - `protocol`: protocol parameter (required)
626
628
  - `port`: Port or port range, ex: 1024:2048 (required)
627
- - `source`: source property (required)
629
+ - `source`: source parameter (required)
628
630
  - `source_detail`: IP range, CIDR, single IP or `any` (required)
629
631
 
630
632
  ### VPS_deleteFirewallRuleV1
@@ -654,9 +656,9 @@ Any virtual machine that has this firewall activated will loose sync with the fi
654
656
  **Parameters**:
655
657
 
656
658
  - `firewallId`: Firewall ID (required)
657
- - `protocol`: protocol property (required)
659
+ - `protocol`: protocol parameter (required)
658
660
  - `port`: Port or port range, ex: 1024:2048 (required)
659
- - `source`: source property (required)
661
+ - `source`: source parameter (required)
660
662
  - `source_detail`: IP range, CIDR, single IP or `any` (required)
661
663
 
662
664
  ### VPS_syncFirewallV1
@@ -783,8 +785,8 @@ which can then be attached to virtual machine instances for secure access.
783
785
 
784
786
  **Parameters**:
785
787
 
786
- - `name`: name property (required)
787
- - `key`: key property (required)
788
+ - `name`: name parameter (required)
789
+ - `key`: key parameter (required)
788
790
 
789
791
  ### VPS_getTemplateV1
790
792
 
@@ -901,7 +903,7 @@ you need to point your domain A/AAAA records to virtual machine IP as well.
901
903
  **Parameters**:
902
904
 
903
905
  - `virtualMachineId`: Virtual Machine ID (required)
904
- - `hostname`: hostname property (required)
906
+ - `hostname`: hostname parameter (required)
905
907
 
906
908
  ### VPS_resetHostnameV1
907
909
 
@@ -1004,8 +1006,8 @@ Be aware, that improper nameserver configuration can lead to the virtual machine
1004
1006
  **Parameters**:
1005
1007
 
1006
1008
  - `virtualMachineId`: Virtual Machine ID (required)
1007
- - `ns1`: ns1 property (required)
1008
- - `ns2`: ns2 property
1009
+ - `ns1`: ns1 parameter (required)
1010
+ - `ns2`: ns2 parameter
1009
1011
 
1010
1012
  ### VPS_createPTRRecordV1
1011
1013
 
@@ -1144,9 +1146,9 @@ New virtual machine can be purchased using [`/api/billing/v1/orders`](/#tag/bill
1144
1146
  - `hostname`: Override default hostname of the virtual machine
1145
1147
  - `install_monarx`: Install Monarx malware scanner (if supported)
1146
1148
  - `enable_backups`: Enable weekly backup schedule
1147
- - `ns1`: ns1 property
1148
- - `ns2`: ns2 property
1149
- - `public_key`: public_key property
1149
+ - `ns1`: ns1 parameter
1150
+ - `ns2`: ns2 parameter
1151
+ - `public_key`: public_key parameter
1150
1152
 
1151
1153
  ### VPS_getSnapshotV1
1152
1154
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hostinger-api-mcp",
3
- "version": "0.0.15",
3
+ "version": "0.0.17",
4
4
  "description": "MCP server for Hostinger API",
5
5
  "repository": {
6
6
  "type": "git",
package/server.js CHANGED
@@ -47,11 +47,33 @@ const TOOLS = [
47
47
  },
48
48
  "items": {
49
49
  "type": "array",
50
- "description": "items property"
50
+ "description": "items parameter",
51
+ "items": {
52
+ "type": "object",
53
+ "description": "items parameter",
54
+ "properties": {
55
+ "item_id": {
56
+ "type": "string",
57
+ "description": "Price Item ID"
58
+ },
59
+ "quantity": {
60
+ "type": "integer",
61
+ "description": "quantity parameter"
62
+ }
63
+ },
64
+ "required": [
65
+ "item_id",
66
+ "quantity"
67
+ ]
68
+ }
51
69
  },
52
70
  "coupons": {
53
71
  "type": "array",
54
- "description": "Discount coupon codes"
72
+ "description": "Discount coupon codes",
73
+ "items": {
74
+ "type": "string",
75
+ "description": "coupons parameter"
76
+ }
55
77
  }
56
78
  },
57
79
  "required": [
@@ -286,7 +308,59 @@ const TOOLS = [
286
308
  },
287
309
  "zone": {
288
310
  "type": "array",
289
- "description": "zone property"
311
+ "description": "zone parameter",
312
+ "items": {
313
+ "type": "object",
314
+ "description": "zone parameter",
315
+ "properties": {
316
+ "name": {
317
+ "type": "string",
318
+ "description": "Name of the record (use `@` for wildcard name)"
319
+ },
320
+ "records": {
321
+ "type": "array",
322
+ "description": "Records assigned to the name",
323
+ "items": {
324
+ "type": "object",
325
+ "description": "records parameter",
326
+ "properties": {
327
+ "content": {
328
+ "type": "string",
329
+ "description": "Content of the name record"
330
+ }
331
+ },
332
+ "required": [
333
+ "content"
334
+ ]
335
+ }
336
+ },
337
+ "ttl": {
338
+ "type": "integer",
339
+ "description": "TTL (Time-To-Live) of the record"
340
+ },
341
+ "type": {
342
+ "type": "string",
343
+ "description": "Type of the record",
344
+ "enum": [
345
+ "A",
346
+ "AAAA",
347
+ "CNAME",
348
+ "ALIAS",
349
+ "MX",
350
+ "TXT",
351
+ "NS",
352
+ "SOA",
353
+ "SRV",
354
+ "CAA"
355
+ ]
356
+ }
357
+ },
358
+ "required": [
359
+ "name",
360
+ "record",
361
+ "type"
362
+ ]
363
+ }
290
364
  }
291
365
  },
292
366
  "required": [
@@ -345,7 +419,11 @@ const TOOLS = [
345
419
  },
346
420
  "whitelisted_record_types": {
347
421
  "type": "array",
348
- "description": "Specifies which record types to not reset"
422
+ "description": "Specifies which record types to not reset",
423
+ "items": {
424
+ "type": "string",
425
+ "description": "whitelisted_record_types parameter"
426
+ }
349
427
  }
350
428
  },
351
429
  "required": [
@@ -376,7 +454,59 @@ const TOOLS = [
376
454
  },
377
455
  "zone": {
378
456
  "type": "array",
379
- "description": "zone property"
457
+ "description": "zone parameter",
458
+ "items": {
459
+ "type": "object",
460
+ "description": "zone parameter",
461
+ "properties": {
462
+ "name": {
463
+ "type": "string",
464
+ "description": "Name of the record (use `@` for wildcard name)"
465
+ },
466
+ "records": {
467
+ "type": "array",
468
+ "description": "Records assigned to the name",
469
+ "items": {
470
+ "type": "object",
471
+ "description": "records parameter",
472
+ "properties": {
473
+ "content": {
474
+ "type": "string",
475
+ "description": "Content of the name record"
476
+ }
477
+ },
478
+ "required": [
479
+ "content"
480
+ ]
481
+ }
482
+ },
483
+ "ttl": {
484
+ "type": "integer",
485
+ "description": "TTL (Time-To-Live) of the record"
486
+ },
487
+ "type": {
488
+ "type": "string",
489
+ "description": "Type of the record",
490
+ "enum": [
491
+ "A",
492
+ "AAAA",
493
+ "CNAME",
494
+ "ALIAS",
495
+ "MX",
496
+ "TXT",
497
+ "NS",
498
+ "SOA",
499
+ "SRV",
500
+ "CAA"
501
+ ]
502
+ }
503
+ },
504
+ "required": [
505
+ "name",
506
+ "record",
507
+ "type"
508
+ ]
509
+ }
380
510
  }
381
511
  },
382
512
  "required": [
@@ -392,7 +522,7 @@ const TOOLS = [
392
522
  },
393
523
  {
394
524
  "name": "domains_checkDomainAvailabilityV1",
395
- "description": "This endpoint checks the availability of a domain name. Multiple TLDs can be checked at once.\n\nEndpoint has rate limit of 10 requests per minute.",
525
+ "description": "This endpoint checks the availability of a domain name. Multiple TLDs can be checked at once.\nIf you want to get alternative domains with response, provide only one TLD in the request and set `with_alternatives` to `true`.\nTLDs should be provided without the leading dot (e.g. `com`, `net`, `org`).\n\nEndpoint has rate limit of 10 requests per minute.",
396
526
  "method": "POST",
397
527
  "path": "/api/domains/v1/availability",
398
528
  "inputSchema": {
@@ -400,11 +530,15 @@ const TOOLS = [
400
530
  "properties": {
401
531
  "domain": {
402
532
  "type": "string",
403
- "description": "Domain name without TLD"
533
+ "description": "Domain name (without TLD)"
404
534
  },
405
535
  "tlds": {
406
536
  "type": "array",
407
- "description": "TLDs to check (without trailing dot)"
537
+ "description": "TLDs to check (without leading dot)",
538
+ "items": {
539
+ "type": "string",
540
+ "description": "tlds parameter"
541
+ }
408
542
  },
409
543
  "with_alternatives": {
410
544
  "type": "boolean",
@@ -612,15 +746,38 @@ const TOOLS = [
612
746
  },
613
747
  "domain_contacts": {
614
748
  "type": "object",
615
- "description": "Domain contact information"
749
+ "description": "Domain contact information",
750
+ "properties": {
751
+ "owner_id": {
752
+ "type": "integer",
753
+ "description": "Owner contact WHOIS record ID"
754
+ },
755
+ "admin_id": {
756
+ "type": "integer",
757
+ "description": "Administrative contact WHOIS record ID"
758
+ },
759
+ "billing_id": {
760
+ "type": "integer",
761
+ "description": "Billing contact WHOIS record ID"
762
+ },
763
+ "tech_id": {
764
+ "type": "integer",
765
+ "description": "Technical contact WHOIS record ID"
766
+ }
767
+ }
616
768
  },
617
769
  "additional_details": {
618
770
  "type": "object",
619
- "description": "Additional registration data, possible values depends on TLD"
771
+ "description": "Additional registration data, possible values depends on TLD",
772
+ "properties": {}
620
773
  },
621
774
  "coupons": {
622
775
  "type": "array",
623
- "description": "Discount coupon codes"
776
+ "description": "Discount coupon codes",
777
+ "items": {
778
+ "type": "string",
779
+ "description": "coupons parameter"
780
+ }
624
781
  }
625
782
  },
626
783
  "required": [
@@ -777,7 +934,7 @@ const TOOLS = [
777
934
  "properties": {
778
935
  "tld": {
779
936
  "type": "string",
780
- "description": "Filter by TLD (without trailing dot)"
937
+ "description": "Filter by TLD (without leading dot)"
781
938
  }
782
939
  },
783
940
  "required": []
@@ -798,7 +955,7 @@ const TOOLS = [
798
955
  "properties": {
799
956
  "tld": {
800
957
  "type": "string",
801
- "description": "TLD of the domain (without trailing dot)"
958
+ "description": "TLD of the domain (without leading dot)"
802
959
  },
803
960
  "country": {
804
961
  "type": "string",
@@ -814,11 +971,13 @@ const TOOLS = [
814
971
  },
815
972
  "tld_details": {
816
973
  "type": "object",
817
- "description": "TLD details"
974
+ "description": "TLD details",
975
+ "properties": {}
818
976
  },
819
977
  "whois_details": {
820
978
  "type": "object",
821
- "description": "WHOIS details"
979
+ "description": "WHOIS details",
980
+ "properties": {}
822
981
  }
823
982
  },
824
983
  "required": [
@@ -1006,7 +1165,7 @@ const TOOLS = [
1006
1165
  "properties": {
1007
1166
  "name": {
1008
1167
  "type": "string",
1009
- "description": "name property"
1168
+ "description": "name parameter"
1010
1169
  }
1011
1170
  },
1012
1171
  "required": [
@@ -1037,7 +1196,7 @@ const TOOLS = [
1037
1196
  },
1038
1197
  "protocol": {
1039
1198
  "type": "string",
1040
- "description": "protocol property",
1199
+ "description": "protocol parameter",
1041
1200
  "enum": [
1042
1201
  "TCP",
1043
1202
  "UDP",
@@ -1060,7 +1219,7 @@ const TOOLS = [
1060
1219
  },
1061
1220
  "source": {
1062
1221
  "type": "string",
1063
- "description": "source property",
1222
+ "description": "source parameter",
1064
1223
  "enum": [
1065
1224
  "any",
1066
1225
  "custom"
@@ -1128,7 +1287,7 @@ const TOOLS = [
1128
1287
  },
1129
1288
  "protocol": {
1130
1289
  "type": "string",
1131
- "description": "protocol property",
1290
+ "description": "protocol parameter",
1132
1291
  "enum": [
1133
1292
  "TCP",
1134
1293
  "UDP",
@@ -1151,7 +1310,7 @@ const TOOLS = [
1151
1310
  },
1152
1311
  "source": {
1153
1312
  "type": "string",
1154
- "description": "source property",
1313
+ "description": "source parameter",
1155
1314
  "enum": [
1156
1315
  "any",
1157
1316
  "custom"
@@ -1346,7 +1505,11 @@ const TOOLS = [
1346
1505
  },
1347
1506
  "ids": {
1348
1507
  "type": "array",
1349
- "description": "Public Key IDs to attach"
1508
+ "description": "Public Key IDs to attach",
1509
+ "items": {
1510
+ "type": "integer",
1511
+ "description": "ids parameter"
1512
+ }
1350
1513
  }
1351
1514
  },
1352
1515
  "required": [
@@ -1414,11 +1577,11 @@ const TOOLS = [
1414
1577
  "properties": {
1415
1578
  "name": {
1416
1579
  "type": "string",
1417
- "description": "name property"
1580
+ "description": "name parameter"
1418
1581
  },
1419
1582
  "key": {
1420
1583
  "type": "string",
1421
- "description": "key property"
1584
+ "description": "key parameter"
1422
1585
  }
1423
1586
  },
1424
1587
  "required": [
@@ -1650,7 +1813,7 @@ const TOOLS = [
1650
1813
  },
1651
1814
  "hostname": {
1652
1815
  "type": "string",
1653
- "description": "hostname property"
1816
+ "description": "hostname parameter"
1654
1817
  }
1655
1818
  },
1656
1819
  "required": [
@@ -1842,11 +2005,11 @@ const TOOLS = [
1842
2005
  },
1843
2006
  "ns1": {
1844
2007
  "type": "string",
1845
- "description": "ns1 property"
2008
+ "description": "ns1 parameter"
1846
2009
  },
1847
2010
  "ns2": {
1848
2011
  "type": "string",
1849
- "description": "ns2 property"
2012
+ "description": "ns2 parameter"
1850
2013
  }
1851
2014
  },
1852
2015
  "required": [
@@ -2114,15 +2277,25 @@ const TOOLS = [
2114
2277
  },
2115
2278
  "ns1": {
2116
2279
  "type": "string",
2117
- "description": "ns1 property"
2280
+ "description": "ns1 parameter"
2118
2281
  },
2119
2282
  "ns2": {
2120
2283
  "type": "string",
2121
- "description": "ns2 property"
2284
+ "description": "ns2 parameter"
2122
2285
  },
2123
2286
  "public_key": {
2124
2287
  "type": "object",
2125
- "description": "public_key property"
2288
+ "description": "public_key parameter",
2289
+ "properties": {
2290
+ "name": {
2291
+ "type": "string",
2292
+ "description": "Name of the SSH key"
2293
+ },
2294
+ "key": {
2295
+ "type": "string",
2296
+ "description": "SSH public key"
2297
+ }
2298
+ }
2126
2299
  }
2127
2300
  },
2128
2301
  "required": [
@@ -2286,7 +2459,7 @@ const SECURITY_SCHEMES = {
2286
2459
 
2287
2460
  /**
2288
2461
  * MCP Server for Hostinger API
2289
- * Generated from OpenAPI spec version 0.0.37
2462
+ * Generated from OpenAPI spec version 0.0.39
2290
2463
  */
2291
2464
  class MCPServer {
2292
2465
  constructor() {
@@ -2304,7 +2477,7 @@ class MCPServer {
2304
2477
  this.server = new Server(
2305
2478
  {
2306
2479
  name: "hostinger-api-mcp",
2307
- version: "0.0.15",
2480
+ version: "0.0.17",
2308
2481
  },
2309
2482
  {
2310
2483
  capabilities: {
@@ -2329,7 +2502,7 @@ class MCPServer {
2329
2502
  });
2330
2503
  }
2331
2504
 
2332
- headers['User-Agent'] = 'hostinger-mcp-server/0.0.15';
2505
+ headers['User-Agent'] = 'hostinger-mcp-server/0.0.17';
2333
2506
 
2334
2507
  return headers;
2335
2508
  }
package/server.ts CHANGED
@@ -63,11 +63,33 @@ const TOOLS: OpenApiTool[] = [
63
63
  },
64
64
  "items": {
65
65
  "type": "array",
66
- "description": "items property"
66
+ "description": "items parameter",
67
+ "items": {
68
+ "type": "object",
69
+ "description": "items parameter",
70
+ "properties": {
71
+ "item_id": {
72
+ "type": "string",
73
+ "description": "Price Item ID"
74
+ },
75
+ "quantity": {
76
+ "type": "integer",
77
+ "description": "quantity parameter"
78
+ }
79
+ },
80
+ "required": [
81
+ "item_id",
82
+ "quantity"
83
+ ]
84
+ }
67
85
  },
68
86
  "coupons": {
69
87
  "type": "array",
70
- "description": "Discount coupon codes"
88
+ "description": "Discount coupon codes",
89
+ "items": {
90
+ "type": "string",
91
+ "description": "coupons parameter"
92
+ }
71
93
  }
72
94
  },
73
95
  "required": [
@@ -302,7 +324,59 @@ const TOOLS: OpenApiTool[] = [
302
324
  },
303
325
  "zone": {
304
326
  "type": "array",
305
- "description": "zone property"
327
+ "description": "zone parameter",
328
+ "items": {
329
+ "type": "object",
330
+ "description": "zone parameter",
331
+ "properties": {
332
+ "name": {
333
+ "type": "string",
334
+ "description": "Name of the record (use `@` for wildcard name)"
335
+ },
336
+ "records": {
337
+ "type": "array",
338
+ "description": "Records assigned to the name",
339
+ "items": {
340
+ "type": "object",
341
+ "description": "records parameter",
342
+ "properties": {
343
+ "content": {
344
+ "type": "string",
345
+ "description": "Content of the name record"
346
+ }
347
+ },
348
+ "required": [
349
+ "content"
350
+ ]
351
+ }
352
+ },
353
+ "ttl": {
354
+ "type": "integer",
355
+ "description": "TTL (Time-To-Live) of the record"
356
+ },
357
+ "type": {
358
+ "type": "string",
359
+ "description": "Type of the record",
360
+ "enum": [
361
+ "A",
362
+ "AAAA",
363
+ "CNAME",
364
+ "ALIAS",
365
+ "MX",
366
+ "TXT",
367
+ "NS",
368
+ "SOA",
369
+ "SRV",
370
+ "CAA"
371
+ ]
372
+ }
373
+ },
374
+ "required": [
375
+ "name",
376
+ "record",
377
+ "type"
378
+ ]
379
+ }
306
380
  }
307
381
  },
308
382
  "required": [
@@ -361,7 +435,11 @@ const TOOLS: OpenApiTool[] = [
361
435
  },
362
436
  "whitelisted_record_types": {
363
437
  "type": "array",
364
- "description": "Specifies which record types to not reset"
438
+ "description": "Specifies which record types to not reset",
439
+ "items": {
440
+ "type": "string",
441
+ "description": "whitelisted_record_types parameter"
442
+ }
365
443
  }
366
444
  },
367
445
  "required": [
@@ -392,7 +470,59 @@ const TOOLS: OpenApiTool[] = [
392
470
  },
393
471
  "zone": {
394
472
  "type": "array",
395
- "description": "zone property"
473
+ "description": "zone parameter",
474
+ "items": {
475
+ "type": "object",
476
+ "description": "zone parameter",
477
+ "properties": {
478
+ "name": {
479
+ "type": "string",
480
+ "description": "Name of the record (use `@` for wildcard name)"
481
+ },
482
+ "records": {
483
+ "type": "array",
484
+ "description": "Records assigned to the name",
485
+ "items": {
486
+ "type": "object",
487
+ "description": "records parameter",
488
+ "properties": {
489
+ "content": {
490
+ "type": "string",
491
+ "description": "Content of the name record"
492
+ }
493
+ },
494
+ "required": [
495
+ "content"
496
+ ]
497
+ }
498
+ },
499
+ "ttl": {
500
+ "type": "integer",
501
+ "description": "TTL (Time-To-Live) of the record"
502
+ },
503
+ "type": {
504
+ "type": "string",
505
+ "description": "Type of the record",
506
+ "enum": [
507
+ "A",
508
+ "AAAA",
509
+ "CNAME",
510
+ "ALIAS",
511
+ "MX",
512
+ "TXT",
513
+ "NS",
514
+ "SOA",
515
+ "SRV",
516
+ "CAA"
517
+ ]
518
+ }
519
+ },
520
+ "required": [
521
+ "name",
522
+ "record",
523
+ "type"
524
+ ]
525
+ }
396
526
  }
397
527
  },
398
528
  "required": [
@@ -408,7 +538,7 @@ const TOOLS: OpenApiTool[] = [
408
538
  },
409
539
  {
410
540
  "name": "domains_checkDomainAvailabilityV1",
411
- "description": "This endpoint checks the availability of a domain name. Multiple TLDs can be checked at once.\n\nEndpoint has rate limit of 10 requests per minute.",
541
+ "description": "This endpoint checks the availability of a domain name. Multiple TLDs can be checked at once.\nIf you want to get alternative domains with response, provide only one TLD in the request and set `with_alternatives` to `true`.\nTLDs should be provided without the leading dot (e.g. `com`, `net`, `org`).\n\nEndpoint has rate limit of 10 requests per minute.",
412
542
  "method": "POST",
413
543
  "path": "/api/domains/v1/availability",
414
544
  "inputSchema": {
@@ -416,11 +546,15 @@ const TOOLS: OpenApiTool[] = [
416
546
  "properties": {
417
547
  "domain": {
418
548
  "type": "string",
419
- "description": "Domain name without TLD"
549
+ "description": "Domain name (without TLD)"
420
550
  },
421
551
  "tlds": {
422
552
  "type": "array",
423
- "description": "TLDs to check (without trailing dot)"
553
+ "description": "TLDs to check (without leading dot)",
554
+ "items": {
555
+ "type": "string",
556
+ "description": "tlds parameter"
557
+ }
424
558
  },
425
559
  "with_alternatives": {
426
560
  "type": "boolean",
@@ -628,15 +762,38 @@ const TOOLS: OpenApiTool[] = [
628
762
  },
629
763
  "domain_contacts": {
630
764
  "type": "object",
631
- "description": "Domain contact information"
765
+ "description": "Domain contact information",
766
+ "properties": {
767
+ "owner_id": {
768
+ "type": "integer",
769
+ "description": "Owner contact WHOIS record ID"
770
+ },
771
+ "admin_id": {
772
+ "type": "integer",
773
+ "description": "Administrative contact WHOIS record ID"
774
+ },
775
+ "billing_id": {
776
+ "type": "integer",
777
+ "description": "Billing contact WHOIS record ID"
778
+ },
779
+ "tech_id": {
780
+ "type": "integer",
781
+ "description": "Technical contact WHOIS record ID"
782
+ }
783
+ }
632
784
  },
633
785
  "additional_details": {
634
786
  "type": "object",
635
- "description": "Additional registration data, possible values depends on TLD"
787
+ "description": "Additional registration data, possible values depends on TLD",
788
+ "properties": {}
636
789
  },
637
790
  "coupons": {
638
791
  "type": "array",
639
- "description": "Discount coupon codes"
792
+ "description": "Discount coupon codes",
793
+ "items": {
794
+ "type": "string",
795
+ "description": "coupons parameter"
796
+ }
640
797
  }
641
798
  },
642
799
  "required": [
@@ -793,7 +950,7 @@ const TOOLS: OpenApiTool[] = [
793
950
  "properties": {
794
951
  "tld": {
795
952
  "type": "string",
796
- "description": "Filter by TLD (without trailing dot)"
953
+ "description": "Filter by TLD (without leading dot)"
797
954
  }
798
955
  },
799
956
  "required": []
@@ -814,7 +971,7 @@ const TOOLS: OpenApiTool[] = [
814
971
  "properties": {
815
972
  "tld": {
816
973
  "type": "string",
817
- "description": "TLD of the domain (without trailing dot)"
974
+ "description": "TLD of the domain (without leading dot)"
818
975
  },
819
976
  "country": {
820
977
  "type": "string",
@@ -830,11 +987,13 @@ const TOOLS: OpenApiTool[] = [
830
987
  },
831
988
  "tld_details": {
832
989
  "type": "object",
833
- "description": "TLD details"
990
+ "description": "TLD details",
991
+ "properties": {}
834
992
  },
835
993
  "whois_details": {
836
994
  "type": "object",
837
- "description": "WHOIS details"
995
+ "description": "WHOIS details",
996
+ "properties": {}
838
997
  }
839
998
  },
840
999
  "required": [
@@ -1022,7 +1181,7 @@ const TOOLS: OpenApiTool[] = [
1022
1181
  "properties": {
1023
1182
  "name": {
1024
1183
  "type": "string",
1025
- "description": "name property"
1184
+ "description": "name parameter"
1026
1185
  }
1027
1186
  },
1028
1187
  "required": [
@@ -1053,7 +1212,7 @@ const TOOLS: OpenApiTool[] = [
1053
1212
  },
1054
1213
  "protocol": {
1055
1214
  "type": "string",
1056
- "description": "protocol property",
1215
+ "description": "protocol parameter",
1057
1216
  "enum": [
1058
1217
  "TCP",
1059
1218
  "UDP",
@@ -1076,7 +1235,7 @@ const TOOLS: OpenApiTool[] = [
1076
1235
  },
1077
1236
  "source": {
1078
1237
  "type": "string",
1079
- "description": "source property",
1238
+ "description": "source parameter",
1080
1239
  "enum": [
1081
1240
  "any",
1082
1241
  "custom"
@@ -1144,7 +1303,7 @@ const TOOLS: OpenApiTool[] = [
1144
1303
  },
1145
1304
  "protocol": {
1146
1305
  "type": "string",
1147
- "description": "protocol property",
1306
+ "description": "protocol parameter",
1148
1307
  "enum": [
1149
1308
  "TCP",
1150
1309
  "UDP",
@@ -1167,7 +1326,7 @@ const TOOLS: OpenApiTool[] = [
1167
1326
  },
1168
1327
  "source": {
1169
1328
  "type": "string",
1170
- "description": "source property",
1329
+ "description": "source parameter",
1171
1330
  "enum": [
1172
1331
  "any",
1173
1332
  "custom"
@@ -1362,7 +1521,11 @@ const TOOLS: OpenApiTool[] = [
1362
1521
  },
1363
1522
  "ids": {
1364
1523
  "type": "array",
1365
- "description": "Public Key IDs to attach"
1524
+ "description": "Public Key IDs to attach",
1525
+ "items": {
1526
+ "type": "integer",
1527
+ "description": "ids parameter"
1528
+ }
1366
1529
  }
1367
1530
  },
1368
1531
  "required": [
@@ -1430,11 +1593,11 @@ const TOOLS: OpenApiTool[] = [
1430
1593
  "properties": {
1431
1594
  "name": {
1432
1595
  "type": "string",
1433
- "description": "name property"
1596
+ "description": "name parameter"
1434
1597
  },
1435
1598
  "key": {
1436
1599
  "type": "string",
1437
- "description": "key property"
1600
+ "description": "key parameter"
1438
1601
  }
1439
1602
  },
1440
1603
  "required": [
@@ -1666,7 +1829,7 @@ const TOOLS: OpenApiTool[] = [
1666
1829
  },
1667
1830
  "hostname": {
1668
1831
  "type": "string",
1669
- "description": "hostname property"
1832
+ "description": "hostname parameter"
1670
1833
  }
1671
1834
  },
1672
1835
  "required": [
@@ -1858,11 +2021,11 @@ const TOOLS: OpenApiTool[] = [
1858
2021
  },
1859
2022
  "ns1": {
1860
2023
  "type": "string",
1861
- "description": "ns1 property"
2024
+ "description": "ns1 parameter"
1862
2025
  },
1863
2026
  "ns2": {
1864
2027
  "type": "string",
1865
- "description": "ns2 property"
2028
+ "description": "ns2 parameter"
1866
2029
  }
1867
2030
  },
1868
2031
  "required": [
@@ -2130,15 +2293,25 @@ const TOOLS: OpenApiTool[] = [
2130
2293
  },
2131
2294
  "ns1": {
2132
2295
  "type": "string",
2133
- "description": "ns1 property"
2296
+ "description": "ns1 parameter"
2134
2297
  },
2135
2298
  "ns2": {
2136
2299
  "type": "string",
2137
- "description": "ns2 property"
2300
+ "description": "ns2 parameter"
2138
2301
  },
2139
2302
  "public_key": {
2140
2303
  "type": "object",
2141
- "description": "public_key property"
2304
+ "description": "public_key parameter",
2305
+ "properties": {
2306
+ "name": {
2307
+ "type": "string",
2308
+ "description": "Name of the SSH key"
2309
+ },
2310
+ "key": {
2311
+ "type": "string",
2312
+ "description": "SSH public key"
2313
+ }
2314
+ }
2142
2315
  }
2143
2316
  },
2144
2317
  "required": [
@@ -2302,7 +2475,7 @@ const SECURITY_SCHEMES: Record<string, SecurityScheme> = {
2302
2475
 
2303
2476
  /**
2304
2477
  * MCP Server for Hostinger API
2305
- * Generated from OpenAPI spec version 0.0.37
2478
+ * Generated from OpenAPI spec version 0.0.39
2306
2479
  */
2307
2480
  class MCPServer {
2308
2481
  private server: Server;
@@ -2324,7 +2497,7 @@ class MCPServer {
2324
2497
  this.server = new Server(
2325
2498
  {
2326
2499
  name: "hostinger-api-mcp",
2327
- version: "0.0.15",
2500
+ version: "0.0.17",
2328
2501
  },
2329
2502
  {
2330
2503
  capabilities: {
@@ -2349,7 +2522,7 @@ class MCPServer {
2349
2522
  });
2350
2523
  }
2351
2524
 
2352
- headers['User-Agent'] = 'hostinger-mcp-server/0.0.15';
2525
+ headers['User-Agent'] = 'hostinger-mcp-server/0.0.17';
2353
2526
 
2354
2527
  return headers;
2355
2528
  }
package/types.d.ts CHANGED
@@ -34,7 +34,7 @@ We recommend use other payment methods than `credit_card` if you encounter this
34
34
  */
35
35
  payment_method_id: number;
36
36
  /**
37
- * items property
37
+ * items parameter
38
38
  */
39
39
  items: array;
40
40
  /**
@@ -183,7 +183,7 @@ Otherwise existing records will be updated and new records will be added.
183
183
  */
184
184
  overwrite?: boolean;
185
185
  /**
186
- * zone property
186
+ * zone parameter
187
187
  */
188
188
  zone: array;
189
189
  };
@@ -250,7 +250,7 @@ If there is validation error, the response will fail with `422 Validation error`
250
250
  */
251
251
  overwrite?: boolean;
252
252
  /**
253
- * zone property
253
+ * zone parameter
254
254
  */
255
255
  zone: array;
256
256
  };
@@ -259,17 +259,19 @@ If there is validation error, the response will fail with `422 Validation error`
259
259
 
260
260
  /**
261
261
  * This endpoint checks the availability of a domain name. Multiple TLDs can be checked at once.
262
+ If you want to get alternative domains with response, provide only one TLD in the request and set `with_alternatives` to `true`.
263
+ TLDs should be provided without the leading dot (e.g. `com`, `net`, `org`).
262
264
 
263
265
  Endpoint has rate limit of 10 requests per minute.
264
266
  */
265
267
  "undefined": {
266
268
  params: {
267
269
  /**
268
- * Domain name without TLD
270
+ * Domain name (without TLD)
269
271
  */
270
272
  domain: string;
271
273
  /**
272
- * TLDs to check (without trailing dot)
274
+ * TLDs to check (without leading dot)
273
275
  */
274
276
  tlds: array;
275
277
  /**
@@ -509,7 +511,7 @@ Be aware, that improper nameserver configuration can lead to the domain being un
509
511
  "undefined": {
510
512
  params: {
511
513
  /**
512
- * Filter by TLD (without trailing dot)
514
+ * Filter by TLD (without leading dot)
513
515
  */
514
516
  tld?: string;
515
517
  };
@@ -522,7 +524,7 @@ Be aware, that improper nameserver configuration can lead to the domain being un
522
524
  "undefined": {
523
525
  params: {
524
526
  /**
525
- * TLD of the domain (without trailing dot)
527
+ * TLD of the domain (without leading dot)
526
528
  */
527
529
  tld: string;
528
530
  /**
@@ -651,7 +653,7 @@ Any virtual machine that has this firewall activated will automatically have it
651
653
  "undefined": {
652
654
  params: {
653
655
  /**
654
- * name property
656
+ * name parameter
655
657
  */
656
658
  name: string;
657
659
  };
@@ -674,7 +676,7 @@ Any virtual machine that has this firewall activated will loose sync with the fi
674
676
  */
675
677
  ruleId: number;
676
678
  /**
677
- * protocol property
679
+ * protocol parameter
678
680
  */
679
681
  protocol: string;
680
682
  /**
@@ -682,7 +684,7 @@ Any virtual machine that has this firewall activated will loose sync with the fi
682
684
  */
683
685
  port: string;
684
686
  /**
685
- * source property
687
+ * source parameter
686
688
  */
687
689
  source: string;
688
690
  /**
@@ -725,7 +727,7 @@ Any virtual machine that has this firewall activated will loose sync with the fi
725
727
  */
726
728
  firewallId: number;
727
729
  /**
728
- * protocol property
730
+ * protocol parameter
729
731
  */
730
732
  protocol: string;
731
733
  /**
@@ -733,7 +735,7 @@ Any virtual machine that has this firewall activated will loose sync with the fi
733
735
  */
734
736
  port: string;
735
737
  /**
736
- * source property
738
+ * source parameter
737
739
  */
738
740
  source: string;
739
741
  /**
@@ -898,11 +900,11 @@ which can then be attached to virtual machine instances for secure access.
898
900
  "undefined": {
899
901
  params: {
900
902
  /**
901
- * name property
903
+ * name parameter
902
904
  */
903
905
  name: string;
904
906
  /**
905
- * key property
907
+ * key parameter
906
908
  */
907
909
  key: string;
908
910
  };
@@ -1057,7 +1059,7 @@ you need to point your domain A/AAAA records to virtual machine IP as well.
1057
1059
  */
1058
1060
  virtualMachineId: number;
1059
1061
  /**
1060
- * hostname property
1062
+ * hostname parameter
1061
1063
  */
1062
1064
  hostname: string;
1063
1065
  };
@@ -1184,11 +1186,11 @@ Be aware, that improper nameserver configuration can lead to the virtual machine
1184
1186
  */
1185
1187
  virtualMachineId: number;
1186
1188
  /**
1187
- * ns1 property
1189
+ * ns1 parameter
1188
1190
  */
1189
1191
  ns1: string;
1190
1192
  /**
1191
- * ns2 property
1193
+ * ns2 parameter
1192
1194
  */
1193
1195
  ns2?: string;
1194
1196
  };
@@ -1387,15 +1389,15 @@ New virtual machine can be purchased using [`/api/billing/v1/orders`](/#tag/bill
1387
1389
  */
1388
1390
  enable_backups?: boolean;
1389
1391
  /**
1390
- * ns1 property
1392
+ * ns1 parameter
1391
1393
  */
1392
1394
  ns1?: string;
1393
1395
  /**
1394
- * ns2 property
1396
+ * ns2 parameter
1395
1397
  */
1396
1398
  ns2?: string;
1397
1399
  /**
1398
- * public_key property
1400
+ * public_key parameter
1399
1401
  */
1400
1402
  public_key?: object;
1401
1403
  };