hostinger-api-mcp 1.60.2 → 1.61.1

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/CHANGELOG.md CHANGED
@@ -4,6 +4,27 @@ Generated at release time from the diff between the previous and current
4
4
  build. Tool changes are listed individually; everything else is summarised
5
5
  by area.
6
6
 
7
+ ## v1.61.1 — 2026-09-17
8
+
9
+ ### Also in this release
10
+
11
+ - Request handling and authentication: `src/core/runtime.js`, `src/core/runtime.ts`
12
+
13
+ ## v1.61.0 — 2026-09-16
14
+
15
+ ### Tools
16
+
17
+ - Added `hosting_installSSLV1` — Install SSL
18
+ - Added `hosting_getSSLStatusV1` — Get SSL status
19
+ - Added `hosting_toggleHTTPSRedirectV1` — Toggle HTTPS redirect
20
+ - Added `hosting_uninstallSSLV1` — Uninstall SSL
21
+
22
+ ### Also in this release
23
+
24
+ - Documentation: `README.md`
25
+ - Request handling and authentication: `src/core/runtime.js`, `src/core/runtime.ts`
26
+ - Build and packaging: `types.d.ts`
27
+
7
28
  ## v1.60.2 — 2026-09-16
8
29
 
9
30
  ### Tools
package/README.md CHANGED
@@ -69,14 +69,14 @@ pnpm update -g @hostinger/mcp
69
69
 
70
70
  This package installs the following MCP server commands:
71
71
 
72
- - `hostinger-api-mcp` — unified server with every tool (392 total)
72
+ - `hostinger-api-mcp` — unified server with every tool (396 total)
73
73
  - `hostinger-agency-hosting-mcp` — 38 tools for agency-hosting
74
74
  - `hostinger-billing-mcp` — 9 tools for billing
75
75
  - `hostinger-dns-mcp` — 8 tools for dns
76
76
  - `hostinger-domains-mcp` — 41 tools for domains
77
77
  - `hostinger-ecommerce-mcp` — 29 tools for ecommerce
78
78
  - `hostinger-horizons-mcp` — 6 tools for horizons
79
- - `hostinger-hosting-mcp` — 69 tools for hosting
79
+ - `hostinger-hosting-mcp` — 73 tools for hosting
80
80
  - `hostinger-mail-mcp` — 38 tools for mail
81
81
  - `hostinger-reach-mcp` — 52 tools for reach
82
82
  - `hostinger-vps-mcp` — 64 tools for vps
@@ -2435,6 +2435,60 @@ Pass the `from` value exactly as returned by the list redirects endpoint.
2435
2435
  - **Method**: `DELETE`
2436
2436
  - **Path**: `/api/hosting/v1/accounts/{username}/websites/{domain}/redirects`
2437
2437
 
2438
+ #### hosting_installSSLV1
2439
+
2440
+ Requests a lifetime SSL certificate for the website. The installation runs in the background;
2441
+ `Get SSL status` reports `active` or `failed` when it ends. An `active` lifetime certificate
2442
+ does not block the request: a new installation is requested, which is how a certificate is
2443
+ reinstalled.
2444
+
2445
+ Returns 422 for free subdomains (their certificate is managed by the platform), while an
2446
+ installation is `installing` or `waiting_for_retry`, when the website's certificate was
2447
+ revoked (it cannot be reissued), and when an uploaded custom certificate is installed; that
2448
+ one has to be uninstalled first.
2449
+
2450
+ - **Method**: `POST`
2451
+ - **Path**: `/api/hosting/v1/accounts/{username}/websites/{domain}/ssl/setup`
2452
+
2453
+ #### hosting_getSSLStatusV1
2454
+
2455
+ Returns the SSL state of the website: the certificate `status` and `provider`, whether the
2456
+ certificate is a lifetime one managed by the platform, whether HTTP requests are redirected to
2457
+ HTTPS, when the certificate stops being valid and the last installation error.
2458
+
2459
+ `installing` and `waiting_for_retry` mean an installation is in progress. `failed` means the
2460
+ last installation gave up, or the website was not updated for 60 minutes while `installing`;
2461
+ `last_error` holds the reason when it is a known message, otherwise it is null. `expired`
2462
+ means the assigned certificate's validity has ended. `not_installed` means no certificate is
2463
+ assigned. Free subdomains use a platform-managed certificate: with no installation recorded
2464
+ they report `active` with `provider` and `expires_at` null.
2465
+
2466
+ - **Method**: `GET`
2467
+ - **Path**: `/api/hosting/v1/accounts/{username}/websites/{domain}/ssl/status`
2468
+
2469
+ #### hosting_toggleHTTPSRedirectV1
2470
+
2471
+ Turns the HTTP to HTTPS redirect of the website on or off, based on `is_enabled`. Does
2472
+ nothing when the redirect is already in the requested state. Turning it on requires an
2473
+ installed certificate (`status` `active` or `expired` on `Get SSL status`) and returns 422
2474
+ when there is none; turning it off is always accepted.
2475
+
2476
+ - **Method**: `PATCH`
2477
+ - **Path**: `/api/hosting/v1/accounts/{username}/websites/{domain}/ssl/https-redirect/toggle`
2478
+
2479
+ #### hosting_uninstallSSLV1
2480
+
2481
+ Removes the SSL certificate assigned to the website, turns the HTTPS redirect off and cancels
2482
+ a pending installation retry. The website serves plain HTTP until a new installation
2483
+ completes. `Get SSL status` reports `not_installed` as soon as the call returns; the call also
2484
+ succeeds when no certificate is assigned, so repeating it is safe.
2485
+
2486
+ Returns 422 for free subdomains (their certificate is managed by the platform) and while an
2487
+ installation is `installing`.
2488
+
2489
+ - **Method**: `DELETE`
2490
+ - **Path**: `/api/hosting/v1/accounts/{username}/websites/{domain}/ssl`
2491
+
2438
2492
  #### hosting_listWebsitesV1
