hostinger-api-mcp 0.1.27 → 0.1.36

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 +124 -80
  2. package/package.json +1 -1
  3. package/server.js +83 -95
  4. package/server.ts +83 -95
  5. package/types.d.ts +138 -88
package/server.js CHANGED
@@ -273,7 +273,7 @@ const TOOLS = [
273
273
  },
274
274
  {
275
275
  "name": "billing_getCatalogItemListV1",
276
- "description": "Retrieve catalog items available for order.\n\nPrices in catalog items is displayed as cents (without floating point), e.g: float `17.99` is displayed as integer `1799`.\n\nUse this endpoint to view available services and pricing before placing orders.",
276
+ "description": "Retrieve catalog items available for order.\n\nPrices in catalog items is displayed as cents (without floating point),\ne.g: float `17.99` is displayed as integer `1799`.\n\nUse this endpoint to view available services and pricing before placing orders.",
277
277
  "method": "GET",
278
278
  "path": "/api/billing/v1/catalog",
279
279
  "inputSchema": {
@@ -300,60 +300,6 @@ const TOOLS = [
300
300
  }
301
301
  ]
302
302
  },
303
- {
304
- "name": "billing_createServiceOrderV1",
305
- "description": "Create a new service order. \n\n**DEPRECATED**\n\nTo purchase a domain, use [`POST /api/domains/v1/portfolio`](/#tag/domains-portfolio/POST/api/domains/v1/portfolio) instead.\n\nTo purchase a VPS, use [`POST /api/vps/v1/virtual-machines`](/#tag/vps-virtual-machine/POST/api/vps/v1/virtual-machines) instead.\n\n\nTo place order, you need to provide payment method ID and list of price items from the catalog endpoint together with quantity.\nCoupons also can be provided during order creation.\n\nOrders created using this endpoint will be set for automatic renewal.\n\nSome `credit_card` payments might need additional verification, rendering purchase unprocessed.\nWe recommend use other payment methods than `credit_card` if you encounter this issue.",
306
- "method": "POST",
307
- "path": "/api/billing/v1/orders",
308
- "inputSchema": {
309
- "type": "object",
310
- "properties": {
311
- "payment_method_id": {
312
- "type": "integer",
313
- "description": "Payment method ID"
314
- },
315
- "items": {
316
- "type": "array",
317
- "description": "items parameter",
318
- "items": {
319
- "type": "object",
320
- "description": "items parameter",
321
- "properties": {
322
- "item_id": {
323
- "type": "string",
324
- "description": "Price Item ID"
325
- },
326
- "quantity": {
327
- "type": "integer",
328
- "description": "quantity parameter"
329
- }
330
- },
331
- "required": [
332
- "item_id",
333
- "quantity"
334
- ]
335
- }
336
- },
337
- "coupons": {
338
- "type": "array",
339
- "description": "Discount coupon codes",
340
- "items": {
341
- "type": "string",
342
- "description": "coupons parameter"
343
- }
344
- }
345
- },
346
- "required": [
347
- "payment_method_id",
348
- "items"
349
- ]
350
- },
351
- "security": [
352
- {
353
- "apiToken": []
354
- }
355
- ]
356
- },
357
303
  {
358
304
  "name": "billing_setDefaultPaymentMethodV1",
359
305
  "description": "Set the default payment method for your account.\n\nUse this endpoint to configure the primary payment method for future orders.",
@@ -402,7 +348,7 @@ const TOOLS = [
402
348
  },
403
349
  {
404
350
  "name": "billing_getPaymentMethodListV1",
405
- "description": "Retrieve available payment methods that can be used for placing new orders.\n\nIf you want to add new payment method, please use [hPanel](https://hpanel.hostinger.com/billing/payment-methods).\n\nUse this endpoint to view available payment options before creating orders.",
351
+ "description": "Retrieve available payment methods that can be used for placing new orders.\n\nIf you want to add new payment method,\nplease use [hPanel](https://hpanel.hostinger.com/billing/payment-methods).\n\nUse this endpoint to view available payment options before creating orders.",
406
352
  "method": "GET",
407
353
  "path": "/api/billing/v1/payment-methods",
408
354
  "inputSchema": {
@@ -594,7 +540,7 @@ const TOOLS = [
594
540
  },
595
541
  "overwrite": {
596
542
  "type": "boolean",
597
- "description": "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."
543
+ "description": "If `true`, resource records (RRs) matching name and type will be deleted and new RRs will be created,\notherwise resource records' ttl's are updated and new records are appended.\nIf no matching RRs are found, they are created."
598
544
  },
599
545
  "zone": {
600
546
  "type": "array",
@@ -740,7 +686,7 @@ const TOOLS = [
740
686
  },
741
687
  "overwrite": {
742
688
  "type": "boolean",
743
- "description": "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."
689
+ "description": "If `true`, resource records (RRs) matching name and type will be deleted and new RRs will be created,\notherwise resource records' ttl's are updated and new records are appended.\nIf no matching RRs are found, they are created."
744
690
  },
745
691
  "zone": {
746
692
  "type": "array",
@@ -947,7 +893,7 @@ const TOOLS = [
947
893
  },
948
894
  {
949
895
  "name": "domains_enableDomainLockV1",
950
- "description": "Enable domain lock for the domain.\n\nWhen domain lock is enabled, the domain cannot be transferred to another registrar without first disabling the lock.\n\nUse this endpoint to secure domains against unauthorized transfers.",
896
+ "description": "Enable domain lock for the domain.\n\nWhen domain lock is enabled,\nthe domain cannot be transferred to another registrar without first disabling the lock.\n\nUse this endpoint to secure domains against unauthorized transfers.",
951
897
  "method": "PUT",
952
898
  "path": "/api/domains/v1/portfolio/{domain}/domain-lock",
953
899
  "inputSchema": {
@@ -1032,7 +978,7 @@ const TOOLS = [
1032
978
  },
1033
979
  {
1034
980
  "name": "domains_purchaseNewDomainV1",
1035
- "description": "Purchase and register a new domain name.\n\nIf registration fails, login to [hPanel](https://hpanel.hostinger.com/) and check domain registration status.\n\nIf no payment method is provided, your default payment method will be used automatically.\n\nIf no WHOIS information is provided, default contact information for that TLD will be used. \nBefore making request, ensure WHOIS information for desired TLD exists in your account.\n\nSome TLDs require `additional_details` to be provided and these will be validated before completing purchase.\n\nUse this endpoint to register new domains for users.",
981
+ "description": "Purchase and register a new domain name.\n\nIf registration fails, login to [hPanel](https://hpanel.hostinger.com/) and check domain registration status.\n\nIf no payment method is provided, your default payment method will be used automatically.\n\nIf no WHOIS information is provided, default contact information for that TLD will be used.\nBefore making request, ensure WHOIS information for desired TLD exists in your account.\n\nSome TLDs require `additional_details` to be provided and these will be validated before completing purchase.\n\nUse this endpoint to register new domains for users.",
1036
982
  "method": "POST",
1037
983
  "path": "/api/domains/v1/portfolio",
1038
984
  "inputSchema": {
@@ -1324,7 +1270,7 @@ const TOOLS = [
1324
1270
  },
1325
1271
  {
1326
1272
  "name": "hosting_listAvailableDatacentersV1",
1327
- "description": "Retrieve a list of datacenters available for setting up hosting plans based on available datacenter capacity and hosting plan of your order.\nThe first item in the list is the best match for your specific order requirements.",
1273
+ "description": "Retrieve a list of datacenters available for setting up hosting plans\nbased on available datacenter capacity and hosting plan of your order.\nThe first item in the list is the best match for your specific order\nrequirements.",
1328
1274
  "method": "GET",
1329
1275
  "path": "/api/hosting/v1/datacenters",
1330
1276
  "inputSchema": {
@@ -1347,7 +1293,7 @@ const TOOLS = [
1347
1293
  },
1348
1294
  {
1349
1295
  "name": "hosting_generateAFreeSubdomainV1",
1350
- "description": "Generate a unique free subdomain that can be used for hosting services without purchasing custom domains.\nFree subdomains allow you to start using hosting services immediately and you can always connect a custom domain to your site later.",
1296
+ "description": "Generate a unique free subdomain that can be used for hosting services without purchasing custom domains.\nFree subdomains allow you to start using hosting services immediately\nand you can always connect a custom domain to your site later.",
1351
1297
  "method": "POST",
1352
1298
  "path": "/api/hosting/v1/domains/free-subdomains",
1353
1299
  "inputSchema": {
@@ -1386,7 +1332,7 @@ const TOOLS = [
1386
1332
  },
1387
1333
  {
1388
1334
  "name": "hosting_listOrdersV1",
1389
- "description": "Retrieve a paginated list of orders accessible to the authenticated client.\n\nThis endpoint returns orders of your hosting accounts as well as orders of other client hosting accounts that have shared access with you.\n\nUse the available query parameters to filter results by order statuses or specific order IDs for more targeted results.",
1335
+ "description": "Retrieve a paginated list of orders accessible to the authenticated client.\n\nThis endpoint returns orders of your hosting accounts as well as orders\nof other client hosting accounts that have shared access with you.\n\nUse the available query parameters to filter results by order statuses\nor specific order IDs for more targeted results.",
1390
1336
  "method": "GET",
1391
1337
  "path": "/api/hosting/v1/orders",
1392
1338
  "inputSchema": {
@@ -1433,7 +1379,7 @@ const TOOLS = [
1433
1379
  },
1434
1380
  {
1435
1381
  "name": "hosting_listWebsitesV1",
1436
- "description": "Retrieve a paginated list of websites (main and addon types) accessible to the authenticated client.\n\nThis endpoint returns websites from your hosting accounts as well as websites from other client hosting accounts that have shared access with you.\n\nUse the available query parameters to filter results by username, order ID, enabled status, or domain name for more targeted results.",
1382
+ "description": "Retrieve a paginated list of websites (main and addon types) accessible to the authenticated client.\n\nThis endpoint returns websites from your hosting accounts as well as\nwebsites from other client hosting accounts that have shared access\nwith you.\n\nUse the available query parameters to filter results by username,\norder ID, enabled status, or domain name for more targeted results.",
1437
1383
  "method": "GET",
1438
1384
  "path": "/api/hosting/v1/websites",
1439
1385
  "inputSchema": {
@@ -1474,7 +1420,7 @@ const TOOLS = [
1474
1420
  },
1475
1421
  {
1476
1422
  "name": "hosting_createWebsiteV1",
1477
- "description": "Create a new website for the authenticated client.\n\nProvide the domain name and associated order ID to create a new website. The datacenter_code parameter is required when creating the first website on a new hosting plan - this will set up and configure new hosting account in the selected datacenter.\n\nSubsequent websites will be hosted on the same datacenter automatically.\n\nWebsite creation takes up to a few minutes to complete. Check the websites list endpoint to see when your new website becomes available.",
1423
+ "description": "Create a new website for the authenticated client.\n\nProvide the domain name and associated order ID to create a new website.\nThe datacenter_code parameter is required when creating the first website\non a new hosting plan - this will set up and configure new hosting account\nin the selected datacenter.\n\nSubsequent websites will be hosted on the same datacenter automatically.\n\nWebsite creation takes up to a few minutes to complete. Check the\nwebsites list endpoint to see when your new website becomes available.",
1478
1424
  "method": "POST",
1479
1425
  "path": "/api/hosting/v1/websites",
1480
1426
  "inputSchema": {
@@ -1578,7 +1524,7 @@ const TOOLS = [
1578
1524
  },
1579
1525
  {
1580
1526
  "name": "reach_createANewContactV1",
1581
- "description": "Create a new contact in the email marketing system.\n\nThis endpoint allows you to create a new contact with basic information like name, email, and surname.\n\nIf double opt-in is enabled, the contact will be created with a pending status and a confirmation email will be sent.",
1527
+ "description": "Create a new contact in the email marketing system.\n\nThis endpoint allows you to create a new contact with basic information like name, email, and surname.\n\nIf double opt-in is enabled,\nthe contact will be created with a pending status and a confirmation email will be sent.",
1582
1528
  "method": "POST",
1583
1529
  "path": "/api/reach/v1/contacts",
1584
1530
  "inputSchema": {
@@ -1784,6 +1730,46 @@ const TOOLS = [
1784
1730
  }
1785
1731
  ]
1786
1732
  },
1733
+ {
1734
+ "name": "reach_createNewContactsV1",
1735
+ "description": "Create a new contact in the email marketing system.\n\nThis endpoint allows you to create a new contact with basic information like name, email, and surname.\n\nIf double opt-in is enabled, the contact will be created with a pending status\nand a confirmation email will be sent.",
1736
+ "method": "POST",
1737
+ "path": "/api/reach/v1/profiles/{profileUuid}/contacts",
1738
+ "inputSchema": {
1739
+ "type": "object",
1740
+ "properties": {
1741
+ "profileUuid": {
1742
+ "type": "string",
1743
+ "description": "Profile uuid parameter"
1744
+ },
1745
+ "email": {
1746
+ "type": "string",
1747
+ "description": "email parameter"
1748
+ },
1749
+ "name": {
1750
+ "type": "string",
1751
+ "description": "name parameter"
1752
+ },
1753
+ "surname": {
1754
+ "type": "string",
1755
+ "description": "surname parameter"
1756
+ },
1757
+ "note": {
1758
+ "type": "string",
1759
+ "description": "note parameter"
1760
+ }
1761
+ },
1762
+ "required": [
1763
+ "profileUuid",
1764
+ "email"
1765
+ ]
1766
+ },
1767
+ "security": [
1768
+ {
1769
+ "apiToken": []
1770
+ }
1771
+ ]
1772
+ },
1787
1773
  {
1788
1774
  "name": "reach_listProfilesV1",
1789
1775
  "description": "This endpoint returns all profiles available to the client, including their basic information.",
@@ -1818,7 +1804,7 @@ const TOOLS = [
1818
1804
  },
1819
1805
  {
1820
1806
  "name": "VPS_getProjectContainersV1",
1821
- "description": "Retrieves a list of all containers belonging to a specific Docker Compose project on the virtual machine. \n\nThis endpoint returns detailed information about each container including their current status, port mappings, and runtime configuration. \n\nUse this to monitor the health and state of all services within your Docker Compose project.",
1807
+ "description": "Retrieves a list of all containers belonging to a specific Docker Compose project on the virtual machine. \n\nThis endpoint returns detailed information about each container including\ntheir current status, port mappings, and runtime configuration.\n\nUse this to monitor the health and state of all services within your Docker Compose project.",
1822
1808
  "method": "GET",
1823
1809
  "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}/containers",
1824
1810
  "inputSchema": {
@@ -1846,7 +1832,7 @@ const TOOLS = [
1846
1832
  },
1847
1833
  {
1848
1834
  "name": "VPS_getProjectContentsV1",
1849
- "description": "Retrieves the complete project information including the docker-compose.yml file contents, project metadata, and current deployment status. \n\nThis endpoint provides the full configuration and state details of a specific Docker Compose project. \n\nUse this to inspect project settings, review the compose file, or check the overall project health.",
1835
+ "description": "Retrieves the complete project information including the docker-compose.yml\nfile contents, project metadata, and current deployment status.\n\nThis endpoint provides the full configuration and state details of a specific Docker Compose project. \n\nUse this to inspect project settings, review the compose file, or check the overall project health.",
1850
1836
  "method": "GET",
1851
1837
  "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}",
1852
1838
  "inputSchema": {
@@ -1902,7 +1888,7 @@ const TOOLS = [
1902
1888
  },
1903
1889
  {
1904
1890
  "name": "VPS_getProjectListV1",
1905
- "description": "Retrieves a list of all Docker Compose projects currently deployed on the virtual machine. \n\nThis endpoint returns basic information about each project including name, status, file path and list of containers with \ndetails about their names, image, status, health and ports. Container stats are omitted in this endpoint.\nIf you need to get detailed information about container with stats included, use the `Get project containers` endpoint. \n\nUse this to get an overview of all Docker projects on your VPS instance.",
1891
+ "description": "Retrieves a list of all Docker Compose projects currently deployed on the virtual machine. \n\nThis endpoint returns basic information about each project including name,\nstatus, file path and list of containers with details about their names,\nimage, status, health and ports. Container stats are omitted in this\nendpoint. If you need to get detailed information about container with\nstats included, use the `Get project containers` endpoint.\n\nUse this to get an overview of all Docker projects on your VPS instance.",
1906
1892
  "method": "GET",
1907
1893
  "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/docker",
1908
1894
  "inputSchema": {
@@ -1925,7 +1911,7 @@ const TOOLS = [
1925
1911
  },
1926
1912
  {
1927
1913
  "name": "VPS_createNewProjectV1",
1928
- "description": "Deploy new project from docker-compose.yaml contents or download contents from URL. \n\nURL can be Github repository url in format https://github.com/[user]/[repo] and it will be automatically resolved to \ndocker-compose.yaml file in master branch. Any other URL provided must return docker-compose.yaml file contents.\n\nIf project with the same name already exists, existing project will be replaced.",
1914
+ "description": "Deploy new project from docker-compose.yaml contents or download contents from URL. \n\nURL can be Github repository url in format https://github.com/[user]/[repo]\nand it will be automatically resolved to docker-compose.yaml file in\nmaster branch. Any other URL provided must return docker-compose.yaml\nfile contents.\n\nIf project with the same name already exists, existing project will be replaced.",
1929
1915
  "method": "POST",
1930
1916
  "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/docker",
1931
1917
  "inputSchema": {
@@ -1962,7 +1948,7 @@ const TOOLS = [
1962
1948
  },
1963
1949
  {
1964
1950
  "name": "VPS_getProjectLogsV1",
1965
- "description": "Retrieves aggregated log entries from all services within a Docker Compose project. \n\nThis endpoint returns recent log output from each container, organized by service name with timestamps. \nThe response contains the last 300 log entries across all services. \n\nUse this for debugging, monitoring application behavior, and troubleshooting issues across your entire project stack.",
1951
+ "description": "Retrieves aggregated log entries from all services within a Docker Compose project. \n\nThis endpoint returns recent log output from each container, organized by service name with timestamps. \nThe response contains the last 300 log entries across all services. \n\nUse this for debugging, monitoring application behavior, and\ntroubleshooting issues across your entire project stack.",
1966
1952
  "method": "GET",
1967
1953
  "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}/logs",
1968
1954
  "inputSchema": {
@@ -1990,7 +1976,7 @@ const TOOLS = [
1990
1976
  },
1991
1977
  {
1992
1978
  "name": "VPS_restartProjectV1",
1993
- "description": "Restarts all services in a Docker Compose project by stopping and starting containers in the correct dependency order. \n\nThis operation preserves data volumes and network configurations while refreshing the running containers. \n\nUse this to apply configuration changes or recover from service failures.",
1979
+ "description": "Restarts all services in a Docker Compose project by stopping and starting\ncontainers in the correct dependency order.\n\nThis operation preserves data volumes and network configurations while refreshing the running containers. \n\nUse this to apply configuration changes or recover from service failures.",
1994
1980
  "method": "POST",
1995
1981
  "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}/restart",
1996
1982
  "inputSchema": {
@@ -2046,7 +2032,7 @@ const TOOLS = [
2046
2032
  },
2047
2033
  {
2048
2034
  "name": "VPS_stopProjectV1",
2049
- "description": "Stops all running services in a Docker Compose project while preserving container configurations and data volumes. \n\nThis operation gracefully shuts down containers in reverse dependency order. \n\nUse this to temporarily halt a project without removing data or configurations.",
2035
+ "description": "Stops all running services in a Docker Compose project while preserving\ncontainer configurations and data volumes.\n\nThis operation gracefully shuts down containers in reverse dependency order. \n\nUse this to temporarily halt a project without removing data or configurations.",
2050
2036
  "method": "POST",
2051
2037
  "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}/stop",
2052
2038
  "inputSchema": {
@@ -2074,7 +2060,7 @@ const TOOLS = [
2074
2060
  },
2075
2061
  {
2076
2062
  "name": "VPS_updateProjectV1",
2077
- "description": "Updates a Docker Compose project by pulling the latest image versions and recreating containers with new configurations. \n\nThis operation preserves data volumes while applying changes from the compose file. \n\nUse this to deploy application updates, apply configuration changes, or refresh container images to their latest versions.",
2063
+ "description": "Updates a Docker Compose project by pulling the latest image versions and\nrecreating containers with new configurations.\n\nThis operation preserves data volumes while applying changes from the compose file. \n\nUse this to deploy application updates, apply configuration changes, or\nrefresh container images to their latest versions.",
2078
2064
  "method": "POST",
2079
2065
  "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}/update",
2080
2066
  "inputSchema": {
@@ -2248,7 +2234,7 @@ const TOOLS = [
2248
2234
  },
2249
2235
  {
2250
2236
  "name": "VPS_updateFirewallRuleV1",
2251
- "description": "Update a specific firewall rule from a specified firewall.\n\nAny virtual machine that has this firewall activated will lose sync with the firewall and will have to be synced again manually.\n\nUse this endpoint to modify existing firewall rules.",
2237
+ "description": "Update a specific firewall rule from a specified firewall.\n\nAny virtual machine that has this firewall activated will lose sync with the firewall\nand will have to be synced again manually.\n\nUse this endpoint to modify existing firewall rules.",
2252
2238
  "method": "PUT",
2253
2239
  "path": "/api/vps/v1/firewall/{firewallId}/rules/{ruleId}",
2254
2240
  "inputSchema": {
@@ -2315,7 +2301,7 @@ const TOOLS = [
2315
2301
  },
2316
2302
  {
2317
2303
  "name": "VPS_deleteFirewallRuleV1",
2318
- "description": "Delete a specific firewall rule from a specified firewall.\n\nAny virtual machine that has this firewall activated will lose sync with the firewall and will have to be synced again manually.\n \nUse this endpoint to remove specific firewall rules.",
2304
+ "description": "Delete a specific firewall rule from a specified firewall.\n\nAny virtual machine that has this firewall activated will lose sync with the firewall\nand will have to be synced again manually.\n\nUse this endpoint to remove specific firewall rules.",
2319
2305
  "method": "DELETE",
2320
2306
  "path": "/api/vps/v1/firewall/{firewallId}/rules/{ruleId}",
2321
2307
  "inputSchema": {
@@ -2343,7 +2329,7 @@ const TOOLS = [
2343
2329
  },
2344
2330
  {
2345
2331
  "name": "VPS_createFirewallRuleV1",
2346
- "description": "Create new firewall rule for a specified firewall.\n\nBy default, the firewall drops all incoming traffic, which means you must add accept rules for all ports you want to use.\n\nAny virtual machine that has this firewall activated will lose sync with the firewall and will have to be synced again manually.\n\nUse this endpoint to add new security rules to firewalls.",
2332
+ "description": "Create new firewall rule for a specified firewall.\n\nBy default, the firewall drops all incoming traffic,\nwhich means you must add accept rules for all ports you want to use.\n\nAny virtual machine that has this firewall activated will lose sync with the firewall\nand will have to be synced again manually.\n\nUse this endpoint to add new security rules to firewalls.",
2347
2333
  "method": "POST",
2348
2334
  "path": "/api/vps/v1/firewall/{firewallId}/rules",
2349
2335
  "inputSchema": {
@@ -2533,7 +2519,7 @@ const TOOLS = [
2533
2519
  },
2534
2520
  {
2535
2521
  "name": "VPS_createPostInstallScriptV1",
2536
- "description": "Add a new post-install script to your account, which can then be used after virtual machine installation.\n\nThe script contents will be saved to the file `/post_install` with executable attribute set and will be executed once virtual machine is installed.\nThe output of the script will be redirected to `/post_install.log`. Maximum script size is 48KB.\n\nUse this endpoint to create automation scripts for VPS setup tasks.",
2522
+ "description": "Add a new post-install script to your account, which can then be used after virtual machine installation.\n\nThe script contents will be saved to the file `/post_install` with executable attribute set\nand will be executed once virtual machine is installed.\nThe output of the script will be redirected to `/post_install.log`. Maximum script size is 48KB.\n\nUse this endpoint to create automation scripts for VPS setup tasks.",
2537
2523
  "method": "POST",
2538
2524
  "path": "/api/vps/v1/post-install-scripts",
2539
2525
  "inputSchema": {
@@ -2732,7 +2718,7 @@ const TOOLS = [
2732
2718
  },
2733
2719
  {
2734
2720
  "name": "VPS_getActionsV1",
2735
- "description": "Retrieve actions performed on a specified virtual machine.\n\nActions are operations or events that have been executed on the virtual machine, such as starting, stopping, or modifying \nthe machine. This endpoint allows you to view the history of these actions, providing details about each action, \nsuch as the action name, timestamp, and status.\n\nUse this endpoint to view VPS operation history and troubleshoot issues.",
2721
+ "description": "Retrieve actions performed on a specified virtual machine.\n\nActions are operations or events that have been executed on the virtual\nmachine, such as starting, stopping, or modifying the machine. This endpoint\nallows you to view the history of these actions, providing details about\neach action, such as the action name, timestamp, and status.\n\nUse this endpoint to view VPS operation history and troubleshoot issues.",
2736
2722
  "method": "GET",
2737
2723
  "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/actions",
2738
2724
  "inputSchema": {
@@ -2931,7 +2917,7 @@ const TOOLS = [
2931
2917
  },
2932
2918
  {
2933
2919
  "name": "VPS_purchaseNewVirtualMachineV1",
2934
- "description": "Purchase and setup a new virtual machine.\n\nIf virtual machine setup fails for any reason, login to [hPanel](https://hpanel.hostinger.com/) and complete the setup manually.\n\nIf no payment method is provided, your default payment method will be used automatically.\n\nUse this endpoint to create new VPS instances.",
2920
+ "description": "Purchase and setup a new virtual machine.\n\nIf virtual machine setup fails for any reason, login to\n[hPanel](https://hpanel.hostinger.com/) and complete the setup manually.\n\nIf no payment method is provided, your default payment method will be used automatically.\n\nUse this endpoint to create new VPS instances.",
2935
2921
  "method": "POST",
2936
2922
  "path": "/api/vps/v1/virtual-machines",
2937
2923
  "inputSchema": {
@@ -2971,7 +2957,7 @@ const TOOLS = [
2971
2957
  },
2972
2958
  {
2973
2959
  "name": "VPS_getScanMetricsV1",
2974
- "description": "Retrieve scan metrics for the [Monarx](https://www.monarx.com/) malware scanner installed on a specified virtual machine.\n\nThe scan metrics provide detailed information about malware scans performed by Monarx, including number of scans, \ndetected threats, and other relevant statistics. This information is useful for monitoring security status of the \nvirtual machine and assessing effectiveness of the malware scanner.\n\nUse this endpoint to monitor VPS security scan results and threat detection.",
2960
+ "description": "Retrieve scan metrics for the [Monarx](https://www.monarx.com/) malware scanner\ninstalled on a specified virtual machine.\n\nThe scan metrics provide detailed information about malware scans performed\nby Monarx, including number of scans, detected threats, and other relevant\nstatistics. This information is useful for monitoring security status of the\nvirtual machine and assessing effectiveness of the malware scanner.\n\nUse this endpoint to monitor VPS security scan results and threat detection.",
2975
2961
  "method": "GET",
2976
2962
  "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/monarx",
2977
2963
  "inputSchema": {
@@ -2994,7 +2980,7 @@ const TOOLS = [
2994
2980
  },
2995
2981
  {
2996
2982
  "name": "VPS_installMonarxV1",
2997
- "description": "Install the Monarx malware scanner on a specified virtual machine.\n\n[Monarx](https://www.monarx.com/) is a security tool designed to detect and prevent malware infections on virtual machines. \nBy installing Monarx, users can enhance the security of their virtual machines, ensuring that they are protected against malicious software.\n\nUse this endpoint to enable malware protection on VPS instances.",
2983
+ "description": "Install the Monarx malware scanner on a specified virtual machine.\n\n[Monarx](https://www.monarx.com/) is a security tool designed to detect and\nprevent malware infections on virtual machines. By installing Monarx, users\ncan enhance the security of their virtual machines, ensuring that they are\nprotected against malicious software.\n\nUse this endpoint to enable malware protection on VPS instances.",
2998
2984
  "method": "POST",
2999
2985
  "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/monarx",
3000
2986
  "inputSchema": {
@@ -3073,7 +3059,7 @@ const TOOLS = [
3073
3059
  },
3074
3060
  {
3075
3061
  "name": "VPS_setNameserversV1",
3076
- "description": "Set nameservers for a specified virtual machine.\n\nBe aware, that improper nameserver configuration can lead to the virtual machine being unable to resolve domain names.\n\nUse this endpoint to configure custom DNS resolvers for VPS instances.",
3062
+ "description": "Set nameservers for a specified virtual machine.\n\nBe aware, that improper nameserver configuration can lead to the virtual\nmachine being unable to resolve domain names.\n\nUse this endpoint to configure custom DNS resolvers for VPS instances.",
3077
3063
  "method": "PUT",
3078
3064
  "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/nameservers",
3079
3065
  "inputSchema": {
@@ -3142,7 +3128,7 @@ const TOOLS = [
3142
3128
  },
3143
3129
  {
3144
3130
  "name": "VPS_deletePTRRecordV1",
3145
- "description": "Delete a PTR (Pointer) record for a specified virtual machine.\n\nOnce deleted, reverse DNS lookups to the virtual machine's IP address will no longer return the previously configured hostname.\n\nUse this endpoint to remove reverse DNS configuration from VPS instances.",
3131
+ "description": "Delete a PTR (Pointer) record for a specified virtual machine.\n\nOnce deleted, reverse DNS lookups to the virtual machine's IP address will\nno longer return the previously configured hostname.\n\nUse this endpoint to remove reverse DNS configuration from VPS instances.",
3146
3132
  "method": "DELETE",
3147
3133
  "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/ptr/{ipAddressId}",
3148
3134
  "inputSchema": {
@@ -3170,7 +3156,7 @@ const TOOLS = [
3170
3156
  },
3171
3157
  {
3172
3158
  "name": "VPS_setPanelPasswordV1",
3173
- "description": "Set panel password for a specified virtual machine.\n\nIf virtual machine does not use panel OS, the request will still be processed without any effect.\nRequirements for password are same as in the [recreate virtual machine endpoint](/#tag/vps-virtual-machine/POST/api/vps/v1/virtual-machines/{virtualMachineId}/recreate).\n\nUse this endpoint to configure control panel access credentials for VPS instances.",
3159
+ "description": "Set panel password for a specified virtual machine.\n\nIf virtual machine does not use panel OS, the request will still be processed without any effect.\nRequirements for password are same as in the [recreate virtual machine\nendpoint](/#tag/vps-virtual-machine/POST/api/vps/v1/virtual-machines/{virtualMachineId}/recreate).\n\nUse this endpoint to configure control panel access credentials for VPS instances.",
3174
3160
  "method": "PUT",
3175
3161
  "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/panel-password",
3176
3162
  "inputSchema": {
@@ -3249,7 +3235,7 @@ const TOOLS = [
3249
3235
  },
3250
3236
  {
3251
3237
  "name": "VPS_recreateVirtualMachineV1",
3252
- "description": "Recreate a virtual machine from scratch.\n\nThe recreation process involves reinstalling the operating system and resetting the virtual machine to its initial state.\nSnapshots, if there are any, will be deleted.\n\n## Password Requirements\nPassword will be checked against leaked password databases. \nRequirements for the password are:\n- At least 12 characters long\n- At least one uppercase letter\n- At least one lowercase letter\n- At least one number\n- Is not leaked publicly\n\n**This operation is irreversible and will result in the loss of all data stored on the virtual machine!**\n\nUse this endpoint to completely rebuild VPS instances with fresh OS installation.",
3238
+ "description": "Recreate a virtual machine from scratch.\n\nThe recreation process involves reinstalling the operating system and\nresetting the virtual machine to its initial state.\nSnapshots, if there are any, will be deleted.\n\n## Password Requirements\nPassword will be checked against leaked password databases. \nRequirements for the password are:\n- At least 12 characters long\n- At least one uppercase letter\n- At least one lowercase letter\n- At least one number\n- Is not leaked publicly\n\n**This operation is irreversible and will result in the loss of all data stored on the virtual machine!**\n\nUse this endpoint to completely rebuild VPS instances with fresh OS installation.",
3253
3239
  "method": "POST",
3254
3240
  "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/recreate",
3255
3241
  "inputSchema": {
@@ -3265,11 +3251,11 @@ const TOOLS = [
3265
3251
  },
3266
3252
  "password": {
3267
3253
  "type": "string",
3268
- "description": "Root password for the virtual machine. If not provided, random password will be generated. Password will not be shown in the response."
3254
+ "description": "Root password for the virtual machine. If not provided, random password will be generated.\nPassword will not be shown in the response."
3269
3255
  },
3270
3256
  "panel_password": {
3271
3257
  "type": "string",
3272
- "description": "Panel password for the panel-based OS template. If not provided, random password will be generated. If OS does not support panel_password this field will be ignored. Password will not be shown in the response."
3258
+ "description": "Panel password for the panel-based OS template. If not provided, random password will be generated.\nIf OS does not support panel_password this field will be ignored.\nPassword will not be shown in the response."
3273
3259
  },
3274
3260
  "post_install_script_id": {
3275
3261
  "type": "integer",
@@ -3312,7 +3298,7 @@ const TOOLS = [
3312
3298
  },
3313
3299
  {
3314
3300
  "name": "VPS_setRootPasswordV1",
3315
- "description": "Set root password for a specified virtual machine.\n\nRequirements for password are same as in the [recreate virtual machine endpoint](/#tag/vps-virtual-machine/POST/api/vps/v1/virtual-machines/{virtualMachineId}/recreate).\n\nUse this endpoint to update administrator credentials for VPS instances.",
3301
+ "description": "Set root password for a specified virtual machine.\n\nRequirements for password are same as in the [recreate virtual machine\nendpoint](/#tag/vps-virtual-machine/POST/api/vps/v1/virtual-machines/{virtualMachineId}/recreate).\n\nUse this endpoint to update administrator credentials for VPS instances.",
3316
3302
  "method": "PUT",
3317
3303
  "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/root-password",
3318
3304
  "inputSchema": {
@@ -3364,7 +3350,7 @@ const TOOLS = [
3364
3350
  },
3365
3351
  "password": {
3366
3352
  "type": "string",
3367
- "description": "Password for the virtual machine. If not provided, random password will be generated. Password will not be shown in the response."
3353
+ "description": "Password for the virtual machine. If not provided, random password will be generated.\nPassword will not be shown in the response."
3368
3354
  },
3369
3355
  "hostname": {
3370
3356
  "type": "string",
@@ -3484,7 +3470,7 @@ const TOOLS = [
3484
3470
  },
3485
3471
  {
3486
3472
  "name": "VPS_restoreSnapshotV1",
3487
- "description": "Restore a specified virtual machine to a previous state using a snapshot.\n\nRestoring from a snapshot allows users to revert the virtual machine to that state, which is useful for system recovery, undoing changes, or testing.\n\nUse this endpoint to revert VPS instances to previous saved states.",
3473
+ "description": "Restore a specified virtual machine to a previous state using a snapshot.\n\nRestoring from a snapshot allows users to revert the virtual machine to that state,\nwhich is useful for system recovery, undoing changes, or testing.\n\nUse this endpoint to revert VPS instances to previous saved states.",
3488
3474
  "method": "POST",
3489
3475
  "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/snapshot/restore",
3490
3476
  "inputSchema": {
@@ -3562,7 +3548,7 @@ const SECURITY_SCHEMES = {
3562
3548
 
3563
3549
  /**
3564
3550
  * MCP Server for Hostinger API
3565
- * Generated from OpenAPI spec version 0.11.4
3551
+ * Generated from OpenAPI spec version 0.11.7
3566
3552
  */
3567
3553
  class MCPServer {
3568
3554
  constructor() {
@@ -3580,7 +3566,7 @@ class MCPServer {
3580
3566
  this.server = new Server(
3581
3567
  {
3582
3568
  name: "hostinger-api-mcp",
3583
- version: "0.1.27",
3569
+ version: "0.1.36",
3584
3570
  },
3585
3571
  {
3586
3572
  capabilities: {
@@ -3605,7 +3591,7 @@ class MCPServer {
3605
3591
  });
3606
3592
  }
3607
3593
 
3608
- headers['User-Agent'] = 'hostinger-mcp-server/0.1.27';
3594
+ headers['User-Agent'] = 'hostinger-mcp-server/0.1.36';
3609
3595
 
3610
3596
  return headers;
3611
3597
  }
@@ -3850,7 +3836,9 @@ class MCPServer {
3850
3836
 
3851
3837
  const requestHeaders = {
3852
3838
  'X-Auth': authToken,
3853
- 'X-Auth-Rest': authRestToken
3839
+ 'X-Auth-Rest': authRestToken,
3840
+ 'upload-length': stats.size.toString(),
3841
+ 'upload-offset': '0'
3854
3842
  };
3855
3843
 
3856
3844
  try {