hostinger-api-mcp 0.1.37 → 0.1.40

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.
@@ -0,0 +1,459 @@
1
+ // Auto-generated tool list for group: hosting
2
+ import type { Tool } from "@modelcontextprotocol/sdk/types.js";
3
+
4
+ export interface OpenApiTool extends Tool {
5
+ method: string;
6
+ path: string;
7
+ security: unknown[];
8
+ custom?: boolean;
9
+ group?: string;
10
+ }
11
+
12
+ const tools: OpenApiTool[] = [
13
+ {
14
+ "name": "hosting_importWordpressWebsite",
15
+ "topic": "hosting",
16
+ "description": "Import a WordPress website from an archive file to a hosting server. This tool uploads a website archive (zip, tar, tar.gz, etc.) and a database dump (.sql file) to deploy a complete WordPress website. The archive will be extracted on the server automatically. Note: This process may take a while for larger sites. After upload completion, files are being extracted and the site will be available in a few minutes. The username will be automatically resolved from the domain.",
17
+ "method": "",
18
+ "path": "",
19
+ "inputSchema": {
20
+ "type": "object",
21
+ "properties": {
22
+ "domain": {
23
+ "type": "string",
24
+ "description": "Domain name associated with the hosting account (e.g., example.com)"
25
+ },
26
+ "archivePath": {
27
+ "type": "string",
28
+ "description": "Absolute or relative path to the website archive file. Supported formats: zip, tar, tar.gz, tgz, 7z, gz, gzip. If user provides directory path, create archive from it before proceeding using EXACTLY this naming pattern: directoryname_YYYYMMDD_HHMMSS.zip (e.g., mywebsite_20250115_143022.zip)"
29
+ },
30
+ "databaseDump": {
31
+ "type": "string",
32
+ "description": "Absolute or relative path to a database dump file (.sql)"
33
+ }
34
+ },
35
+ "required": [
36
+ "domain",
37
+ "archivePath",
38
+ "databaseDump"
39
+ ]
40
+ },
41
+ "security": [],
42
+ "custom": true,
43
+ "templateFile": "import-wordpress.template.js",
44
+ "templateFileTS": "import-wordpress.template.ts",
45
+ "handlerMethod": "handleWordpressWebsiteImport",
46
+ "group": "hosting"
47
+ },
48
+ {
49
+ "name": "hosting_deployWordpressPlugin",
50
+ "topic": "hosting",
51
+ "description": "Deploy a WordPress plugin from a directory to a hosting server. This tool uploads all plugin files and triggers plugin deployment.",
52
+ "method": "",
53
+ "path": "",
54
+ "inputSchema": {
55
+ "type": "object",
56
+ "properties": {
57
+ "domain": {
58
+ "type": "string",
59
+ "description": "Domain name associated with the hosting account (e.g., example.com)"
60
+ },
61
+ "slug": {
62
+ "type": "string",
63
+ "description": "WordPress plugin slug (e.g., omnisend)"
64
+ },
65
+ "pluginPath": {
66
+ "type": "string",
67
+ "description": "Absolute or relative path to the plugin directory containing all plugin files"
68
+ }
69
+ },
70
+ "required": [
71
+ "domain",
72
+ "slug",
73
+ "pluginPath"
74
+ ]
75
+ },
76
+ "security": [],
77
+ "custom": true,
78
+ "templateFile": "deploy-wordpress-plugin.template.js",
79
+ "templateFileTS": "deploy-wordpress-plugin.template.ts",
80
+ "handlerMethod": "handleWordpressPluginDeploy",
81
+ "group": "hosting"
82
+ },
83
+ {
84
+ "name": "hosting_deployWordpressTheme",
85
+ "topic": "hosting",
86
+ "description": "Deploy a WordPress theme from a directory to a hosting server. This tool uploads all theme files and triggers theme deployment. The uploaded theme can optionally be activated after deployment.",
87
+ "method": "",
88
+ "path": "",
89
+ "inputSchema": {
90
+ "type": "object",
91
+ "properties": {
92
+ "domain": {
93
+ "type": "string",
94
+ "description": "Domain name associated with the hosting account (e.g., example.com)"
95
+ },
96
+ "slug": {
97
+ "type": "string",
98
+ "description": "WordPress theme slug (e.g., twentytwentyfive)"
99
+ },
100
+ "themePath": {
101
+ "type": "string",
102
+ "description": "Absolute or relative path to the theme directory containing all theme files"
103
+ },
104
+ "activate": {
105
+ "type": "boolean",
106
+ "description": "Whether to activate the theme after deployment (default: false)"
107
+ }
108
+ },
109
+ "required": [
110
+ "domain",
111
+ "slug",
112
+ "themePath"
113
+ ]
114
+ },
115
+ "security": [],
116
+ "custom": true,
117
+ "templateFile": "deploy-wordpress-theme.template.js",
118
+ "templateFileTS": "deploy-wordpress-theme.template.ts",
119
+ "handlerMethod": "handleWordpressThemeDeploy",
120
+ "group": "hosting"
121
+ },
122
+ {
123
+ "name": "hosting_deployJsApplication",
124
+ "topic": "hosting",
125
+ "description": "Deploy a JavaScript application from an archive file to a hosting server. IMPORTANT: the archive must ONLY contain application source files, not the build output, skip node_modules directory; also exclude all files matched by .gitignore if the ignore file exists. The build process will be triggered automatically on the server after the archive is uploaded. After deployment, use the hosting_listJsDeployments tool to check deployment status and track build progress.",
126
+ "method": "",
127
+ "path": "",
128
+ "inputSchema": {
129
+ "type": "object",
130
+ "properties": {
131
+ "domain": {
132
+ "type": "string",
133
+ "description": "Domain name associated with the hosting account (e.g., example.com)"
134
+ },
135
+ "archivePath": {
136
+ "type": "string",
137
+ "description": "Absolute or relative path to the application archive file. Supported formats: zip, tar, tar.gz, tgz, 7z, gz, gzip. If user provides directory path, create archive from it before proceeding. IMPORTANT: the archive must ONLY contain application source files, not the build output, skip node_modules directory."
138
+ },
139
+ "removeArchive": {
140
+ "type": "boolean",
141
+ "description": "Whether to remove the archive file after successful deployment (default: false)"
142
+ }
143
+ },
144
+ "required": [
145
+ "domain",
146
+ "archivePath"
147
+ ]
148
+ },
149
+ "security": [],
150
+ "custom": true,
151
+ "templateFile": "deploy-javascript-app.template.js",
152
+ "templateFileTS": "deploy-javascript-app.template.ts",
153
+ "handlerMethod": "handleJavascriptApplicationDeploy",
154
+ "group": "hosting"
155
+ },
156
+ {
157
+ "name": "hosting_deployStaticWebsite",
158
+ "topic": "hosting",
159
+ "description": "Deploy a static website from an archive file to a hosting server. IMPORTANT: This tool only works for static websites with no build process. The archive must contain pre-built static files (HTML, CSS, JavaScript, images, etc.) ready to be served. If the website has a package.json file or requires a build command, use hosting_deployJsApplication instead. The archive will be extracted and deployed directly without any build steps. The username will be automatically resolved from the domain.",
160
+ "method": "",
161
+ "path": "",
162
+ "inputSchema": {
163
+ "type": "object",
164
+ "properties": {
165
+ "domain": {
166
+ "type": "string",
167
+ "description": "Domain name associated with the hosting account (e.g., example.com)"
168
+ },
169
+ "archivePath": {
170
+ "type": "string",
171
+ "description": "Absolute or relative path to the static website archive file. Supported formats: zip, tar, tar.gz, tgz, 7z, gz, gzip. If user provides directory path, create archive from it before proceeding using EXACTLY this naming pattern: directoryname_YYYYMMDD_HHMMSS.zip (e.g., mystaticwebsite_20250115_143022.zip)"
172
+ },
173
+ "removeArchive": {
174
+ "type": "boolean",
175
+ "description": "Whether to remove the archive file after successful deployment (default: false)"
176
+ }
177
+ },
178
+ "required": [
179
+ "domain",
180
+ "archivePath"
181
+ ]
182
+ },
183
+ "security": [],
184
+ "custom": true,
185
+ "templateFile": "deploy-static-website.template.js",
186
+ "templateFileTS": "deploy-static-website.template.ts",
187
+ "handlerMethod": "handleStaticWebsiteDeploy",
188
+ "group": "hosting"
189
+ },
190
+ {
191
+ "name": "hosting_listJsDeployments",
192
+ "topic": "hosting",
193
+ "description": "List javascript application deployments for checking their status. Use this tool when customer asks for the status of the deployment. This tool retrieves a paginated list of Node.js application deployments for a domain with optional filtering by deployment states.",
194
+ "method": "",
195
+ "path": "",
196
+ "inputSchema": {
197
+ "type": "object",
198
+ "properties": {
199
+ "domain": {
200
+ "type": "string",
201
+ "description": "Domain name associated with the hosting account (e.g., example.com)"
202
+ },
203
+ "page": {
204
+ "type": "integer",
205
+ "description": "Page number for pagination (optional)"
206
+ },
207
+ "perPage": {
208
+ "type": "integer",
209
+ "description": "Number of items per page (optional)"
210
+ },
211
+ "states": {
212
+ "type": "array",
213
+ "items": {
214
+ "type": "string",
215
+ "enum": [
216
+ "pending",
217
+ "completed",
218
+ "running",
219
+ "failed"
220
+ ]
221
+ },
222
+ "description": "Filter by deployment states (optional). Valid values: pending, completed, running, failed"
223
+ }
224
+ },
225
+ "required": [
226
+ "domain"
227
+ ]
228
+ },
229
+ "security": [],
230
+ "custom": true,
231
+ "templateFile": "list-javascript-deployments.template.js",
232
+ "templateFileTS": "list-javascript-deployments.template.ts",
233
+ "handlerMethod": "handleListJavascriptDeployments",
234
+ "group": "hosting"
235
+ },
236
+ {
237
+ "name": "hosting_showJsDeploymentLogs",
238
+ "topic": "hosting",
239
+ "description": "Retrieve logs for a specified JavaScript application deployment for debugging purposes in case of failure.",
240
+ "method": "",
241
+ "path": "",
242
+ "inputSchema": {
243
+ "type": "object",
244
+ "properties": {
245
+ "domain": {
246
+ "type": "string",
247
+ "description": "Domain name associated with the hosting account (e.g., example.com)"
248
+ },
249
+ "fromLine": {
250
+ "type": "integer",
251
+ "description": "Line from which to retrieve logs (optional, default 0)"
252
+ },
253
+ "buildUuid": {
254
+ "type": "string",
255
+ "description": "UUID of the JavaScript deployment build"
256
+ }
257
+ },
258
+ "required": [
259
+ "domain",
260
+ "buildUuid"
261
+ ]
262
+ },
263
+ "security": [],
264
+ "custom": true,
265
+ "templateFile": "show-javascript-deployment-logs.template.js",
266
+ "templateFileTS": "show-javascript-deployment-logs.template.ts",
267
+ "handlerMethod": "handleShowJsDeploymentLogs",
268
+ "group": "hosting"
269
+ },
270
+ {
271
+ "name": "hosting_listAvailableDatacentersV1",
272
+ "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.",
273
+ "method": "GET",
274
+ "path": "/api/hosting/v1/datacenters",
275
+ "inputSchema": {
276
+ "type": "object",
277
+ "properties": {
278
+ "order_id": {
279
+ "type": "integer",
280
+ "description": "Order ID"
281
+ }
282
+ },
283
+ "required": [
284
+ "order_id"
285
+ ]
286
+ },
287
+ "security": [
288
+ {
289
+ "apiToken": []
290
+ }
291
+ ],
292
+ "group": "hosting"
293
+ },
294
+ {
295
+ "name": "hosting_generateAFreeSubdomainV1",
296
+ "description": "Generate a unique free subdomain that can be used for hosting services without purchasing custom domains.\nFree subdomains allow you to start using hosting services immediately\nand you can always connect a custom domain to your site later.",
297
+ "method": "POST",
298
+ "path": "/api/hosting/v1/domains/free-subdomains",
299
+ "inputSchema": {
300
+ "type": "object",
301
+ "properties": {},
302
+ "required": []
303
+ },
304
+ "security": [
305
+ {
306
+ "apiToken": []
307
+ }
308
+ ],
309
+ "group": "hosting"
310
+ },
311
+ {
312
+ "name": "hosting_verifyDomainOwnershipV1",
313
+ "description": "Verify ownership of a single domain and return the verification status.\n\nUse this endpoint to check if a domain is accessible for you before using it for new websites.\nIf the domain is accessible, the response will have `is_accessible: true`.\nIf not, add the given TXT record to your domain's DNS records and try verifying again.\nKeep in mind that it may take up to 10 minutes for new TXT DNS records to propagate.\n\nSkip this verification when using Hostinger's free subdomains (*.hostingersite.com).",
314
+ "method": "POST",
315
+ "path": "/api/hosting/v1/domains/verify-ownership",
316
+ "inputSchema": {
317
+ "type": "object",
318
+ "properties": {
319
+ "domain": {
320
+ "type": "string",
321
+ "description": "Domain to verify ownership for"
322
+ }
323
+ },
324
+ "required": [
325
+ "domain"
326
+ ]
327
+ },
328
+ "security": [
329
+ {
330
+ "apiToken": []
331
+ }
332
+ ],
333
+ "group": "hosting"
334
+ },
335
+ {
336
+ "name": "hosting_listOrdersV1",
337
+ "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.",
338
+ "method": "GET",
339
+ "path": "/api/hosting/v1/orders",
340
+ "inputSchema": {
341
+ "type": "object",
342
+ "properties": {
343
+ "page": {
344
+ "type": "integer",
345
+ "description": "Page number"
346
+ },
347
+ "per_page": {
348
+ "type": "integer",
349
+ "description": "Number of items per page"
350
+ },
351
+ "statuses": {
352
+ "type": "array",
353
+ "description": "Filter by order statuses",
354
+ "items": {
355
+ "type": "string",
356
+ "description": "statuses parameter",
357
+ "enum": [
358
+ "active",
359
+ "deleting",
360
+ "deleted",
361
+ "suspended"
362
+ ]
363
+ }
364
+ },
365
+ "order_ids": {
366
+ "type": "array",
367
+ "description": "Filter by specific order IDs",
368
+ "items": {
369
+ "type": "integer",
370
+ "description": "order_ids parameter"
371
+ }
372
+ }
373
+ },
374
+ "required": []
375
+ },
376
+ "security": [
377
+ {
378
+ "apiToken": []
379
+ }
380
+ ],
381
+ "group": "hosting"
382
+ },
383
+ {
384
+ "name": "hosting_listWebsitesV1",
385
+ "description": "Retrieve a paginated list of websites (main and addon types) accessible to the authenticated client.\n\nThis endpoint returns websites from your hosting accounts as well as\nwebsites from other client hosting accounts that have shared access\nwith you.\n\nUse the available query parameters to filter results by username,\norder ID, enabled status, or domain name for more targeted results.",
386
+ "method": "GET",
387
+ "path": "/api/hosting/v1/websites",
388
+ "inputSchema": {
389
+ "type": "object",
390
+ "properties": {
391
+ "page": {
392
+ "type": "integer",
393
+ "description": "Page number"
394
+ },
395
+ "per_page": {
396
+ "type": "integer",
397
+ "description": "Number of items per page"
398
+ },
399
+ "username": {
400
+ "type": "string",
401
+ "description": "Filter by specific username"
402
+ },
403
+ "order_id": {
404
+ "type": "integer",
405
+ "description": "Order ID"
406
+ },
407
+ "is_enabled": {
408
+ "type": "boolean",
409
+ "description": "Filter by enabled status"
410
+ },
411
+ "domain": {
412
+ "type": "string",
413
+ "description": "Filter by domain name (exact match)"
414
+ }
415
+ },
416
+ "required": []
417
+ },
418
+ "security": [
419
+ {
420
+ "apiToken": []
421
+ }
422
+ ],
423
+ "group": "hosting"
424
+ },
425
+ {
426
+ "name": "hosting_createWebsiteV1",
427
+ "description": "Create a new website for the authenticated client.\n\nProvide the domain name and associated order ID to create a new website.\nThe datacenter_code parameter is required when creating the first website\non a new hosting plan - this will set up and configure new hosting account\nin the selected datacenter.\n\nSubsequent websites will be hosted on the same datacenter automatically.\n\nWebsite creation takes up to a few minutes to complete. Check the\nwebsites list endpoint to see when your new website becomes available.",
428
+ "method": "POST",
429
+ "path": "/api/hosting/v1/websites",
430
+ "inputSchema": {
431
+ "type": "object",
432
+ "properties": {
433
+ "domain": {
434
+ "type": "string",
435
+ "description": "Domain name for the website. Cannot start with \"www.\""
436
+ },
437
+ "order_id": {
438
+ "type": "integer",
439
+ "description": "ID of the associated order"
440
+ },
441
+ "datacenter_code": {
442
+ "type": "string",
443
+ "description": "Datacenter code. This parameter is required when creating the first website on a new hosting plan."
444
+ }
445
+ },
446
+ "required": [
447
+ "domain",
448
+ "order_id"
449
+ ]
450
+ },
451
+ "security": [
452
+ {
453
+ "apiToken": []
454
+ }
455
+ ],
456
+ "group": "hosting"
457
+ }
458
+ ];
459
+ export default tools;