hostinger-api-mcp 1.56.0 → 1.57.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,31 @@ 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.57.1 — 2026-09-07
8
+
9
+ ### Also in this release
10
+
11
+ - Dependencies: `package-lock.json`
12
+ - Request handling and authentication: `src/core/runtime.js`, `src/core/runtime.ts`
13
+
14
+ ## v1.57.0 — 2026-09-04
15
+
16
+ ### Tools
17
+
18
+ - Added `hosting_getNode_jsBuildSettingsV1` — Get Node.js build settings
19
+ - Added `hosting_updateNode_jsBuildSettingsV1` — Update Node.js build settings
20
+ - Added `hosting_analyseFailedNode_jsBuildV1` — Analyse failed Node.js build
21
+ - Added `hosting_getNode_jsBuildDetailsV1` — Get Node.js build details
22
+ - Added `hosting_getNode_jsRuntimeLogsV1` — Get Node.js runtime logs
23
+ - Added `hosting_clearNode_jsRuntimeLogsV1` — Clear Node.js runtime logs
24
+
25
+ ### Also in this release
26
+
27
+ - Documentation: `README.md`
28
+ - Dependencies: `package-lock.json`
29
+ - Request handling and authentication: `src/core/runtime.js`, `src/core/runtime.ts`
30
+ - Build and packaging: `types.d.ts`
31
+
7
32
  ## v1.56.0 — 2026-09-04
8
33
 
9
34
  ### 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 (376 total)