2439
2493
 
2440
2494
  Retrieve a paginated list of websites (CloudLinux, Builder, and Horizons) accessible to the
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hostinger-api-mcp",
3
- "version": "1.60.2",
3
+ "version": "1.61.1",
4
4
  "description": "Hostinger API — manage domains, DNS, hosting, VPS, billing and more from Gemini CLI.",
5
5
  "mcpServers": {
6
6
  "hostinger": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hostinger-api-mcp",
3
- "version": "1.60.2",
3
+ "version": "1.61.1",
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": "1.60.2",
9
+ "version": "1.61.1",
10
10
  "packages": [
11
11
  {
12
12
  "registryType": "npm",
13
13
  "identifier": "@hostinger/mcp",
14
- "version": "1.60.2",
14
+ "version": "1.61.1",
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 1.52.2
32
+ * Generated from OpenAPI spec version 1.53.1
33
33
  */
34
34
  class MCPServer {
35
35
  constructor({ name, version, tools }) {
@@ -52,7 +52,7 @@ const SECURITY_SCHEMES: Record<string, SecurityScheme> = {
52
52
 
53
53
  /**
54
54
  * MCP Server for Hostinger API
55
- * Generated from OpenAPI spec version 1.52.2
55
+ * Generated from OpenAPI spec version 1.53.1
56
56
  */
57
57
  class MCPServer {
58
58
  private readonly name: string;
@@ -8164,6 +8164,153 @@ export default [
8164
8164
  ],
8165
8165
  "group": "hosting"
8166
8166
  },
8167
+ {
8168
+ "name": "hosting_installSSLV1",
8169
+ "title": "Install SSL",
8170
+ "annotations": {
8171
+ "title": "Install SSL",
8172
+ "readOnlyHint": false,
8173
+ "destructiveHint": false
8174
+ },
8175
+ "description": "Requests a lifetime SSL certificate for the website. The installation runs in the background;\n`Get SSL status` reports `active` or `failed` when it ends. An `active` lifetime certificate\ndoes not block the request: a new installation is requested, which is how a certificate is\nreinstalled.\n\nReturns 422 for free subdomains (their certificate is managed by the platform), while an\ninstallation is `installing` or `waiting_for_retry`, when the website's certificate was\nrevoked (it cannot be reissued), and when an uploaded custom certificate is installed; that\none has to be uninstalled first.",
8176
+ "method": "POST",
8177
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/ssl/setup",
8178
+ "inputSchema": {
8179
+ "type": "object",
8180
+ "properties": {
8181
+ "username": {
8182
+ "type": "string",
8183
+ "description": "username parameter"
8184
+ },
8185
+ "domain": {
8186
+ "type": "string",
8187
+ "description": "Domain name"
8188
+ }
8189
+ },
8190
+ "required": [
8191
+ "username",
8192
+ "domain"
8193
+ ]
8194
+ },
8195
+ "security": [
8196
+ {
8197
+ "apiToken": []
8198
+ }
8199
+ ],
8200
+ "group": "hosting"
8201
+ },
8202
+ {
8203
+ "name": "hosting_getSSLStatusV1",
8204
+ "title": "Get SSL status",
8205
+ "annotations": {
8206
+ "title": "Get SSL status",
8207
+ "readOnlyHint": true,
8208
+ "destructiveHint": false
8209
+ },
8210
+ "description": "Returns the SSL state of the website: the certificate `status` and `provider`, whether the\ncertificate is a lifetime one managed by the platform, whether HTTP requests are redirected to\nHTTPS, when the certificate stops being valid and the last installation error.\n\n`installing` and `waiting_for_retry` mean an installation is in progress. `failed` means the\nlast installation gave up, or the website was not updated for 60 minutes while `installing`;\n`last_error` holds the reason when it is a known message, otherwise it is null. `expired`\nmeans the assigned certificate's validity has ended. `not_installed` means no certificate is\nassigned. Free subdomains use a platform-managed certificate: with no installation recorded\nthey report `active` with `provider` and `expires_at` null.",
8211
+ "method": "GET",
8212
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/ssl/status",
8213
+ "inputSchema": {
8214
+ "type": "object",
8215
+ "properties": {
8216
+ "username": {
8217
+ "type": "string",
8218
+ "description": "username parameter"
8219
+ },
8220
+ "domain": {
8221
+ "type": "string",
8222
+ "description": "Domain name"
8223
+ }
8224
+ },
8225
+ "required": [
8226
+ "username",
8227
+ "domain"
8228
+ ]
8229
+ },
8230
+ "security": [
8231
+ {
8232
+ "apiToken": []
8233
+ }
8234
+ ],
8235
+ "group": "hosting"
8236
+ },
8237
+ {
8238
+ "name": "hosting_toggleHTTPSRedirectV1",
8239
+ "title": "Toggle HTTPS redirect",
8240
+ "annotations": {
8241
+ "title": "Toggle HTTPS redirect",
8242
+ "readOnlyHint": false,
8243
+ "destructiveHint": true,
8244
+ "idempotentHint": true
8245
+ },
8246
+ "description": "Turns the HTTP to HTTPS redirect of the website on or off, based on `is_enabled`. Does\nnothing when the redirect is already in the requested state. Turning it on requires an\ninstalled certificate (`status` `active` or `expired` on `Get SSL status`) and returns 422\nwhen there is none; turning it off is always accepted.",
8247
+ "method": "PATCH",
8248
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/ssl/https-redirect/toggle",
8249
+ "inputSchema": {
8250
+ "type": "object",
8251
+ "properties": {
8252
+ "username": {
8253
+ "type": "string",
8254
+ "description": "username parameter"
8255
+ },
8256
+ "domain": {
8257
+ "type": "string",
8258
+ "description": "Domain name"
8259
+ },
8260
+ "is_enabled": {
8261
+ "type": "boolean",
8262
+ "description": "Turn the HTTP to HTTPS redirect on (true) or off (false) for the website."
8263
+ }
8264
+ },
8265
+ "required": [
8266
+ "username",
8267
+ "domain",
8268
+ "is_enabled"
8269
+ ]
8270
+ },
8271
+ "security": [
8272
+ {
8273
+ "apiToken": []
8274
+ }
8275
+ ],
8276
+ "group": "hosting"
8277
+ },
8278
+ {
8279
+ "name": "hosting_uninstallSSLV1",
8280
+ "title": "Uninstall SSL",
8281
+ "annotations": {
8282
+ "title": "Uninstall SSL",
8283
+ "readOnlyHint": false,
8284
+ "destructiveHint": true,
8285
+ "idempotentHint": true
8286
+ },
8287
+ "description": "Removes the SSL certificate assigned to the website, turns the HTTPS redirect off and cancels\na pending installation retry. The website serves plain HTTP until a new installation\ncompletes. `Get SSL status` reports `not_installed` as soon as the call returns; the call also\nsucceeds when no certificate is assigned, so repeating it is safe.\n\nReturns 422 for free subdomains (their certificate is managed by the platform) and while an\ninstallation is `installing`.",
8288
+ "method": "DELETE",
8289
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/ssl",
8290
+ "inputSchema": {
8291
+ "type": "object",
8292
+ "properties": {
8293
+ "username": {
8294
+ "type": "string",
8295
+ "description": "username parameter"
8296
+ },
8297
+ "domain": {
8298
+ "type": "string",
8299
+ "description": "Domain name"
8300
+ }
8301
+ },
8302
+ "required": [
8303
+ "username",
8304
+ "domain"
8305
+ ]
8306
+ },
8307
+ "security": [
8308
+ {
8309
+ "apiToken": []
8310
+ }
8311
+ ],
8312
+ "group": "hosting"
8313
+ },
8167
8314
  {
8168
8315
  "name": "hosting_listWebsitesV1",
8169
8316
  "title": "List websites",
@@ -8178,6 +8178,153 @@ const tools: OpenApiTool[] = [
8178
8178
  ],
8179
8179
  "group": "hosting"
8180
8180
  },
8181
+ {
8182
+ "name": "hosting_installSSLV1",
8183
+ "title": "Install SSL",
8184
+ "annotations": {
8185
+ "title": "Install SSL",
8186
+ "readOnlyHint": false,
8187
+ "destructiveHint": false
8188
+ },
8189
+ "description": "Requests a lifetime SSL certificate for the website. The installation runs in the background;\n`Get SSL status` reports `active` or `failed` when it ends. An `active` lifetime certificate\ndoes not block the request: a new installation is requested, which is how a certificate is\nreinstalled.\n\nReturns 422 for free subdomains (their certificate is managed by the platform), while an\ninstallation is `installing` or `waiting_for_retry`, when the website's certificate was\nrevoked (it cannot be reissued), and when an uploaded custom certificate is installed; that\none has to be uninstalled first.",
8190
+ "method": "POST",
8191
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/ssl/setup",
8192
+ "inputSchema": {
8193
+ "type": "object",
8194
+ "properties": {
8195
+ "username": {
8196
+ "type": "string",
8197
+ "description": "username parameter"
8198
+ },
8199
+ "domain": {
8200
+ "type": "string",
8201
+ "description": "Domain name"
8202
+ }
8203
+ },
8204
+ "required": [
8205
+ "username",
8206
+ "domain"
8207
+ ]
8208
+ },
8209
+ "security": [
8210
+ {
8211
+ "apiToken": []
8212
+ }
8213
+ ],
8214
+ "group": "hosting"
8215
+ },
8216
+ {
8217
+ "name": "hosting_getSSLStatusV1",
8218
+ "title": "Get SSL status",
8219
+ "annotations": {
8220
+ "title": "Get SSL status",
8221
+ "readOnlyHint": true,
8222
+ "destructiveHint": false
8223
+ },
8224
+ "description": "Returns the SSL state of the website: the certificate `status` and `provider`, whether the\ncertificate is a lifetime one managed by the platform, whether HTTP requests are redirected to\nHTTPS, when the certificate stops being valid and the last installation error.\n\n`installing` and `waiting_for_retry` mean an installation is in progress. `failed` means the\nlast installation gave up, or the website was not updated for 60 minutes while `installing`;\n`last_error` holds the reason when it is a known message, otherwise it is null. `expired`\nmeans the assigned certificate's validity has ended. `not_installed` means no certificate is\nassigned. Free subdomains use a platform-managed certificate: with no installation recorded\nthey report `active` with `provider` and `expires_at` null.",
8225
+ "method": "GET",
8226
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/ssl/status",
8227
+ "inputSchema": {
8228
+ "type": "object",
8229
+ "properties": {
8230
+ "username": {
8231
+ "type": "string",
8232
+ "description": "username parameter"
8233
+ },
8234
+ "domain": {
8235
+ "type": "string",
8236
+ "description": "Domain name"
8237
+ }
8238
+ },
8239
+ "required": [
8240
+ "username",
8241
+ "domain"
8242
+ ]
8243
+ },
8244
+ "security": [
8245
+ {
8246
+ "apiToken": []
8247
+ }
8248
+ ],
8249
+ "group": "hosting"
8250
+ },
8251
+ {
8252
+ "name": "hosting_toggleHTTPSRedirectV1",
8253
+ "title": "Toggle HTTPS redirect",
8254
+ "annotations": {
8255
+ "title": "Toggle HTTPS redirect",
8256
+ "readOnlyHint": false,
8257
+ "destructiveHint": true,
8258
+ "idempotentHint": true
8259
+ },
8260
+ "description": "Turns the HTTP to HTTPS redirect of the website on or off, based on `is_enabled`. Does\nnothing when the redirect is already in the requested state. Turning it on requires an\ninstalled certificate (`status` `active` or `expired` on `Get SSL status`) and returns 422\nwhen there is none; turning it off is always accepted.",
8261
+ "method": "PATCH",
8262
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/ssl/https-redirect/toggle",
8263
+ "inputSchema": {
8264
+ "type": "object",
8265
+ "properties": {
8266
+ "username": {
8267
+ "type": "string",
8268
+ "description": "username parameter"
8269
+ },
8270
+ "domain": {
8271
+ "type": "string",
8272
+ "description": "Domain name"
8273
+ },
8274
+ "is_enabled": {
8275
+ "type": "boolean",
8276
+ "description": "Turn the HTTP to HTTPS redirect on (true) or off (false) for the website."
8277
+ }
8278
+ },
8279
+ "required": [
8280
+ "username",
8281
+ "domain",
8282
+ "is_enabled"
8283
+ ]
8284
+ },
8285
+ "security": [
8286
+ {
8287
+ "apiToken": []
8288
+ }
8289
+ ],
8290
+ "group": "hosting"
8291
+ },
8292
+ {
8293
+ "name": "hosting_uninstallSSLV1",
8294
+ "title": "Uninstall SSL",
8295
+ "annotations": {
8296
+ "title": "Uninstall SSL",
8297
+ "readOnlyHint": false,
8298
+ "destructiveHint": true,
8299
+ "idempotentHint": true
8300
+ },
8301
+ "description": "Removes the SSL certificate assigned to the website, turns the HTTPS redirect off and cancels\na pending installation retry. The website serves plain HTTP until a new installation\ncompletes. `Get SSL status` reports `not_installed` as soon as the call returns; the call also\nsucceeds when no certificate is assigned, so repeating it is safe.\n\nReturns 422 for free subdomains (their certificate is managed by the platform) and while an\ninstallation is `installing`.",
8302
+ "method": "DELETE",
8303
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/ssl",
8304
+ "inputSchema": {
8305
+ "type": "object",
8306
+ "properties": {
8307
+ "username": {
8308
+ "type": "string",
8309
+ "description": "username parameter"
8310
+ },
8311
+ "domain": {
8312
+ "type": "string",
8313
+ "description": "Domain name"
8314
+ }
8315
+ },
8316
+ "required": [
8317
+ "username",
8318
+ "domain"
8319
+ ]
8320
+ },
8321
+ "security": [
8322
+ {
8323
+ "apiToken": []
8324
+ }
8325
+ ],
8326
+ "group": "hosting"
8327
+ },
8181
8328
  {
8182
8329
  "name": "hosting_listWebsitesV1",
8183
8330
  "title": "List websites",
@@ -2844,6 +2844,153 @@ export default [
2844
2844
  ],
2845
2845
  "group": "hosting"
2846
2846
  },
2847
+ {
2848
+ "name": "hosting_installSSLV1",
2849
+ "title": "Install SSL",
2850
+ "annotations": {
2851
+ "title": "Install SSL",
2852
+ "readOnlyHint": false,
2853
+ "destructiveHint": false
2854
+ },
2855
+ "description": "Requests a lifetime SSL certificate for the website. The installation runs in the background;\n`Get SSL status` reports `active` or `failed` when it ends. An `active` lifetime certificate\ndoes not block the request: a new installation is requested, which is how a certificate is\nreinstalled.\n\nReturns 422 for free subdomains (their certificate is managed by the platform), while an\ninstallation is `installing` or `waiting_for_retry`, when the website's certificate was\nrevoked (it cannot be reissued), and when an uploaded custom certificate is installed; that\none has to be uninstalled first.",
2856
+ "method": "POST",
2857
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/ssl/setup",
2858
+ "inputSchema": {
2859
+ "type": "object",
2860
+ "properties": {
2861
+ "username": {
2862
+ "type": "string",
2863
+ "description": "username parameter"
2864
+ },
2865
+ "domain": {
2866
+ "type": "string",
2867
+ "description": "Domain name"
2868
+ }
2869
+ },
2870
+ "required": [
2871
+ "username",
2872
+ "domain"
2873
+ ]
2874
+ },
2875
+ "security": [
2876
+ {
2877
+ "apiToken": []
2878
+ }
2879
+ ],
2880
+ "group": "hosting"
2881
+ },
2882
+ {
2883
+ "name": "hosting_getSSLStatusV1",
2884
+ "title": "Get SSL status",
2885
+ "annotations": {
2886
+ "title": "Get SSL status",
2887
+ "readOnlyHint": true,
2888
+ "destructiveHint": false
2889
+ },
2890
+ "description": "Returns the SSL state of the website: the certificate `status` and `provider`, whether the\ncertificate is a lifetime one managed by the platform, whether HTTP requests are redirected to\nHTTPS, when the certificate stops being valid and the last installation error.\n\n`installing` and `waiting_for_retry` mean an installation is in progress. `failed` means the\nlast installation gave up, or the website was not updated for 60 minutes while `installing`;\n`last_error` holds the reason when it is a known message, otherwise it is null. `expired`\nmeans the assigned certificate's validity has ended. `not_installed` means no certificate is\nassigned. Free subdomains use a platform-managed certificate: with no installation recorded\nthey report `active` with `provider` and `expires_at` null.",
2891
+ "method": "GET",
2892
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/ssl/status",
2893
+ "inputSchema": {
2894
+ "type": "object",
2895
+ "properties": {
2896
+ "username": {
2897
+ "type": "string",
2898
+ "description": "username parameter"
2899
+ },
2900
+ "domain": {
2901
+ "type": "string",
2902
+ "description": "Domain name"
2903
+ }
2904
+ },
2905
+ "required": [
2906
+ "username",
2907
+ "domain"
2908
+ ]
2909
+ },
2910
+ "security": [
2911
+ {
2912
+ "apiToken": []
2913
+ }
2914
+ ],
2915
+ "group": "hosting"
2916
+ },
2917
+ {
2918
+ "name": "hosting_toggleHTTPSRedirectV1",
2919
+ "title": "Toggle HTTPS redirect",
2920
+ "annotations": {
2921
+ "title": "Toggle HTTPS redirect",
2922
+ "readOnlyHint": false,
2923
+ "destructiveHint": true,
2924
+ "idempotentHint": true
2925
+ },
2926
+ "description": "Turns the HTTP to HTTPS redirect of the website on or off, based on `is_enabled`. Does\nnothing when the redirect is already in the requested state. Turning it on requires an\ninstalled certificate (`status` `active` or `expired` on `Get SSL status`) and returns 422\nwhen there is none; turning it off is always accepted.",
2927
+ "method": "PATCH",
2928
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/ssl/https-redirect/toggle",
2929
+ "inputSchema": {
2930
+ "type": "object",
2931
+ "properties": {
2932
+ "username": {
2933
+ "type": "string",
2934
+ "description": "username parameter"
2935
+ },
2936
+ "domain": {
2937
+ "type": "string",
2938
+ "description": "Domain name"
2939
+ },
2940
+ "is_enabled": {
2941
+ "type": "boolean",
2942
+ "description": "Turn the HTTP to HTTPS redirect on (true) or off (false) for the website."
2943
+ }
2944
+ },
2945
+ "required": [
2946
+ "username",
2947
+ "domain",
2948
+ "is_enabled"
2949
+ ]
2950
+ },
2951
+ "security": [
2952
+ {
2953
+ "apiToken": []
2954
+ }
2955
+ ],
2956
+ "group": "hosting"
2957
+ },
2958
+ {
2959
+ "name": "hosting_uninstallSSLV1",
2960
+ "title": "Uninstall SSL",
2961
+ "annotations": {
2962
+ "title": "Uninstall SSL",
2963
+ "readOnlyHint": false,
2964
+ "destructiveHint": true,
2965
+ "idempotentHint": true
2966
+ },
2967
+ "description": "Removes the SSL certificate assigned to the website, turns the HTTPS redirect off and cancels\na pending installation retry. The website serves plain HTTP until a new installation\ncompletes. `Get SSL status` reports `not_installed` as soon as the call returns; the call also\nsucceeds when no certificate is assigned, so repeating it is safe.\n\nReturns 422 for free subdomains (their certificate is managed by the platform) and while an\ninstallation is `installing`.",
2968
+ "method": "DELETE",
2969
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/ssl",
2970
+ "inputSchema": {
2971
+ "type": "object",
2972
+ "properties": {
2973
+ "username": {
2974
+ "type": "string",
2975
+ "description": "username parameter"
2976
+ },
2977
+ "domain": {
2978
+ "type": "string",
2979
+ "description": "Domain name"
2980
+ }
2981
+ },
2982
+ "required": [
2983
+ "username",
2984
+ "domain"
2985
+ ]
2986
+ },
2987
+ "security": [
2988
+ {
2989
+ "apiToken": []
2990
+ }
2991
+ ],
2992
+ "group": "hosting"
2993
+ },
2847
2994
  {
2848
2995
  "name": "hosting_listWebsitesV1",
2849
2996
  "title": "List websites",
@@ -2858,6 +2858,153 @@ const tools: OpenApiTool[] = [
2858
2858
  ],
2859
2859
  "group": "hosting"
2860
2860
  },
2861
+ {
2862
+ "name": "hosting_installSSLV1",
2863
+ "title": "Install SSL",
2864
+ "annotations": {
2865
+ "title": "Install SSL",
2866
+ "readOnlyHint": false,
2867
+ "destructiveHint": false
2868
+ },
2869
+ "description": "Requests a lifetime SSL certificate for the website. The installation runs in the background;\n`Get SSL status` reports `active` or `failed` when it ends. An `active` lifetime certificate\ndoes not block the request: a new installation is requested, which is how a certificate is\nreinstalled.\n\nReturns 422 for free subdomains (their certificate is managed by the platform), while an\ninstallation is `installing` or `waiting_for_retry`, when the website's certificate was\nrevoked (it cannot be reissued), and when an uploaded custom certificate is installed; that\none has to be uninstalled first.",
2870
+ "method": "POST",
2871
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/ssl/setup",
2872
+ "inputSchema": {
2873
+ "type": "object",
2874
+ "properties": {
2875
+ "username": {
2876
+ "type": "string",
2877
+ "description": "username parameter"
2878
+ },
2879
+ "domain": {
2880
+ "type": "string",
2881
+ "description": "Domain name"
2882
+ }
2883
+ },
2884
+ "required": [
2885
+ "username",
2886
+ "domain"
2887
+ ]
2888
+ },
2889
+ "security": [
2890
+ {
2891
+ "apiToken": []
2892
+ }
2893
+ ],
2894
+ "group": "hosting"
2895
+ },
2896
+ {
2897
+ "name": "hosting_getSSLStatusV1",
2898
+ "title": "Get SSL status",
2899
+ "annotations": {
2900
+ "title": "Get SSL status",
2901
+ "readOnlyHint": true,
2902
+ "destructiveHint": false
2903
+ },
2904
+ "description": "Returns the SSL state of the website: the certificate `status` and `provider`, whether the\ncertificate is a lifetime one managed by the platform, whether HTTP requests are redirected to\nHTTPS, when the certificate stops being valid and the last installation error.\n\n`installing` and `waiting_for_retry` mean an installation is in progress. `failed` means the\nlast installation gave up, or the website was not updated for 60 minutes while `installing`;\n`last_error` holds the reason when it is a known message, otherwise it is null. `expired`\nmeans the assigned certificate's validity has ended. `not_installed` means no certificate is\nassigned. Free subdomains use a platform-managed certificate: with no installation recorded\nthey report `active` with `provider` and `expires_at` null.",
2905
+ "method": "GET",
2906
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/ssl/status",
2907
+ "inputSchema": {
2908
+ "type": "object",
2909
+ "properties": {
2910
+ "username": {
2911
+ "type": "string",
2912
+ "description": "username parameter"
2913
+ },
2914
+ "domain": {
2915
+ "type": "string",
2916
+ "description": "Domain name"
2917
+ }
2918
+ },
2919
+ "required": [
2920
+ "username",
2921
+ "domain"
2922
+ ]
2923
+ },
2924
+ "security": [
2925
+ {
2926
+ "apiToken": []
2927
+ }
2928
+ ],
2929
+ "group": "hosting"
2930
+ },
2931
+ {
2932
+ "name": "hosting_toggleHTTPSRedirectV1",
2933
+ "title": "Toggle HTTPS redirect",
2934
+ "annotations": {
2935
+ "title": "Toggle HTTPS redirect",
2936
+ "readOnlyHint": false,
2937
+ "destructiveHint": true,
2938
+ "idempotentHint": true
2939
+ },
2940
+ "description": "Turns the HTTP to HTTPS redirect of the website on or off, based on `is_enabled`. Does\nnothing when the redirect is already in the requested state. Turning it on requires an\ninstalled certificate (`status` `active` or `expired` on `Get SSL status`) and returns 422\nwhen there is none; turning it off is always accepted.",
2941
+ "method": "PATCH",
2942
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/ssl/https-redirect/toggle",
2943
+ "inputSchema": {
2944
+ "type": "object",
2945
+ "properties": {
2946
+ "username": {
2947
+ "type": "string",
2948
+ "description": "username parameter"
2949
+ },
2950
+ "domain": {
2951
+ "type": "string",
2952
+ "description": "Domain name"
2953
+ },
2954
+ "is_enabled": {
2955
+ "type": "boolean",
2956
+ "description": "Turn the HTTP to HTTPS redirect on (true) or off (false) for the website."
2957
+ }
2958
+ },
2959
+ "required": [
2960
+ "username",
2961
+ "domain",
2962
+ "is_enabled"
2963
+ ]
2964
+ },
2965
+ "security": [
2966
+ {
2967
+ "apiToken": []
2968
+ }
2969
+ ],
2970
+ "group": "hosting"
2971
+ },
2972
+ {
2973
+ "name": "hosting_uninstallSSLV1",
2974
+ "title": "Uninstall SSL",
2975
+ "annotations": {
2976
+ "title": "Uninstall SSL",
2977
+ "readOnlyHint": false,
2978
+ "destructiveHint": true,
2979
+ "idempotentHint": true
2980
+ },
2981
+ "description": "Removes the SSL certificate assigned to the website, turns the HTTPS redirect off and cancels\na pending installation retry. The website serves plain HTTP until a new installation\ncompletes. `Get SSL status` reports `not_installed` as soon as the call returns; the call also\nsucceeds when no certificate is assigned, so repeating it is safe.\n\nReturns 422 for free subdomains (their certificate is managed by the platform) and while an\ninstallation is `installing`.",
2982
+ "method": "DELETE",
2983
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/ssl",
2984
+ "inputSchema": {
2985
+ "type": "object",
2986
+ "properties": {
2987
+ "username": {
2988
+ "type": "string",
2989
+ "description": "username parameter"
2990
+ },
2991
+ "domain": {
2992
+ "type": "string",
2993
+ "description": "Domain name"
2994
+ }
2995
+ },
2996
+ "required": [
2997
+ "username",
2998
+ "domain"
2999
+ ]
3000
+ },
3001
+ "security": [
3002
+ {
3003
+ "apiToken": []
3004
+ }
3005
+ ],
3006
+ "group": "hosting"
3007
+ },
2861
3008
  {
2862
3009
  "name": "hosting_listWebsitesV1",
2863
3010
  "title": "List websites",
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/agency-hosting.js';
5
5
 
6
- startServer({ name: 'hostinger-agency-hosting-mcp', version: '1.60.2', tools });
6
+ startServer({ name: 'hostinger-agency-hosting-mcp', version: '1.61.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/agency-hosting.js';
5
5
 
6
- startServer({ name: 'hostinger-agency-hosting-mcp', version: '1.60.2', tools });
6
+ startServer({ name: 'hostinger-agency-hosting-mcp', version: '1.61.1', 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: '1.60.2', tools });
6
+ startServer({ name: 'hostinger-api-mcp', version: '1.61.1', 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: '1.60.2', tools });
6
+ startServer({ name: 'hostinger-api-mcp', version: '1.61.1', 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: '1.60.2', tools });
6
+ startServer({ name: 'hostinger-billing-mcp', version: '1.61.1', 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: '1.60.2', tools });
6
+ startServer({ name: 'hostinger-billing-mcp', version: '1.61.1', 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: '1.60.2', tools });
6
+ startServer({ name: 'hostinger-dns-mcp', version: '1.61.1', 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: '1.60.2', tools });
6
+ startServer({ name: 'hostinger-dns-mcp', version: '1.61.1', 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: '1.60.2', tools });
6
+ startServer({ name: 'hostinger-domains-mcp', version: '1.61.1', 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: '1.60.2', tools });
6
+ startServer({ name: 'hostinger-domains-mcp', version: '1.61.1', 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: '1.60.2', tools });
6
+ startServer({ name: 'hostinger-ecommerce-mcp', version: '1.61.1', 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: '1.60.2', tools });
6
+ startServer({ name: 'hostinger-ecommerce-mcp', version: '1.61.1', 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: '1.60.2', tools });
6
+ startServer({ name: 'hostinger-horizons-mcp', version: '1.61.1', 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: '1.60.2', tools });
6
+ startServer({ name: 'hostinger-horizons-mcp', version: '1.61.1', 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: '1.60.2', tools });
6
+ startServer({ name: 'hostinger-hosting-mcp', version: '1.61.1', 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: '1.60.2', tools });
6
+ startServer({ name: 'hostinger-hosting-mcp', version: '1.61.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/mail.js';
5
5
 
6
- startServer({ name: 'hostinger-mail-mcp', version: '1.60.2', tools });
6
+ startServer({ name: 'hostinger-mail-mcp', version: '1.61.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/mail.js';
5
5
 
6
- startServer({ name: 'hostinger-mail-mcp', version: '1.60.2', tools });
6
+ startServer({ name: 'hostinger-mail-mcp', version: '1.61.1', 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: '1.60.2', tools });
6
+ startServer({ name: 'hostinger-reach-mcp', version: '1.61.1', 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: '1.60.2', tools });
6
+ startServer({ name: 'hostinger-reach-mcp', version: '1.61.1', 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: '1.60.2', tools });
6
+ startServer({ name: 'hostinger-vps-mcp', version: '1.61.1', 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: '1.60.2', tools });
6
+ startServer({ name: 'hostinger-vps-mcp', version: '1.61.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/wordpress.js';
5
5
 
6
- startServer({ name: 'hostinger-wordpress-mcp', version: '1.60.2', tools });
6
+ startServer({ name: 'hostinger-wordpress-mcp', version: '1.61.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/wordpress.js';
5
5
 
6
- startServer({ name: 'hostinger-wordpress-mcp', version: '1.60.2', tools });
6
+ startServer({ name: 'hostinger-wordpress-mcp', version: '1.61.1', tools });
package/types.d.ts CHANGED
@@ -4666,6 +4666,104 @@ Pass the `from` value exactly as returned by the list redirects endpoint.
4666
4666
  response: any; // Response structure will depend on the API
4667
4667
  };
4668
4668
 
4669
+ /**
4670
+ * Requests a lifetime SSL certificate for the website. The installation runs in the background;
4671
+ `Get SSL status` reports `active` or `failed` when it ends. An `active` lifetime certificate
4672
+ does not block the request: a new installation is requested, which is how a certificate is
4673
+ reinstalled.
4674
+
4675
+ Returns 422 for free subdomains (their certificate is managed by the platform), while an
4676
+ installation is `installing` or `waiting_for_retry`, when the website's certificate was
4677
+ revoked (it cannot be reissued), and when an uploaded custom certificate is installed; that
4678
+ one has to be uninstalled first.
4679
+ */
4680
+ "hosting_installSSLV1": {
4681
+ params: {
4682
+ /**
4683
+ * username parameter
4684
+ */
4685
+ username: string;
4686
+ /**
4687
+ * Domain name
4688
+ */
4689
+ domain: string;
4690
+ };
4691
+ response: any; // Response structure will depend on the API
4692
+ };
4693
+
4694
+ /**
4695
+ * Returns the SSL state of the website: the certificate `status` and `provider`, whether the
4696
+ certificate is a lifetime one managed by the platform, whether HTTP requests are redirected to
4697
+ HTTPS, when the certificate stops being valid and the last installation error.
4698
+
4699
+ `installing` and `waiting_for_retry` mean an installation is in progress. `failed` means the
4700
+ last installation gave up, or the website was not updated for 60 minutes while `installing`;
4701
+ `last_error` holds the reason when it is a known message, otherwise it is null. `expired`
4702
+ means the assigned certificate's validity has ended. `not_installed` means no certificate is
4703
+ assigned. Free subdomains use a platform-managed certificate: with no installation recorded
4704
+ they report `active` with `provider` and `expires_at` null.
4705
+ */
4706
+ "hosting_getSSLStatusV1": {
4707
+ params: {
4708
+ /**
4709
+ * username parameter
4710
+ */
4711
+ username: string;
4712
+ /**
4713
+ * Domain name
4714
+ */
4715
+ domain: string;
4716
+ };
4717
+ response: any; // Response structure will depend on the API
4718
+ };
4719
+
4720
+ /**
4721
+ * Turns the HTTP to HTTPS redirect of the website on or off, based on `is_enabled`. Does
4722
+ nothing when the redirect is already in the requested state. Turning it on requires an
4723
+ installed certificate (`status` `active` or `expired` on `Get SSL status`) and returns 422
4724
+ when there is none; turning it off is always accepted.
4725
+ */
4726
+ "hosting_toggleHTTPSRedirectV1": {
4727
+ params: {
4728
+ /**
4729
+ * username parameter
4730
+ */
4731
+ username: string;
4732
+ /**
4733
+ * Domain name
4734
+ */
4735
+ domain: string;
4736
+ /**
4737
+ * Turn the HTTP to HTTPS redirect on (true) or off (false) for the website.
4738
+ */
4739
+ is_enabled: boolean;
4740
+ };
4741
+ response: any; // Response structure will depend on the API
4742
+ };
4743
+
4744
+ /**
4745
+ * Removes the SSL certificate assigned to the website, turns the HTTPS redirect off and cancels
4746
+ a pending installation retry. The website serves plain HTTP until a new installation
4747
+ completes. `Get SSL status` reports `not_installed` as soon as the call returns; the call also
4748
+ succeeds when no certificate is assigned, so repeating it is safe.
4749
+
4750
+ Returns 422 for free subdomains (their certificate is managed by the platform) and while an
4751
+ installation is `installing`.
4752
+ */
4753
+ "hosting_uninstallSSLV1": {
4754
+ params: {
4755
+ /**
4756
+ * username parameter
4757
+ */
4758
+ username: string;
4759
+ /**
4760
+ * Domain name
4761
+ */
4762
+ domain: string;
4763
+ };
4764
+ response: any; // Response structure will depend on the API
4765
+ };
4766
+
4669
4767
  /**
4670
4768
  * Retrieve a paginated list of websites (CloudLinux, Builder, and Horizons) accessible to the
4671
4769
  authenticated client.