hostinger-api-mcp 0.2.5 → 0.2.7

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.
@@ -267,6 +267,40 @@ const tools: OpenApiTool[] = [
267
267
  "handlerMethod": "handleShowJsDeploymentLogs",
268
268
  "group": "hosting"
269
269
  },
270
+ {
271
+ "name": "hosting_changeDatabasePasswordV1",
272
+ "description": "Changes the password for the specified database user.\n\nThe database name must be the full name returned by the list databases endpoint.\nThe password must also be updated in any website configuration that uses this database.",
273
+ "method": "PATCH",
274
+ "path": "/api/hosting/v1/accounts/{username}/databases/{name}/change-password",
275
+ "inputSchema": {
276
+ "type": "object",
277
+ "properties": {
278
+ "username": {
279
+ "type": "string",
280
+ "description": "username parameter"
281
+ },
282
+ "name": {
283
+ "type": "string",
284
+ "description": "Full database name as returned by the list databases endpoint."
285
+ },
286
+ "password": {
287
+ "type": "string",
288
+ "description": "New database user password."
289
+ }
290
+ },
291
+ "required": [
292
+ "username",
293
+ "name",
294
+ "password"
295
+ ]
296
+ },
297
+ "security": [
298
+ {
299
+ "apiToken": []
300
+ }
301
+ ],
302
+ "group": "hosting"
303
+ },
270
304
  {
271
305
  "name": "hosting_listAccountDatabasesV1",
272
306
  "description": "Returns a paginated list of databases for the specified account.\n\nUse the domain and is_assigned filters to find databases assigned to a specific domain.",
@@ -384,6 +418,64 @@ const tools: OpenApiTool[] = [
384
418
  ],
385
419
  "group": "hosting"
386
420
  },
421
+ {
422
+ "name": "hosting_repairDatabaseV1",
423
+ "description": "Repairs corrupted database tables asynchronously.\n\nUse when database errors, crashes, or corruption are reported.\nThe database name must be the full name returned by the list databases endpoint.",
424
+ "method": "PATCH",
425
+ "path": "/api/hosting/v1/accounts/{username}/databases/{name}/repair",
426
+ "inputSchema": {
427
+ "type": "object",
428
+ "properties": {
429
+ "username": {
430
+ "type": "string",
431
+ "description": "username parameter"
432
+ },
433
+ "name": {
434
+ "type": "string",
435
+ "description": "Full database name as returned by the list databases endpoint."
436
+ }
437
+ },
438
+ "required": [
439
+ "username",
440
+ "name"
441
+ ]
442
+ },
443
+ "security": [
444
+ {
445
+ "apiToken": []
446
+ }
447
+ ],
448
+ "group": "hosting"
449
+ },
450
+ {
451
+ "name": "hosting_getPhpMyAdminLinkV1",
452
+ "description": "Returns a direct sign-on link to phpMyAdmin for the specified database.\n\nUse this when a visual database interface is needed for SQL queries, imports, exports, or table management.\nThe database name must be the full name returned by the list databases endpoint.",
453
+ "method": "GET",
454
+ "path": "/api/hosting/v1/accounts/{username}/databases/{name}/phpmyadmin-link",
455
+ "inputSchema": {
456
+ "type": "object",
457
+ "properties": {
458
+ "username": {
459
+ "type": "string",
460
+ "description": "username parameter"
461
+ },
462
+ "name": {
463
+ "type": "string",
464
+ "description": "Full database name as returned by the list databases endpoint."
465
+ }
466
+ },
467
+ "required": [
468
+ "username",
469
+ "name"
470
+ ]
471
+ },
472
+ "security": [
473
+ {
474
+ "apiToken": []
475
+ }
476
+ ],
477
+ "group": "hosting"
478
+ },
387
479
  {
388
480
  "name": "hosting_listAvailableDatacentersV1",
389
481
  "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.",
@@ -651,6 +743,179 @@ const tools: OpenApiTool[] = [
651
743
  ],
652
744
  "group": "hosting"
653
745
  },