72
+ - `hostinger-api-mcp` — unified server with every tool (382 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` — 40 tools for domains
77
77
  - `hostinger-ecommerce-mcp` — 29 tools for ecommerce
78
78
  - `hostinger-horizons-mcp` — 2 tools for horizons
79
- - `hostinger-hosting-mcp` — 58 tools for hosting
79
+ - `hostinger-hosting-mcp` — 64 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
@@ -1969,6 +1969,35 @@ the `Get Node.js Build Logs` endpoint.
1969
1969
  - **Method**: `POST`
1970
1970
  - **Path**: `/api/hosting/v1/accounts/{username}/websites/{domain}/nodejs/builds`
1971
1971
 
1972
+ #### hosting_getNode_jsBuildSettingsV1
1973
+
1974
+ Returns the build settings stored for the website: framework (`app_type`), Node.js version,
1975
+ root and output directory, build script, entry file and package manager. Stored settings
1976
+ drive Git auto-deployment builds. A build started through the API uses the values sent in
1977
+ that request and saves them here only when no settings exist yet.
1978
+
1979
+ Returns 404 until the first build or the first settings update stores them. Use this after
1980
+ a failed build to check whether the framework or the entry file were detected wrong, then
1981
+ fix them with the `Update Node.js build settings` endpoint.
1982
+
1983
+ - **Method**: `GET`
1984
+ - **Path**: `/api/hosting/v1/accounts/{username}/websites/{domain}/nodejs/builds/settings`
1985
+
1986
+ #### hosting_updateNode_jsBuildSettingsV1
1987
+
1988
+ Replaces the build settings stored for the website. Send the full set: `node_version` is
1989
+ required and every nullable field you omit is stored as null. Creates the settings when
1990
+ none exist yet.
1991
+
1992
+ This does not start a build. Stored settings drive Git auto-deployment builds; a build
1993
+ started through the API uses the values sent in that request, so to rebuild with corrected
1994
+ settings call `Start Node.js build` with the same values. Typical fixes: a wrong `app_type`
1995
+ after auto-detection, or a missing `entry_file` for express, fastify, nest, nuxt and hono
1996
+ apps.
1997
+
1998
+ - **Method**: `PUT`
1999
+ - **Path**: `/api/hosting/v1/accounts/{username}/websites/{domain}/nodejs/builds/settings`
2000
+
1972
2001
  #### hosting_getNode_jsBuildSettingsFromArchiveV1
1973
2002
 
1974
2003
  Auto-detect Node.js build settings from a package.json inside an archive already on the server.
@@ -2017,6 +2046,29 @@ values taken from the project `.env` file or the user prompt.
2017
2046
  - **Method**: `PUT`
2018
2047
  - **Path**: `/api/hosting/v1/accounts/{username}/websites/{domain}/nodejs/builds/settings/env`
2019
2048
 
2049
+ #### hosting_analyseFailedNode_jsBuildV1
2050
+
2051
+ Returns an AI analysis of why a build failed and how to fix it, based on the build logs,
2052
+ the project file list and package.json. Only builds in the `failed` state can be analysed;
2053
+ any other state returns 422. When no analysis could be produced both `analysis` and
2054
+ `solution` are null, in which case read `Get NodeJS build logs` instead.
2055
+
2056
+ Each call runs the analysis again, so call it once per failed build and keep the result.
2057
+ Limited to 5 calls per minute per API client (429 above that).
2058
+
2059
+ - **Method**: `GET`
2060
+ - **Path**: `/api/hosting/v1/accounts/{username}/websites/{domain}/nodejs/builds/{uuid}/analysis`
2061
+
2062
+ #### hosting_getNode_jsBuildDetailsV1
2063
+
2064
+ Returns one build by UUID: its state (`pending`, `running`, `completed`, `failed`), the
2065
+ options it ran with and timestamps. Poll this while a build is pending or running. When it
2066
+ is failed, read `Get NodeJS build logs` and `Analyse failed Node.js build` for the cause.
2067
+ Returns 404 when the UUID does not belong to a build of this website.
2068
+
2069
+ - **Method**: `GET`
2070
+ - **Path**: `/api/hosting/v1/accounts/{username}/websites/{domain}/nodejs/builds/{uuid}`
2071
+
2020
2072
  #### hosting_getNodeJSBuildLogsV1
2021
2073
 
2022
2074
  Retrieve logs from a specific Node.js build process.
@@ -2029,6 +2081,35 @@ Log content may contain ANSI escape sequences (color codes).
2029
2081
  - **Method**: `GET`
2030
2082
  - **Path**: `/api/hosting/v1/accounts/{username}/websites/{domain}/nodejs/builds/{uuid}/logs`
2031
2083
 
2084
+ #### hosting_getNode_jsRuntimeLogsV1
2085
+
2086
+ Returns the Node.js application's runtime console log entries, oldest first, each with
2087
+ timestamp, level and message. On the first call send `period` (`1h`, `1d`, `1w` or `1m`)
2088
+ and optionally `levels` and `limit` (1-5000, default 1000); when more entries match than
2089
+ `limit`, the newest are kept.
2090
+
2091
+ To poll for new entries send `total_lines + 1` from the previous response as `from_line`
2092
+ and omit `period`; `period` and `from_line` cannot be combined. Lines that are not JSON
2093
+ with a timestamp, level and message are skipped, so `logs` may hold fewer than `limit`
2094
+ entries while `total_lines` counts every raw line. Entries with a timestamp before
2095
+ `last_deployed_at` belong to the previous deployment. Returns an empty `logs` list when
2096
+ the application has not written a log file yet.
2097
+
2098
+ - **Method**: `GET`
2099
+ - **Path**: `/api/hosting/v1/accounts/{username}/websites/{domain}/nodejs/runtime-logs`
2100
+
2101
+ #### hosting_clearNode_jsRuntimeLogsV1
2102
+
2103
+ Empties the Node.js application's runtime log file. This cannot be undone, so confirm with
2104
+ the user before calling it. Returns success even when no log file exists yet.
2105
+
2106
+ Use it before reproducing a problem so the next `Get Node.js runtime logs` call returns
2107
+ only fresh entries; start that call with `period` again instead of reusing a `from_line`
2108
+ from before the clear.
2109
+
2110
+ - **Method**: `DELETE`
2111
+ - **Path**: `/api/hosting/v1/accounts/{username}/websites/{domain}/nodejs/runtime-logs`
2112
+
2032
2113
  #### hosting_restartNode_jsApplicationV1
2033
2114
 
2034
2115
  Restarts the Node.js server process for the website. Does not rebuild or redeploy the
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hostinger-api-mcp",
3
- "version": "1.56.0",
3
+ "version": "1.57.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.56.0",
3
+ "version": "1.57.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.56.0",
9
+ "version": "1.57.1",
10
10
  "packages": [
11
11
  {
12
12
  "registryType": "npm",
13
13
  "identifier": "@hostinger/mcp",
14
- "version": "1.56.0",
14
+ "version": "1.57.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.48.0
32
+ * Generated from OpenAPI spec version 1.49.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.48.0
55
+ * Generated from OpenAPI spec version 1.49.1
56
56
  */
57
57
  class MCPServer {
58
58
  private readonly name: string;
@@ -6696,6 +6696,138 @@ export default [
6696
6696
  ],
6697
6697
  "group": "hosting"
6698
6698
  },
6699
+ {
6700
+ "name": "hosting_getNode_jsBuildSettingsV1",
6701
+ "title": "Get Node.js build settings",
6702
+ "annotations": {
6703
+ "title": "Get Node.js build settings",
6704
+ "readOnlyHint": true,
6705
+ "destructiveHint": false
6706
+ },
6707
+ "description": "Returns the build settings stored for the website: framework (`app_type`), Node.js version,\nroot and output directory, build script, entry file and package manager. Stored settings\ndrive Git auto-deployment builds. A build started through the API uses the values sent in\nthat request and saves them here only when no settings exist yet.\n\nReturns 404 until the first build or the first settings update stores them. Use this after\na failed build to check whether the framework or the entry file were detected wrong, then\nfix them with the `Update Node.js build settings` endpoint.",
6708
+ "method": "GET",
6709
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/nodejs/builds/settings",
6710
+ "inputSchema": {
6711
+ "type": "object",
6712
+ "properties": {
6713
+ "username": {
6714
+ "type": "string",
6715
+ "description": "username parameter"
6716
+ },
6717
+ "domain": {
6718
+ "type": "string",
6719
+ "description": "Domain name"
6720
+ }
6721
+ },
6722
+ "required": [
6723
+ "username",
6724
+ "domain"
6725
+ ]
6726
+ },
6727
+ "security": [
6728
+ {
6729
+ "apiToken": []
6730
+ }
6731
+ ],
6732
+ "group": "hosting"
6733
+ },
6734
+ {
6735
+ "name": "hosting_updateNode_jsBuildSettingsV1",
6736
+ "title": "Update Node.js build settings",
6737
+ "annotations": {
6738
+ "title": "Update Node.js build settings",
6739
+ "readOnlyHint": false,
6740
+ "destructiveHint": true,
6741
+ "idempotentHint": true
6742
+ },
6743
+ "description": "Replaces the build settings stored for the website. Send the full set: `node_version` is\nrequired and every nullable field you omit is stored as null. Creates the settings when\nnone exist yet.\n\nThis does not start a build. Stored settings drive Git auto-deployment builds; a build\nstarted through the API uses the values sent in that request, so to rebuild with corrected\nsettings call `Start Node.js build` with the same values. Typical fixes: a wrong `app_type`\nafter auto-detection, or a missing `entry_file` for express, fastify, nest, nuxt and hono\napps.",
6744
+ "method": "PUT",
6745
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/nodejs/builds/settings",
6746
+ "inputSchema": {
6747
+ "type": "object",
6748
+ "properties": {
6749
+ "username": {
6750
+ "type": "string",
6751
+ "description": "username parameter"
6752
+ },
6753
+ "domain": {
6754
+ "type": "string",
6755
+ "description": "Domain name"
6756
+ },
6757
+ "node_version": {
6758
+ "type": "integer",
6759
+ "description": "Node.js major version",
6760
+ "enum": [
6761
+ 18,
6762
+ 20,
6763
+ 22,
6764
+ 24
6765
+ ]
6766
+ },
6767
+ "app_type": {
6768
+ "type": "string",
6769
+ "description": "Node.js application framework. Set it explicitly when auto-detection picked the wrong one.",
6770
+ "enum": [
6771
+ "create-react-app",
6772
+ "gatsby",
6773
+ "vite",
6774
+ "angular",
6775
+ "react",
6776
+ "vue",
6777
+ "parcel",
6778
+ "next",
6779
+ "nuxt",
6780
+ "nest",
6781
+ "express",
6782
+ "fastify",
6783
+ "astro",
6784
+ "svelte",
6785
+ "svelte-kit",
6786
+ "hono",
6787
+ "react-router",
6788
+ "nitro",
6789
+ "other"
6790
+ ]
6791
+ },
6792
+ "root_directory": {
6793
+ "type": "string",
6794
+ "description": "Application root directory (where package.json is located) relative to public_html.\nOmit it, or send \".\", for public_html itself."
6795
+ },
6796
+ "output_directory": {
6797
+ "type": "string",
6798
+ "description": "Build output directory relative to the root directory"
6799
+ },
6800
+ "build_script": {
6801
+ "type": "string",
6802
+ "description": "The package.json script that builds the application"
6803
+ },
6804
+ "entry_file": {
6805
+ "type": "string",
6806
+ "description": "The main entry point file for the application\n(required for express, fastify, nest, nuxt and hono app types)"
6807
+ },
6808
+ "package_manager": {
6809
+ "type": "string",
6810
+ "description": "Package manager used to install dependencies",
6811
+ "enum": [
6812
+ "npm",
6813
+ "yarn",
6814
+ "pnpm"
6815
+ ]
6816
+ }
6817
+ },
6818
+ "required": [
6819
+ "username",
6820
+ "domain",
6821
+ "node_version"
6822
+ ]
6823
+ },
6824
+ "security": [
6825
+ {
6826
+ "apiToken": []
6827
+ }
6828
+ ],
6829
+ "group": "hosting"
6830
+ },
6699
6831
  {
6700
6832
  "name": "hosting_getNode_jsBuildSettingsFromArchiveV1",
6701
6833
  "title": "Get Node.js build settings from archive",
@@ -6830,6 +6962,86 @@ export default [
6830
6962
  ],
6831
6963
  "group": "hosting"
6832
6964
  },
6965
+ {
6966
+ "name": "hosting_analyseFailedNode_jsBuildV1",
6967
+ "title": "Analyse failed Node.js build",
6968
+ "annotations": {
6969
+ "title": "Analyse failed Node.js build",
6970
+ "readOnlyHint": true,
6971
+ "destructiveHint": false
6972
+ },
6973
+ "description": "Returns an AI analysis of why a build failed and how to fix it, based on the build logs,\nthe project file list and package.json. Only builds in the `failed` state can be analysed;\nany other state returns 422. When no analysis could be produced both `analysis` and\n`solution` are null, in which case read `Get NodeJS build logs` instead.\n\nEach call runs the analysis again, so call it once per failed build and keep the result.\nLimited to 5 calls per minute per API client (429 above that).",
6974
+ "method": "GET",
6975
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/nodejs/builds/{uuid}/analysis",
6976
+ "inputSchema": {
6977
+ "type": "object",
6978
+ "properties": {
6979
+ "username": {
6980
+ "type": "string",
6981
+ "description": "username parameter"
6982
+ },
6983
+ "domain": {
6984
+ "type": "string",
6985
+ "description": "Domain name"
6986
+ },
6987
+ "uuid": {
6988
+ "type": "string",
6989
+ "description": "Build UUID"
6990
+ }
6991
+ },
6992
+ "required": [
6993
+ "username",
6994
+ "domain",
6995
+ "uuid"
6996
+ ]
6997
+ },
6998
+ "security": [
6999
+ {
7000
+ "apiToken": []
7001
+ }
7002
+ ],
7003
+ "group": "hosting"
7004
+ },
7005
+ {
7006
+ "name": "hosting_getNode_jsBuildDetailsV1",
7007
+ "title": "Get Node.js build details",
7008
+ "annotations": {
7009
+ "title": "Get Node.js build details",
7010
+ "readOnlyHint": true,
7011
+ "destructiveHint": false
7012
+ },
7013
+ "description": "Returns one build by UUID: its state (`pending`, `running`, `completed`, `failed`), the\noptions it ran with and timestamps. Poll this while a build is pending or running. When it\nis failed, read `Get NodeJS build logs` and `Analyse failed Node.js build` for the cause.\nReturns 404 when the UUID does not belong to a build of this website.",
7014
+ "method": "GET",
7015
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/nodejs/builds/{uuid}",
7016
+ "inputSchema": {
7017
+ "type": "object",
7018
+ "properties": {
7019
+ "username": {
7020
+ "type": "string",
7021
+ "description": "username parameter"
7022
+ },
7023
+ "domain": {
7024
+ "type": "string",
7025
+ "description": "Domain name"
7026
+ },
7027
+ "uuid": {
7028
+ "type": "string",
7029
+ "description": "Build UUID"
7030
+ }
7031
+ },
7032
+ "required": [
7033
+ "username",
7034
+ "domain",
7035
+ "uuid"
7036
+ ]
7037
+ },
7038
+ "security": [
7039
+ {
7040
+ "apiToken": []
7041
+ }
7042
+ ],
7043
+ "group": "hosting"
7044
+ },
6833
7045
  {
6834
7046
  "name": "hosting_getNodeJSBuildLogsV1",
6835
7047
  "title": "Get NodeJS build logs",
@@ -6874,6 +7086,111 @@ export default [
6874
7086
  ],
6875
7087
  "group": "hosting"
6876
7088
  },
7089
+ {
7090
+ "name": "hosting_getNode_jsRuntimeLogsV1",
7091
+ "title": "Get Node.js runtime logs",
7092
+ "annotations": {
7093
+ "title": "Get Node.js runtime logs",
7094
+ "readOnlyHint": true,
7095
+ "destructiveHint": false
7096
+ },
7097
+ "description": "Returns the Node.js application's runtime console log entries, oldest first, each with\ntimestamp, level and message. On the first call send `period` (`1h`, `1d`, `1w` or `1m`)\nand optionally `levels` and `limit` (1-5000, default 1000); when more entries match than\n`limit`, the newest are kept.\n\nTo poll for new entries send `total_lines + 1` from the previous response as `from_line`\nand omit `period`; `period` and `from_line` cannot be combined. Lines that are not JSON\nwith a timestamp, level and message are skipped, so `logs` may hold fewer than `limit`\nentries while `total_lines` counts every raw line. Entries with a timestamp before\n`last_deployed_at` belong to the previous deployment. Returns an empty `logs` list when\nthe application has not written a log file yet.",
7098
+ "method": "GET",
7099
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/nodejs/runtime-logs",
7100
+ "inputSchema": {
7101
+ "type": "object",
7102
+ "properties": {
7103
+ "username": {
7104
+ "type": "string",
7105
+ "description": "username parameter"
7106
+ },
7107
+ "domain": {
7108
+ "type": "string",
7109
+ "description": "Domain name"
7110
+ },
7111
+ "period": {
7112
+ "type": "string",
7113
+ "description": "Time window for the first fetch. Required when `from_line` is not sent.",
7114
+ "enum": [
7115
+ "1h",
7116
+ "1d",
7117
+ "1w",
7118
+ "1m"
7119
+ ]
7120
+ },
7121
+ "from_line": {
7122
+ "type": "integer",
7123
+ "description": "1-based line of the log file to start from. For polling send `total_lines + 1` from the\nprevious response. Cannot be combined with `period`."
7124
+ },
7125
+ "limit": {
7126
+ "type": "integer",
7127
+ "description": "Maximum number of log entries to return. When more entries match, the newest are kept."
7128
+ },
7129
+ "levels": {
7130
+ "type": "array",
7131
+ "description": "Return only entries with these log levels, sent as a comma-separated list, e.g. ERROR,WARN.\nMatching runs on the raw log line, so entries written with numeric levels (for example by\npino) are excluded while this filter is set.",
7132
+ "items": {
7133
+ "type": "string",
7134
+ "description": "levels parameter",
7135
+ "enum": [
7136
+ "LOG",
7137
+ "ERROR",
7138
+ "WARN",
7139
+ "INFO",
7140
+ "DEBUG",
7141
+ "TRACE"
7142
+ ]
7143
+ }
7144
+ }
7145
+ },
7146
+ "required": [
7147
+ "username",
7148
+ "domain"
7149
+ ]
7150
+ },
7151
+ "security": [
7152
+ {
7153
+ "apiToken": []
7154
+ }
7155
+ ],
7156
+ "group": "hosting"
7157
+ },
7158
+ {
7159
+ "name": "hosting_clearNode_jsRuntimeLogsV1",
7160
+ "title": "Clear Node.js runtime logs",
7161
+ "annotations": {
7162
+ "title": "Clear Node.js runtime logs",
7163
+ "readOnlyHint": false,
7164
+ "destructiveHint": true,
7165
+ "idempotentHint": true
7166
+ },
7167
+ "description": "Empties the Node.js application's runtime log file. This cannot be undone, so confirm with\nthe user before calling it. Returns success even when no log file exists yet.\n\nUse it before reproducing a problem so the next `Get Node.js runtime logs` call returns\nonly fresh entries; start that call with `period` again instead of reusing a `from_line`\nfrom before the clear.",
7168
+ "method": "DELETE",
7169
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/nodejs/runtime-logs",
7170
+ "inputSchema": {
7171
+ "type": "object",
7172
+ "properties": {
7173
+ "username": {
7174
+ "type": "string",
7175
+ "description": "username parameter"
7176
+ },
7177
+ "domain": {
7178
+ "type": "string",
7179
+ "description": "Domain name"
7180
+ }
7181
+ },
7182
+ "required": [
7183
+ "username",
7184
+ "domain"
7185
+ ]
7186
+ },
7187
+ "security": [
7188
+ {
7189
+ "apiToken": []
7190
+ }
7191
+ ],
7192
+ "group": "hosting"
7193
+ },
6877
7194
  {
6878
7195
  "name": "hosting_restartNode_jsApplicationV1",
6879
7196
  "title": "Restart Node.js application",