hostinger-api-mcp 1.44.0 → 1.45.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/README.md CHANGED
@@ -70,13 +70,13 @@ pnpm update -g hostinger-api-mcp
70
70
  This package installs the following MCP server commands:
71
71
 
72
72
  - `hostinger-api-mcp` — unified server with every tool (350 total)
73
- - `hostinger-agency-hosting-mcp` — 37 tools for agency-hosting
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` — 40 tools for domains
77
77
  - `hostinger-ecommerce-mcp` — 14 tools for ecommerce
78
78
  - `hostinger-horizons-mcp` — 2 tools for horizons
79
- - `hostinger-hosting-mcp` — 57 tools for hosting
79
+ - `hostinger-hosting-mcp` — 56 tools for hosting
80
80
  - `hostinger-mail-mcp` — 38 tools for mail
81
81
  - `hostinger-reach-mcp` — 45 tools for reach
82
82
  - `hostinger-vps-mcp` — 62 tools for vps
@@ -563,6 +563,25 @@ resources are removed in the background.
563
563
  - **Method**: `DELETE`
564
564
  - **Path**: `/api/agency-hosting/v1/websites/{website_uid}`
565
565
 
566
+ #### agency-hosting_listAgencyPlanWebsitesV1
567
+
568
+ Retrieve a paginated list of Agency Plan websites (H5G, Builder, and Horizons) accessible to
569
+ the authenticated client.
570
+
571
+ This endpoint returns websites from your hosting accounts as well as
572
+ websites from other client hosting accounts that have shared access
573
+ with you.
574
+
575
+ The response shape differs per platform — see the `platform` field on each item.
576
+
577
+ Use `website_types` to list only websites of a given detected type, e.g. only
578
+ WordPress websites (`website_types=wordpress`) or only Node.js websites
579
+ (`website_types=nodejs`). Combine with `order_ids`, `states`, or `domain` for more
580
+ targeted results.
581
+
582
+ - **Method**: `GET`
583
+ - **Path**: `/api/agency-hosting/v1/websites`
584
+
566
585
  #### agency-hosting_listWebsiteProcessesV1
567
586
 
568
587
  Lists active and recently completed asynchronous processes for an Agency Plan website.
@@ -1822,35 +1841,6 @@ the `Get Node.js Build Logs` endpoint.
1822
1841
  - **Method**: `POST`
1823
1842
  - **Path**: `/api/hosting/v1/accounts/{username}/websites/{domain}/nodejs/builds`
1824
1843
 
1825
- #### hosting_createNodeJSBuildFromArchiveV1
1826
-
1827
- Upload a project archive, auto-detect build settings, and immediately start a Node.js build.
1828
-
1829
- WARNING: on success this overwrites the website's existing contents and cannot be
1830
- undone — verify this is intended before calling this endpoint.
1831
-
1832
- This is the recommended single-step approach for deploying a Node.js application.
1833
- The archive is uploaded to the website's file storage, build settings are auto-detected
1834
- from the package.json inside the archive, and the build process starts automatically.
1835
- Optional override fields take precedence over auto-detected values.
1836
- Maximum archive size is 50MB.
1837
-
1838
- Before archiving, exclude `node_modules/` and any build output directories
1839
- (e.g. `dist/`, `.next/`, `build/`) — they are not needed because the build
1840
- process runs the install step automatically, and including them unnecessarily
1841
- increases the archive size. This also helps keep the archive well under the 50MB limit.
1842
-
1843
- Example (zip):
1844
- ```
1845
- zip -r archive.zip . --exclude "node_modules/*" --exclude "dist/*"
1846
- ```
1847
-
1848
- The returned build `uuid` can be used to poll progress and retrieve logs via
1849
- the `Get Node.js Build Logs` endpoint.
1850
-
1851
- - **Method**: `POST`
1852
- - **Path**: `/api/hosting/v1/accounts/{username}/websites/{domain}/nodejs/builds/from-archive`
1853
-
1854
1844
  #### hosting_getNode_jsBuildSettingsFromArchiveV1
1855
1845
 
1856
1846
  Auto-detect Node.js build settings from a package.json inside an archive already on the server.
@@ -2044,8 +2034,11 @@ website detected on the underlying platform (`wordpress`, `builder`,
2044
2034
  `vhost_type`, `username`, and `root_directory`, only apply to
2045
2035
  CloudLinux websites and are null for other platforms.
2046
2036
 
2047
- Use the available query parameters to filter results by username,
2048
- order ID, enabled status, or domain name for more targeted results.
2037
+ Use `website_types` to list only websites of a given detected type, e.g. only
2038
+ WordPress websites (`website_types=wordpress`) or only Node.js websites
2039
+ (`website_types=nodejs`). Combine with the other available query parameters to
2040
+ filter by username, order ID, enabled status, or domain name for more targeted
2041
+ results.
2049
2042
 
2050
2043
  - **Method**: `GET`
2051
2044
  - **Path**: `/api/hosting/v1/websites`
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hostinger-api-mcp",
3
- "version": "1.44.0",
3
+ "version": "1.45.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.44.0",
3
+ "version": "1.45.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.44.0",
9
+ "version": "1.45.1",
10
10
  "packages": [
11
11
  {
12
12
  "registryType": "npm",
13
13
  "identifier": "hostinger-api-mcp",
14
- "version": "1.44.0",
14
+ "version": "1.45.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.41.0
32
+ * Generated from OpenAPI spec version 1.42.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.41.0
55
+ * Generated from OpenAPI spec version 1.42.1
56
56
  */
57
57
  class MCPServer {
58
58
  private readonly name: string;
@@ -1124,6 +1124,74 @@ export default [
1124
1124
  ],
1125
1125
  "group": "agency-hosting"
1126
1126
  },
1127
+ {
1128
+ "name": "agency-hosting_listAgencyPlanWebsitesV1",
1129
+ "description": "Retrieve a paginated list of Agency Plan websites (H5G, Builder, and Horizons) accessible to\nthe 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\nThe response shape differs per platform — see the `platform` field on each item.\n\nUse `website_types` to list only websites of a given detected type, e.g. only\nWordPress websites (`website_types=wordpress`) or only Node.js websites\n(`website_types=nodejs`). Combine with `order_ids`, `states`, or `domain` for more\ntargeted results.",
1130
+ "method": "GET",
1131
+ "path": "/api/agency-hosting/v1/websites",
1132
+ "inputSchema": {
1133
+ "type": "object",
1134
+ "properties": {
1135
+ "page": {
1136
+ "type": "integer",
1137
+ "description": "Page number"
1138
+ },
1139
+ "per_page": {
1140
+ "type": "integer",
1141
+ "description": "Number of items per page"
1142
+ },
1143
+ "order_ids": {
1144
+ "type": "array",
1145
+ "description": "Filter by order IDs. Accepts a comma-separated list.",
1146
+ "items": {
1147
+ "type": "integer",
1148
+ "description": "order_ids parameter"
1149
+ }
1150
+ },
1151
+ "states": {
1152
+ "type": "array",
1153
+ "description": "Filter by website state. Accepts a comma-separated list.",
1154
+ "items": {
1155
+ "type": "string",
1156
+ "description": "states parameter",
1157
+ "enum": [
1158
+ "active",
1159
+ "locked",
1160
+ "suspended",
1161
+ "deleting",
1162
+ "deleted"
1163
+ ]
1164
+ }
1165
+ },
1166
+ "website_types": {
1167
+ "type": "array",
1168
+ "description": "Filter by detected website type, e.g. wordpress,nodejs. Accepts a comma-separated list.",
1169
+ "items": {
1170
+ "type": "string",
1171
+ "description": "website_types parameter",
1172
+ "enum": [
1173
+ "wordpress",
1174
+ "builder",
1175
+ "horizons",
1176
+ "nodejs",
1177
+ "other"
1178
+ ]
1179
+ }
1180
+ },
1181
+ "domain": {
1182
+ "type": "string",
1183
+ "description": "Filter by domain name (case-insensitive substring match)"
1184
+ }
1185
+ },
1186
+ "required": []
1187
+ },
1188
+ "security": [
1189
+ {
1190
+ "apiToken": []
1191
+ }
1192
+ ],
1193
+ "group": "agency-hosting"
1194
+ },
1127
1195
  {
1128
1196
  "name": "agency-hosting_listWebsiteProcessesV1",
1129
1197
  "description": "Lists active and recently completed asynchronous processes for an Agency Plan website.\n\nEach process has a unique ID (for tracking), a type, and a status (running, completed, failed).\nPoll this endpoint after initiating async operations (SSL setup, backups, cloning) to track progress.",
@@ -1138,6 +1138,74 @@ const tools: OpenApiTool[] = [
1138
1138
  ],
1139
1139
  "group": "agency-hosting"
1140
1140
  },
1141
+ {
1142
+ "name": "agency-hosting_listAgencyPlanWebsitesV1",
1143
+ "description": "Retrieve a paginated list of Agency Plan websites (H5G, Builder, and Horizons) accessible to\nthe 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\nThe response shape differs per platform — see the `platform` field on each item.\n\nUse `website_types` to list only websites of a given detected type, e.g. only\nWordPress websites (`website_types=wordpress`) or only Node.js websites\n(`website_types=nodejs`). Combine with `order_ids`, `states`, or `domain` for more\ntargeted results.",
1144
+ "method": "GET",
1145
+ "path": "/api/agency-hosting/v1/websites",
1146
+ "inputSchema": {
1147
+ "type": "object",
1148
+ "properties": {
1149
+ "page": {
1150
+ "type": "integer",
1151
+ "description": "Page number"
1152
+ },
1153
+ "per_page": {
1154
+ "type": "integer",
1155
+ "description": "Number of items per page"
1156
+ },
1157
+ "order_ids": {
1158
+ "type": "array",
1159
+ "description": "Filter by order IDs. Accepts a comma-separated list.",
1160
+ "items": {
1161
+ "type": "integer",
1162
+ "description": "order_ids parameter"
1163
+ }
1164
+ },
1165
+ "states": {
1166
+ "type": "array",
1167
+ "description": "Filter by website state. Accepts a comma-separated list.",
1168
+ "items": {
1169
+ "type": "string",
1170
+ "description": "states parameter",
1171
+ "enum": [
1172
+ "active",
1173
+ "locked",
1174
+ "suspended",
1175
+ "deleting",
1176
+ "deleted"
1177
+ ]
1178
+ }
1179
+ },
1180
+ "website_types": {
1181
+ "type": "array",
1182
+ "description": "Filter by detected website type, e.g. wordpress,nodejs. Accepts a comma-separated list.",
1183
+ "items": {
1184
+ "type": "string",
1185
+ "description": "website_types parameter",
1186
+ "enum": [
1187
+ "wordpress",
1188
+ "builder",
1189
+ "horizons",
1190
+ "nodejs",
1191
+ "other"
1192
+ ]
1193
+ }
1194
+ },
1195
+ "domain": {
1196
+ "type": "string",
1197
+ "description": "Filter by domain name (case-insensitive substring match)"
1198
+ }
1199
+ },
1200
+ "required": []
1201
+ },
1202
+ "security": [
1203
+ {
1204
+ "apiToken": []
1205
+ }
1206
+ ],
1207
+ "group": "agency-hosting"
1208
+ },
1141
1209
  {
1142
1210
  "name": "agency-hosting_listWebsiteProcessesV1",
1143
1211
  "description": "Lists active and recently completed asynchronous processes for an Agency Plan website.\n\nEach process has a unique ID (for tracking), a type, and a status (running, completed, failed).\nPoll this endpoint after initiating async operations (SSL setup, backups, cloning) to track progress.",
@@ -1381,6 +1381,74 @@ export default [
1381
1381
  ],
1382
1382
  "group": "agency-hosting"
1383
1383
  },
1384
+ {
1385
+ "name": "agency-hosting_listAgencyPlanWebsitesV1",
1386
+ "description": "Retrieve a paginated list of Agency Plan websites (H5G, Builder, and Horizons) accessible to\nthe 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\nThe response shape differs per platform — see the `platform` field on each item.\n\nUse `website_types` to list only websites of a given detected type, e.g. only\nWordPress websites (`website_types=wordpress`) or only Node.js websites\n(`website_types=nodejs`). Combine with `order_ids`, `states`, or `domain` for more\ntargeted results.",
1387
+ "method": "GET",
1388
+ "path": "/api/agency-hosting/v1/websites",
1389
+ "inputSchema": {
1390
+ "type": "object",
1391
+ "properties": {
1392
+ "page": {
1393
+ "type": "integer",
1394
+ "description": "Page number"
1395
+ },
1396
+ "per_page": {
1397
+ "type": "integer",
1398
+ "description": "Number of items per page"
1399
+ },
1400
+ "order_ids": {
1401
+ "type": "array",
1402
+ "description": "Filter by order IDs. Accepts a comma-separated list.",
1403
+ "items": {
1404
+ "type": "integer",
1405
+ "description": "order_ids parameter"
1406
+ }
1407
+ },
1408
+ "states": {
1409
+ "type": "array",
1410
+ "description": "Filter by website state. Accepts a comma-separated list.",
1411
+ "items": {
1412
+ "type": "string",
1413
+ "description": "states parameter",
1414
+ "enum": [
1415
+ "active",
1416
+ "locked",
1417
+ "suspended",
1418
+ "deleting",
1419
+ "deleted"
1420
+ ]
1421
+ }
1422
+ },
1423
+ "website_types": {
1424
+ "type": "array",
1425
+ "description": "Filter by detected website type, e.g. wordpress,nodejs. Accepts a comma-separated list.",
1426
+ "items": {
1427
+ "type": "string",
1428
+ "description": "website_types parameter",
1429
+ "enum": [
1430
+ "wordpress",
1431
+ "builder",
1432
+ "horizons",
1433
+ "nodejs",
1434
+ "other"
1435
+ ]
1436
+ }
1437
+ },
1438
+ "domain": {
1439
+ "type": "string",
1440
+ "description": "Filter by domain name (case-insensitive substring match)"
1441
+ }
1442
+ },
1443
+ "required": []
1444
+ },
1445
+ "security": [
1446
+ {
1447
+ "apiToken": []
1448
+ }
1449
+ ],
1450
+ "group": "agency-hosting"
1451
+ },
1384
1452
  {
1385
1453
  "name": "agency-hosting_listWebsiteProcessesV1",
1386
1454
  "description": "Lists active and recently completed asynchronous processes for an Agency Plan website.\n\nEach process has a unique ID (for tracking), a type, and a status (running, completed, failed).\nPoll this endpoint after initiating async operations (SSL setup, backups, cloning) to track progress.",
@@ -4050,7 +4118,7 @@ export default [
4050
4118
  },
4051
4119
  "domain": {
4052
4120
  "type": "string",
4053
- "description": "Filter by domain name (exact match)"
4121
+ "description": "Filter by domain name (case-insensitive substring match)"
4054
4122
  },
4055
4123
  "is_assigned": {
4056
4124
  "type": "boolean",
@@ -4860,100 +4928,6 @@ export default [
4860
4928
  ],
4861
4929
  "group": "hosting"
4862
4930
  },
4863
- {
4864
- "name": "hosting_createNodeJSBuildFromArchiveV1",
4865
- "description": "Upload a project archive, auto-detect build settings, and immediately start a Node.js build.\n\nWARNING: on success this overwrites the website's existing contents and cannot be\nundone — verify this is intended before calling this endpoint.\n\nThis is the recommended single-step approach for deploying a Node.js application.\nThe archive is uploaded to the website's file storage, build settings are auto-detected\nfrom the package.json inside the archive, and the build process starts automatically.\nOptional override fields take precedence over auto-detected values.\nMaximum archive size is 50MB.\n\nBefore archiving, exclude `node_modules/` and any build output directories\n(e.g. `dist/`, `.next/`, `build/`) — they are not needed because the build\nprocess runs the install step automatically, and including them unnecessarily\nincreases the archive size. This also helps keep the archive well under the 50MB limit.\n\nExample (zip):\n```\nzip -r archive.zip . --exclude \"node_modules/*\" --exclude \"dist/*\"\n```\n\nThe returned build `uuid` can be used to poll progress and retrieve logs via\nthe `Get Node.js Build Logs` endpoint.",
4866
- "method": "POST",
4867
- "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/nodejs/builds/from-archive",
4868
- "inputSchema": {
4869
- "type": "object",
4870
- "properties": {
4871
- "username": {
4872
- "type": "string",
4873
- "description": "username parameter"
4874
- },
4875
- "domain": {
4876
- "type": "string",
4877
- "description": "Domain name"
4878
- },
4879
- "archive": {
4880
- "type": "string",
4881
- "description": "Project archive file (.zip, .tar.gz, or .tgz), maximum 50MB"
4882
- },
4883
- "node_version": {
4884
- "type": "integer",
4885
- "description": "Node.js version override (auto-detected from package.json if omitted)",
4886
- "enum": [
4887
- 18,
4888
- 20,
4889
- 22,
4890
- 24
4891
- ]
4892
- },
4893
- "app_type": {
4894
- "type": "string",
4895
- "description": "Node.js application type override",
4896
- "enum": [
4897
- "create-react-app",
4898
- "gatsby",
4899
- "vite",
4900
- "angular",
4901
- "react",
4902
- "vue",
4903
- "parcel",
4904
- "next",
4905
- "nuxt",
4906
- "nest",
4907
- "express",
4908
- "fastify",
4909
- "astro",
4910
- "svelte",
4911
- "svelte-kit",
4912
- "hono",
4913
- "react-router",
4914
- "nitro",
4915
- "other"
4916
- ]
4917
- },
4918
- "root_directory": {
4919
- "type": "string",
4920
- "description": "Application root directory override (where package.json is located) relative to public_html"
4921
- },
4922
- "output_directory": {
4923
- "type": "string",
4924
- "description": "Build output directory override relative to the root directory"
4925
- },
4926
- "build_script": {
4927
- "type": "string",
4928
- "description": "Build script override"
4929
- },
4930
- "entry_file": {
4931
- "type": "string",
4932
- "description": "Main entry point file override"
4933
- },
4934
- "package_manager": {
4935
- "type": "string",
4936
- "description": "Package manager override",
4937
- "enum": [
4938
- "npm",
4939
- "yarn",
4940
- "pnpm"
4941
- ]
4942
- }
4943
- },
4944
- "required": [
4945
- "username",
4946
- "domain",
4947
- "archive"
4948
- ]
4949
- },
4950
- "security": [
4951
- {
4952
- "apiToken": []
4953
- }
4954
- ],
4955
- "group": "hosting"
4956
- },
4957
4931
  {
4958
4932
  "name": "hosting_getNode_jsBuildSettingsFromArchiveV1",
4959
4933
  "description": "Auto-detect Node.js build settings from a package.json inside an archive already on the server.\n\nUse this before calling `Start Node.js Build` to preview what settings will be used,\nor to let the user review and override values (framework, node version, root directory,\noutput directory, build script) before committing to a build.\n\nThe archive must already be present on the website's file storage. Use the\n`Generate Upload URL` endpoint to obtain credentials and upload the archive first.\nTo upload an archive and start a build in one step without inspecting settings first,\nuse the `Create Node.js Build from Archive` endpoint instead.",
@@ -5498,7 +5472,7 @@ export default [
5498
5472
  },
5499
5473
  {
5500
5474
  "name": "hosting_listWebsitesV1",
5501
- "description": "Retrieve a paginated list of websites (CloudLinux, Builder, and Horizons) accessible to the\nauthenticated 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\nEach website includes a `website_type` field describing the type of\nwebsite detected on the underlying platform (`wordpress`, `builder`,\n`horizons`, `nodejs`, or `other`). Some fields, such as\n`vhost_type`, `username`, and `root_directory`, only apply to\nCloudLinux websites and are null for other platforms.\n\nUse the available query parameters to filter results by username,\norder ID, enabled status, or domain name for more targeted results.",
5475
+ "description": "Retrieve a paginated list of websites (CloudLinux, Builder, and Horizons) accessible to the\nauthenticated 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\nEach website includes a `website_type` field describing the type of\nwebsite detected on the underlying platform (`wordpress`, `builder`,\n`horizons`, `nodejs`, or `other`). Some fields, such as\n`vhost_type`, `username`, and `root_directory`, only apply to\nCloudLinux websites and are null for other platforms.\n\nUse `website_types` to list only websites of a given detected type, e.g. only\nWordPress websites (`website_types=wordpress`) or only Node.js websites\n(`website_types=nodejs`). Combine with the other available query parameters to\nfilter by username, order ID, enabled status, or domain name for more targeted\nresults.",
5502
5476
  "method": "GET",
5503
5477
  "path": "/api/hosting/v1/websites",
5504
5478
  "inputSchema": {
@@ -5526,7 +5500,22 @@ export default [
5526
5500
  },
5527
5501
  "domain": {
5528
5502
  "type": "string",
5529
- "description": "Filter by domain name (exact match)"
5503
+ "description": "Filter by domain name (case-insensitive substring match)"
5504
+ },
5505
+ "website_types": {
5506
+ "type": "array",
5507
+ "description": "Filter by detected website type, e.g. wordpress,nodejs. Accepts a comma-separated list.",
5508
+ "items": {
5509
+ "type": "string",
5510
+ "description": "website_types parameter",
5511
+ "enum": [
5512
+ "wordpress",
5513
+ "builder",
5514
+ "horizons",
5515
+ "nodejs",
5516
+ "other"
5517
+ ]
5518
+ }
5530
5519
  }
5531
5520
  },
5532
5521
  "required": []
@@ -10914,7 +10903,7 @@ export default [
10914
10903
  },
10915
10904
  "domain": {
10916
10905
  "type": "string",
10917
- "description": "Filter by domain name (exact match)"
10906
+ "description": "Filter by domain name (case-insensitive substring match)"
10918
10907
  },
10919
10908
  "ownership": {
10920
10909
  "type": "string",
@@ -11538,7 +11527,7 @@ export default [
11538
11527
  "properties": {
11539
11528
  "domain": {
11540
11529
  "type": "string",
11541
- "description": "Filter by domain name (exact match)"
11530
+ "description": "Filter by domain name (case-insensitive substring match)"
11542
11531
  }
11543
11532
  },
11544
11533
  "required": []