746
+ {
747
+ "name": "hosting_listNodeJSBuildsV1",
748
+ "description": "Retrieve a paginated list of Node.js build processes for a specific website.\n\nEach build represents a single run of the Node.js build pipeline. Use the `states`\nquery parameter to filter results by build state (pending, running, completed, failed).\nUse the `uuid` from a build to poll its output via the `Get Node.js Build Logs` endpoint.",
749
+ "method": "GET",
750
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/nodejs/builds",
751
+ "inputSchema": {
752
+ "type": "object",
753
+ "properties": {
754
+ "username": {
755
+ "type": "string",
756
+ "description": "username parameter"
757
+ },
758
+ "domain": {
759
+ "type": "string",
760
+ "description": "Domain name"
761
+ },
762
+ "page": {
763
+ "type": "integer",
764
+ "description": "Page number"
765
+ },
766
+ "per_page": {
767
+ "type": "integer",
768
+ "description": "Number of items per page"
769
+ },
770
+ "states": {
771
+ "type": "array",
772
+ "description": "Build states to filter by",
773
+ "items": {
774
+ "type": "string",
775
+ "description": "states parameter",
776
+ "enum": [
777
+ "pending",
778
+ "running",
779
+ "completed",
780
+ "failed"
781
+ ]
782
+ }
783
+ }
784
+ },
785
+ "required": [
786
+ "username",
787
+ "domain"
788
+ ]
789
+ },
790
+ "security": [
791
+ {
792
+ "apiToken": []
793
+ }
794
+ ],
795
+ "group": "hosting"
796
+ },
797
+ {
798
+ "name": "hosting_createNodeJSBuildFromArchiveV1",
799
+ "description": "Upload a project archive, auto-detect build settings, and immediately start a Node.js build.\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.",
800
+ "method": "POST",
801
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/nodejs/builds/from-archive",
802
+ "inputSchema": {
803
+ "type": "object",
804
+ "properties": {
805
+ "username": {
806
+ "type": "string",
807
+ "description": "username parameter"
808
+ },
809
+ "domain": {
810
+ "type": "string",
811
+ "description": "Domain name"
812
+ },
813
+ "archive": {
814
+ "type": "string",
815
+ "description": "Project archive file (.zip, .tar.gz, or .tgz), maximum 50MB"
816
+ },
817
+ "node_version": {
818
+ "type": "integer",
819
+ "description": "Node.js version override (auto-detected from package.json if omitted)",
820
+ "enum": [
821
+ 18,
822
+ 20,
823
+ 22,
824
+ 24
825
+ ]
826
+ },
827
+ "app_type": {
828
+ "type": "string",
829
+ "description": "Node.js application type override",
830
+ "enum": [
831
+ "create-react-app",
832
+ "vite",
833
+ "angular",
834
+ "react",
835
+ "vue",
836
+ "parcel",
837
+ "express",
838
+ "fastify",
839
+ "nest"
840
+ ]
841
+ },
842
+ "root_directory": {
843
+ "type": "string",
844
+ "description": "Application root directory override (where package.json is located) relative to public_html"
845
+ },
846
+ "output_directory": {
847
+ "type": "string",
848
+ "description": "Build output directory override relative to the root directory"
849
+ },
850
+ "build_script": {
851
+ "type": "string",
852
+ "description": "Build script override"
853
+ },
854
+ "entry_file": {
855
+ "type": "string",
856
+ "description": "Main entry point file override"
857
+ },
858
+ "package_manager": {
859
+ "type": "string",
860
+ "description": "Package manager override",
861
+ "enum": [
862
+ "npm",
863
+ "yarn",
864
+ "pnpm"
865
+ ]
866
+ }
867
+ },
868
+ "required": [
869
+ "username",
870
+ "domain",
871
+ "archive"
872
+ ]
873
+ },
874
+ "security": [
875
+ {
876
+ "apiToken": []
877
+ }
878
+ ],
879
+ "group": "hosting"
880
+ },
881
+ {
882
+ "name": "hosting_getNodeJSBuildLogsV1",
883
+ "description": "Retrieve logs from a specific Node.js build process.\n\nTo stream live output while a build is running, poll this endpoint repeatedly\nwhile the build state is `running`, passing the previously returned `lines` count\nas `from_line` to fetch only new output since the last call.\nLog content may contain ANSI escape sequences (color codes).",
884
+ "method": "GET",
885
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/nodejs/builds/{uuid}/logs",
886
+ "inputSchema": {
887
+ "type": "object",
888
+ "properties": {
889
+ "username": {
890
+ "type": "string",
891
+ "description": "username parameter"
892
+ },
893
+ "domain": {
894
+ "type": "string",
895
+ "description": "Domain name"
896
+ },
897
+ "uuid": {
898
+ "type": "string",
899
+ "description": "Build UUID"
900
+ },
901
+ "from_line": {
902
+ "type": "integer",
903
+ "description": "Line from which to start retrieving logs"
904
+ }
905
+ },
906
+ "required": [
907
+ "username",
908
+ "domain",
909
+ "uuid"
910
+ ]
911
+ },
912
+ "security": [
913
+ {
914
+ "apiToken": []
915
+ }
916
+ ],
917
+ "group": "hosting"
918
+ },
654
919
  {
655
920
  "name": "hosting_listOrdersV1",
656
921
  "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.",
@@ -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: '0.2.5', tools });
6
+ startServer({ name: 'hostinger-api-mcp', version: '0.2.7', 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: '0.2.5', tools });
6
+ startServer({ name: 'hostinger-api-mcp', version: '0.2.7', 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: '0.2.5', tools });
6
+ startServer({ name: 'hostinger-billing-mcp', version: '0.2.7', 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: '0.2.5', tools });
6
+ startServer({ name: 'hostinger-billing-mcp', version: '0.2.7', 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: '0.2.5', tools });
6
+ startServer({ name: 'hostinger-dns-mcp', version: '0.2.7', 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: '0.2.5', tools });
6
+ startServer({ name: 'hostinger-dns-mcp', version: '0.2.7', 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: '0.2.5', tools });
6
+ startServer({ name: 'hostinger-domains-mcp', version: '0.2.7', 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: '0.2.5', tools });
6
+ startServer({ name: 'hostinger-domains-mcp', version: '0.2.7', 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: '0.2.5', tools });
6
+ startServer({ name: 'hostinger-hosting-mcp', version: '0.2.7', 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: '0.2.5', tools });
6
+ startServer({ name: 'hostinger-hosting-mcp', version: '0.2.7', 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: '0.2.5', tools });
6
+ startServer({ name: 'hostinger-reach-mcp', version: '0.2.7', 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: '0.2.5', tools });
6
+ startServer({ name: 'hostinger-reach-mcp', version: '0.2.7', 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: '0.2.5', tools });
6
+ startServer({ name: 'hostinger-vps-mcp', version: '0.2.7', 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: '0.2.5', tools });
6
+ startServer({ name: 'hostinger-vps-mcp', version: '0.2.7', tools });
package/types.d.ts CHANGED
@@ -796,6 +796,30 @@ Use this endpoint to view which domains use specific contact profiles.
796
796
  response: any; // Response structure will depend on the API
797
797
  };
798
798
 
799
+ /**
800
+ * Changes the password for the specified database user.
801
+
802
+ The database name must be the full name returned by the list databases endpoint.
803
+ The password must also be updated in any website configuration that uses this database.
804
+ */
805
+ "hosting_changeDatabasePasswordV1": {
806
+ params: {
807
+ /**
808
+ * username parameter
809
+ */
810
+ username: string;
811
+ /**
812
+ * Full database name as returned by the list databases endpoint.
813
+ */
814
+ name: string;
815
+ /**
816
+ * New database user password.
817
+ */
818
+ password: string;
819
+ };
820
+ response: any; // Response structure will depend on the API
821
+ };
822
+
799
823
  /**
800
824
  * Returns a paginated list of databases for the specified account.
801
825
 
@@ -881,6 +905,46 @@ The database name must be the full name returned by the list databases endpoint.
881
905
  response: any; // Response structure will depend on the API
882
906
  };
883
907
 
908
+ /**
909
+ * Repairs corrupted database tables asynchronously.
910
+
911
+ Use when database errors, crashes, or corruption are reported.
912
+ The database name must be the full name returned by the list databases endpoint.
913
+ */
914
+ "hosting_repairDatabaseV1": {
915
+ params: {
916
+ /**
917
+ * username parameter
918
+ */
919
+ username: string;
920
+ /**
921
+ * Full database name as returned by the list databases endpoint.
922
+ */
923
+ name: string;
924
+ };
925
+ response: any; // Response structure will depend on the API
926
+ };
927
+
928
+ /**
929
+ * Returns a direct sign-on link to phpMyAdmin for the specified database.
930
+
931
+ Use this when a visual database interface is needed for SQL queries, imports, exports, or table management.
932
+ The database name must be the full name returned by the list databases endpoint.
933
+ */
934
+ "hosting_getPhpMyAdminLinkV1": {
935
+ params: {
936
+ /**
937
+ * username parameter
938
+ */
939
+ username: string;
940
+ /**
941
+ * Full database name as returned by the list databases endpoint.
942
+ */
943
+ name: string;
944
+ };
945
+ response: any; // Response structure will depend on the API
946
+ };
947
+
884
948
  /**
885
949
  * Retrieve a list of datacenters available for setting up hosting plans
886
950
  based on available datacenter capacity and hosting plan of your order.
@@ -1071,6 +1135,137 @@ Skip this verification when using Hostinger's free subdomains (*.hostingersite.c
1071
1135
  response: any; // Response structure will depend on the API
1072
1136
  };
1073
1137
 
1138
+ /**
1139
+ * Retrieve a paginated list of Node.js build processes for a specific website.
1140
+
1141
+ Each build represents a single run of the Node.js build pipeline. Use the `states`
1142
+ query parameter to filter results by build state (pending, running, completed, failed).
1143
+ Use the `uuid` from a build to poll its output via the `Get Node.js Build Logs` endpoint.
1144
+ */
1145
+ "hosting_listNodeJSBuildsV1": {
1146
+ params: {
1147
+ /**
1148
+ * username parameter
1149
+ */
1150
+ username: string;
1151
+ /**
1152
+ * Domain name
1153
+ */
1154
+ domain: string;
1155
+ /**
1156
+ * Page number
1157
+ */
1158
+ page?: number;
1159
+ /**
1160
+ * Number of items per page
1161
+ */
1162
+ per_page?: number;
1163
+ /**
1164
+ * Build states to filter by
1165
+ */
1166
+ states?: array;
1167
+ };
1168
+ response: any; // Response structure will depend on the API
1169
+ };
1170
+
1171
+ /**
1172
+ * Upload a project archive, auto-detect build settings, and immediately start a Node.js build.
1173
+
1174
+ This is the recommended single-step approach for deploying a Node.js application.
1175
+ The archive is uploaded to the website's file storage, build settings are auto-detected
1176
+ from the package.json inside the archive, and the build process starts automatically.
1177
+ Optional override fields take precedence over auto-detected values.
1178
+ Maximum archive size is 50MB.
1179
+
1180
+ Before archiving, exclude `node_modules/` and any build output directories
1181
+ (e.g. `dist/`, `.next/`, `build/`) — they are not needed because the build
1182
+ process runs the install step automatically, and including them unnecessarily
1183
+ increases the archive size. This also helps keep the archive well under the 50MB limit.
1184
+
1185
+ Example (zip):
1186
+ ```
1187
+ zip -r archive.zip . --exclude "node_modules/*" --exclude "dist/*"
1188
+ ```
1189
+
1190
+ The returned build `uuid` can be used to poll progress and retrieve logs via
1191
+ the `Get Node.js Build Logs` endpoint.
1192
+ */
1193
+ "hosting_createNodeJSBuildFromArchiveV1": {
1194
+ params: {
1195
+ /**
1196
+ * username parameter
1197
+ */
1198
+ username: string;
1199
+ /**
1200
+ * Domain name
1201
+ */
1202
+ domain: string;
1203
+ /**
1204
+ * Project archive file (.zip, .tar.gz, or .tgz), maximum 50MB
1205
+ */
1206
+ archive: string;
1207
+ /**
1208
+ * Node.js version override (auto-detected from package.json if omitted)
1209
+ */
1210
+ node_version?: number;
1211
+ /**
1212
+ * Node.js application type override
1213
+ */
1214
+ app_type?: string;
1215
+ /**
1216
+ * Application root directory override (where package.json is located) relative to public_html
1217
+ */
1218
+ root_directory?: string;
1219
+ /**
1220
+ * Build output directory override relative to the root directory
1221
+ */
1222
+ output_directory?: string;
1223
+ /**
1224
+ * Build script override
1225
+ */
1226
+ build_script?: string;
1227
+ /**
1228
+ * Main entry point file override
1229
+ */
1230
+ entry_file?: string;
1231
+ /**
1232
+ * Package manager override
1233
+ */
1234
+ package_manager?: string;
1235
+ };
1236
+ response: any; // Response structure will depend on the API
1237
+ };
1238
+
1239
+ /**
1240
+ * Retrieve logs from a specific Node.js build process.
1241
+
1242
+ To stream live output while a build is running, poll this endpoint repeatedly
1243
+ while the build state is `running`, passing the previously returned `lines` count
1244
+ as `from_line` to fetch only new output since the last call.
1245
+ Log content may contain ANSI escape sequences (color codes).
1246
+ */
1247
+ "hosting_getNodeJSBuildLogsV1": {
1248
+ params: {
1249
+ /**
1250
+ * username parameter
1251
+ */
1252
+ username: string;
1253
+ /**
1254
+ * Domain name
1255
+ */
1256
+ domain: string;
1257
+ /**
1258
+ * Build UUID
1259
+ */
1260
+ uuid: string;
1261
+ /**
1262
+ * Line from which to start retrieving logs
1263
+ */
1264
+ from_line?: number;
1265
+ };
1266
+ response: any; // Response structure will depend on the API
1267
+ };
1268
+
1074
1269
  /**
1075
1270
  * Retrieve a paginated list of orders accessible to the authenticated client.
1076
1271