@hostinger/mcp 3.1.0 → 3.2.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 +33 -0
- package/README.md +47 -301
- package/gemini-extension.json +1 -1
- package/package.json +2 -1
- package/server.json +2 -2
- package/skills/audit-hosting/SKILL.md +1 -1
- package/skills/deploy-to-hosting/SKILL.md +32 -15
- package/skills/headless/references/DATABASE.md +3 -3
- package/skills/headless/references/DEPLOYMENT.md +10 -12
- package/skills/migrate-to-hosting/SKILL.md +3 -3
- package/skills/troubleshoot-website/SKILL.md +2 -2
- package/src/core/catalog.js +4 -0
- package/src/core/catalog.ts +6 -1
- package/src/core/instructions.agency-hosting.js +2 -0
- package/src/core/instructions.agency-hosting.ts +3 -0
- package/src/core/instructions.js +1 -1
- package/src/core/instructions.ts +1 -1
- package/src/core/runtime.js +1925 -1228
- package/src/core/runtime.ts +1891 -1193
- package/src/core/skills.js +18 -18
- package/src/core/skills.ts +18 -18
- package/src/core/tools/agency-hosting.ts +2 -0
- package/src/core/tools/agent-readiness.ts +2 -0
- package/src/core/tools/all.js +223 -30
- package/src/core/tools/all.ts +225 -30
- package/src/core/tools/billing.ts +2 -0
- package/src/core/tools/dns.ts +2 -0
- package/src/core/tools/domains.ts +2 -0
- package/src/core/tools/ecommerce.ts +2 -0
- package/src/core/tools/horizons.ts +2 -0
- package/src/core/tools/hosting.js +207 -25
- package/src/core/tools/hosting.ts +209 -25
- package/src/core/tools/mail.ts +2 -0
- package/src/core/tools/reach.ts +2 -0
- package/src/core/tools/vps.ts +2 -0
- package/src/core/tools/wordpress.js +10 -2
- package/src/core/tools/wordpress.ts +12 -2
- package/src/servers/agency-hosting.js +2 -2
- package/src/servers/agency-hosting.ts +2 -2
- package/src/servers/agent-readiness.js +1 -1
- package/src/servers/agent-readiness.ts +1 -1
- package/src/servers/all.js +1 -1
- package/src/servers/all.ts +1 -1
- package/src/servers/billing.js +1 -1
- package/src/servers/billing.ts +1 -1
- package/src/servers/dns.js +1 -1
- package/src/servers/dns.ts +1 -1
- package/src/servers/domains.js +1 -1
- package/src/servers/domains.ts +1 -1
- package/src/servers/ecommerce.js +1 -1
- package/src/servers/ecommerce.ts +1 -1
- package/src/servers/horizons.js +1 -1
- package/src/servers/horizons.ts +1 -1
- package/src/servers/hosting.js +1 -1
- package/src/servers/hosting.ts +1 -1
- package/src/servers/mail.js +1 -1
- package/src/servers/mail.ts +1 -1
- package/src/servers/reach.js +1 -1
- package/src/servers/reach.ts +1 -1
- package/src/servers/vps.js +1 -1
- package/src/servers/vps.ts +1 -1
- package/src/servers/wordpress.js +1 -1
- package/src/servers/wordpress.ts +1 -1
- package/types.d.ts +131 -22
|
@@ -6,6 +6,8 @@ export interface OpenApiTool extends Tool {
|
|
|
6
6
|
path: string;
|
|
7
7
|
security: unknown[];
|
|
8
8
|
custom?: boolean;
|
|
9
|
+
hidden?: boolean;
|
|
10
|
+
replacesHidden?: boolean;
|
|
9
11
|
group?: string;
|
|
10
12
|
topic?: string;
|
|
11
13
|
handlerMethod?: string;
|
|
@@ -14,6 +16,166 @@ export interface OpenApiTool extends Tool {
|
|
|
14
16
|
}
|
|
15
17
|
|
|
16
18
|
const tools: OpenApiTool[] = [
|
|
19
|
+
{
|
|
20
|
+
"name": "hosting_deploy",
|
|
21
|
+
"title": "Deploy website, nodejs app, WordPress plugin or theme",
|
|
22
|
+
"annotations": {
|
|
23
|
+
"title": "Deploy website, nodejs app, WordPress plugin or theme",
|
|
24
|
+
"readOnlyHint": false,
|
|
25
|
+
"destructiveHint": true
|
|
26
|
+
},
|
|
27
|
+
"topic": "hosting",
|
|
28
|
+
"description": "Deploy, publish or upload a website to Hostinger web hosting (Shared, Cloud): static HTML, PHP, a nodejs (Node.js) app, a whole WordPress site, or a WordPress plugin or theme, from a local directory, an archive or a GitHub or GitLab repository. It detects what the project is and does the upload, build and Git setup itself: do not call upload or build operations, and do not archive the directory yourself. WARNING: it overwrites the website's contents and cannot be undone; confirm the domain with the user before deploying to a site that already has content. A Node.js build runs on the server: this returns a buildUuid at once, then call hosting_get-deployment until the build state is completed or failed. Static, PHP, plugin and theme deploys are done when this returns; a WordPress site import only starts, and its files are extracted a few minutes later. From Git, pass type (static or nodejs) unless the site already runs a Node.js app or you pass Node.js settings; a static or PHP site deploys the branch now and again on every push; a Node.js site builds the branch now and on every later push, with the settings stored for the site (when none are stored, pass appType and nodeVersion from the project's engines, plus outputDirectory and buildScript if the app has a build step). Git needs GitHub or GitLab connected once in hPanel.",
|
|
29
|
+
"method": "",
|
|
30
|
+
"path": "",
|
|
31
|
+
"inputSchema": {
|
|
32
|
+
"type": "object",
|
|
33
|
+
"properties": {
|
|
34
|
+
"domain": {
|
|
35
|
+
"type": "string",
|
|
36
|
+
"description": "Domain name of the website to deploy to (e.g., example.com)"
|
|
37
|
+
},
|
|
38
|
+
"path": {
|
|
39
|
+
"type": "string",
|
|
40
|
+
"description": "Local directory (preferred; it is archived for you, skipping node_modules, .git and .env files, but not reading .gitignore, so keep build output out) or archive (zip, tar, tar.gz, tgz, 7z, gz, gzip). Not together with git."
|
|
41
|
+
},
|
|
42
|
+
"git": {
|
|
43
|
+
"type": "object",
|
|
44
|
+
"description": "Deploy a repository branch instead of local files. Not together with path.",
|
|
45
|
+
"properties": {
|
|
46
|
+
"repository": {
|
|
47
|
+
"type": "string",
|
|
48
|
+
"description": "owner/name, e.g. hostinger/my-site (GitLab group paths may have more slashes)"
|
|
49
|
+
},
|
|
50
|
+
"branch": {
|
|
51
|
+
"type": "string",
|
|
52
|
+
"description": "Branch to deploy, e.g. main"
|
|
53
|
+
},
|
|
54
|
+
"directory": {
|
|
55
|
+
"type": "string",
|
|
56
|
+
"description": "Folder under the website's document root to deploy into (static deploys only; default the document root), e.g. my-api"
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"required": [
|
|
60
|
+
"repository",
|
|
61
|
+
"branch"
|
|
62
|
+
]
|
|
63
|
+
},
|
|
64
|
+
"type": {
|
|
65
|
+
"type": "string",
|
|
66
|
+
"enum": [
|
|
67
|
+
"static",
|
|
68
|
+
"nodejs",
|
|
69
|
+
"wordpress-site",
|
|
70
|
+
"wordpress-plugin",
|
|
71
|
+
"wordpress-theme"
|
|
72
|
+
],
|
|
73
|
+
"description": "What is deployed. Detected for a directory (a Plugin Name: or Theme Name: header, wp-config.php or wp-content, a package.json with a build or start script); required for an archive, when detection reports ambiguity, and for a Git deploy unless the site already runs a Node.js app or Node.js settings are passed. static also covers PHP."
|
|
74
|
+
},
|
|
75
|
+
"slug": {
|
|
76
|
+
"type": "string",
|
|
77
|
+
"description": "WordPress plugin or theme slug: lower-case letters, digits, - and _ (default: the directory name)"
|
|
78
|
+
},
|
|
79
|
+
"activate": {
|
|
80
|
+
"type": "boolean",
|
|
81
|
+
"description": "Activate the theme after deployment (WordPress themes only, default: false)"
|
|
82
|
+
},
|
|
83
|
+
"databaseDump": {
|
|
84
|
+
"type": "string",
|
|
85
|
+
"description": "Path to a .sql dump; required for a WordPress site import"
|
|
86
|
+
},
|
|
87
|
+
"nodeVersion": {
|
|
88
|
+
"type": "integer",
|
|
89
|
+
"enum": [
|
|
90
|
+
18,
|
|
91
|
+
20,
|
|
92
|
+
22,
|
|
93
|
+
24
|
|
94
|
+
],
|
|
95
|
+
"description": "Node.js major version (default: detected from an archive, or stored for the site, else 22; set it from the project's engines for a Git deploy)"
|
|
96
|
+
},
|
|
97
|
+
"appType": {
|
|
98
|
+
"type": "string",
|
|
99
|
+
"description": "Node.js framework, e.g. next, nuxt, vite, express, react, vue, astro; overrides detection or stored settings"
|
|
100
|
+
},
|
|
101
|
+
"rootDirectory": {
|
|
102
|
+
"type": "string",
|
|
103
|
+
"description": "Directory with the package.json, relative to the site root (default .)"
|
|
104
|
+
},
|
|
105
|
+
"outputDirectory": {
|
|
106
|
+
"type": "string",
|
|
107
|
+
"description": "Build output directory relative to the root directory, e.g. dist"
|
|
108
|
+
},
|
|
109
|
+
"buildScript": {
|
|
110
|
+
"type": "string",
|
|
111
|
+
"description": "The package.json script that builds the app, e.g. build"
|
|
112
|
+
},
|
|
113
|
+
"entryFile": {
|
|
114
|
+
"type": "string",
|
|
115
|
+
"description": "Entry file of a server app. Relative to the root directory for express, fastify, hono, react-router and other; for a compiled (TypeScript) app give the built file, e.g. dist/server.js, because detection guesses a root-level file. Relative to the output directory for nest, nuxt, nitro, astro and svelte-kit (main.js, not dist/main.js). Ignored for next."
|
|
116
|
+
},
|
|
117
|
+
"packageManager": {
|
|
118
|
+
"type": "string",
|
|
119
|
+
"enum": [
|
|
120
|
+
"npm",
|
|
121
|
+
"yarn",
|
|
122
|
+
"pnpm"
|
|
123
|
+
],
|
|
124
|
+
"description": "Package manager used to install dependencies"
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
"required": [
|
|
128
|
+
"domain"
|
|
129
|
+
]
|
|
130
|
+
},
|
|
131
|
+
"security": [],
|
|
132
|
+
"custom": true,
|
|
133
|
+
"replacesHidden": true,
|
|
134
|
+
"templateFile": "deploy.template.js",
|
|
135
|
+
"templateFileTS": "deploy.template.ts",
|
|
136
|
+
"handlerMethod": "handleHostingDeploy",
|
|
137
|
+
"group": "hosting"
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
"name": "hosting_get-deployment",
|
|
141
|
+
"title": "Get deployment status, build status, build logs and failure analysis",
|
|
142
|
+
"annotations": {
|
|
143
|
+
"title": "Get deployment status, build status, build logs and failure analysis",
|
|
144
|
+
"readOnlyHint": true,
|
|
145
|
+
"destructiveHint": false
|
|
146
|
+
},
|
|
147
|
+
"topic": "hosting",
|
|
148
|
+
"description": "Check deployment status, build status, build logs and why a build failed (failure analysis) for a website's nodejs (Node.js) deployment: the state of its latest build (or of buildUuid), the end of the build log, the failure analysis when the build failed, and the build settings and Git auto-deployment settings stored for the site. Use it after hosting_deploy starts a Node.js build, and to find out why a deployment failed. Poll until the build state is completed or failed, with growing pauses. The log comes back in full; pass fromLine (the lines count from the previous call) to read only new output. A website without Node.js builds returns build: null with an explanation, because static, PHP, plugin and theme deploys are complete when hosting_deploy returns, and a WordPress site import is ready a few minutes after it starts.",
|
|
149
|
+
"method": "",
|
|
150
|
+
"path": "",
|
|
151
|
+
"inputSchema": {
|
|
152
|
+
"type": "object",
|
|
153
|
+
"properties": {
|
|
154
|
+
"domain": {
|
|
155
|
+
"type": "string",
|
|
156
|
+
"description": "Domain name of the website (e.g., example.com)"
|
|
157
|
+
},
|
|
158
|
+
"buildUuid": {
|
|
159
|
+
"type": "string",
|
|
160
|
+
"description": "Build to inspect, as returned by hosting_deploy (default: the latest build)"
|
|
161
|
+
},
|
|
162
|
+
"fromLine": {
|
|
163
|
+
"type": "integer",
|
|
164
|
+
"description": "Read the build log from this line on (default 0, the whole log). Pass the lines count returned by the previous call to get only new output."
|
|
165
|
+
}
|
|
166
|
+
},
|
|
167
|
+
"required": [
|
|
168
|
+
"domain"
|
|
169
|
+
]
|
|
170
|
+
},
|
|
171
|
+
"security": [],
|
|
172
|
+
"custom": true,
|
|
173
|
+
"replacesHidden": true,
|
|
174
|
+
"templateFile": "get-deployment.template.js",
|
|
175
|
+
"templateFileTS": "get-deployment.template.ts",
|
|
176
|
+
"handlerMethod": "handleHostingGetDeployment",
|
|
177
|
+
"group": "hosting"
|
|
178
|
+
},
|
|
17
179
|
{
|
|
18
180
|
"name": "hosting_import-wordpress-website",
|
|
19
181
|
"title": "Import WordPress website",
|
|
@@ -53,7 +215,8 @@ const tools: OpenApiTool[] = [
|
|
|
53
215
|
"templateFile": "import-wordpress.template.js",
|
|
54
216
|
"templateFileTS": "import-wordpress.template.ts",
|
|
55
217
|
"handlerMethod": "handleWordpressWebsiteImport",
|
|
56
|
-
"group": "hosting"
|
|
218
|
+
"group": "hosting",
|
|
219
|
+
"hidden": true
|
|
57
220
|
},
|
|
58
221
|
{
|
|
59
222
|
"name": "hosting_deploy-wordpress-plugin",
|
|
@@ -94,7 +257,8 @@ const tools: OpenApiTool[] = [
|
|
|
94
257
|
"templateFile": "deploy-wordpress-plugin.template.js",
|
|
95
258
|
"templateFileTS": "deploy-wordpress-plugin.template.ts",
|
|
96
259
|
"handlerMethod": "handleWordpressPluginDeploy",
|
|
97
|
-
"group": "hosting"
|
|
260
|
+
"group": "hosting",
|
|
261
|
+
"hidden": true
|
|
98
262
|
},
|
|
99
263
|
{
|
|
100
264
|
"name": "hosting_deploy-wordpress-theme",
|
|
@@ -139,7 +303,8 @@ const tools: OpenApiTool[] = [
|
|
|
139
303
|
"templateFile": "deploy-wordpress-theme.template.js",
|
|
140
304
|
"templateFileTS": "deploy-wordpress-theme.template.ts",
|
|
141
305
|
"handlerMethod": "handleWordpressThemeDeploy",
|
|
142
|
-
"group": "hosting"
|
|
306
|
+
"group": "hosting",
|
|
307
|
+
"hidden": true
|
|
143
308
|
},
|
|
144
309
|
{
|
|
145
310
|
"name": "hosting_deploy-js-application",
|
|
@@ -179,7 +344,8 @@ const tools: OpenApiTool[] = [
|
|
|
179
344
|
"templateFile": "deploy-javascript-app.template.js",
|
|
180
345
|
"templateFileTS": "deploy-javascript-app.template.ts",
|
|
181
346
|
"handlerMethod": "handleJavascriptApplicationDeploy",
|
|
182
|
-
"group": "hosting"
|
|
347
|
+
"group": "hosting",
|
|
348
|
+
"hidden": true
|
|
183
349
|
},
|
|
184
350
|
{
|
|
185
351
|
"name": "hosting_deploy-static-website",
|
|
@@ -219,7 +385,8 @@ const tools: OpenApiTool[] = [
|
|
|
219
385
|
"templateFile": "deploy-static-website.template.js",
|
|
220
386
|
"templateFileTS": "deploy-static-website.template.ts",
|
|
221
387
|
"handlerMethod": "handleStaticWebsiteDeploy",
|
|
222
|
-
"group": "hosting"
|
|
388
|
+
"group": "hosting",
|
|
389
|
+
"hidden": true
|
|
223
390
|
},
|
|
224
391
|
{
|
|
225
392
|
"name": "hosting_list-js-deployments",
|
|
@@ -271,7 +438,8 @@ const tools: OpenApiTool[] = [
|
|
|
271
438
|
"templateFile": "list-javascript-deployments.template.js",
|
|
272
439
|
"templateFileTS": "list-javascript-deployments.template.ts",
|
|
273
440
|
"handlerMethod": "handleListJavascriptDeployments",
|
|
274
|
-
"group": "hosting"
|
|
441
|
+
"group": "hosting",
|
|
442
|
+
"hidden": true
|
|
275
443
|
},
|
|
276
444
|
{
|
|
277
445
|
"name": "hosting_show-js-deployment-logs",
|
|
@@ -311,7 +479,8 @@ const tools: OpenApiTool[] = [
|
|
|
311
479
|
"templateFile": "show-javascript-deployment-logs.template.js",
|
|
312
480
|
"templateFileTS": "show-javascript-deployment-logs.template.ts",
|
|
313
481
|
"handlerMethod": "handleShowJsDeploymentLogs",
|
|
314
|
-
"group": "hosting"
|
|
482
|
+
"group": "hosting",
|
|
483
|
+
"hidden": true
|
|
315
484
|
},
|
|
316
485
|
{
|
|
317
486
|
"name": "hosting_cache_clear-website",
|
|
@@ -1338,7 +1507,8 @@ const tools: OpenApiTool[] = [
|
|
|
1338
1507
|
"apiToken": []
|
|
1339
1508
|
}
|
|
1340
1509
|
],
|
|
1341
|
-
"group": "hosting"
|
|
1510
|
+
"group": "hosting",
|
|
1511
|
+
"hidden": true
|
|
1342
1512
|
},
|
|
1343
1513
|
{
|
|
1344
1514
|
"name": "hosting_files_list-website-and-directories",
|
|
@@ -1486,7 +1656,8 @@ const tools: OpenApiTool[] = [
|
|
|
1486
1656
|
"apiToken": []
|
|
1487
1657
|
}
|
|
1488
1658
|
],
|
|
1489
|
-
"group": "hosting"
|
|
1659
|
+
"group": "hosting",
|
|
1660
|
+
"hidden": true
|
|
1490
1661
|
},
|
|
1491
1662
|
{
|
|
1492
1663
|
"name": "hosting_git_update-auto-deployment-settings",
|
|
@@ -1550,7 +1721,8 @@ const tools: OpenApiTool[] = [
|
|
|
1550
1721
|
"apiToken": []
|
|
1551
1722
|
}
|
|
1552
1723
|
],
|
|
1553
|
-
"group": "hosting"
|
|
1724
|
+
"group": "hosting",
|
|
1725
|
+
"hidden": true
|
|
1554
1726
|
},
|
|
1555
1727
|
{
|
|
1556
1728
|
"name": "hosting_git_delete-auto-deployment-settings",
|
|
@@ -1628,7 +1800,8 @@ const tools: OpenApiTool[] = [
|
|
|
1628
1800
|
"apiToken": []
|
|
1629
1801
|
}
|
|
1630
1802
|
],
|
|
1631
|
-
"group": "hosting"
|
|
1803
|
+
"group": "hosting",
|
|
1804
|
+
"hidden": true
|
|
1632
1805
|
},
|
|
1633
1806
|
{
|
|
1634
1807
|
"name": "hosting_git_list-installation-repositories",
|
|
@@ -1658,7 +1831,8 @@ const tools: OpenApiTool[] = [
|
|
|
1658
1831
|
"apiToken": []
|
|
1659
1832
|
}
|
|
1660
1833
|
],
|
|
1661
|
-
"group": "hosting"
|
|
1834
|
+
"group": "hosting",
|
|
1835
|
+
"hidden": true
|
|
1662
1836
|
},
|
|
1663
1837
|
{
|
|
1664
1838
|
"name": "hosting_git_deploy-website-repository",
|
|
@@ -2082,7 +2256,8 @@ const tools: OpenApiTool[] = [
|
|
|
2082
2256
|
"apiToken": []
|
|
2083
2257
|
}
|
|
2084
2258
|
],
|
|
2085
|
-
"group": "hosting"
|
|
2259
|
+
"group": "hosting",
|
|
2260
|
+
"hidden": true
|
|
2086
2261
|
},
|
|
2087
2262
|
{
|
|
2088
2263
|
"name": "hosting_nodejs_start-build",
|
|
@@ -2218,7 +2393,8 @@ const tools: OpenApiTool[] = [
|
|
|
2218
2393
|
"apiToken": []
|
|
2219
2394
|
}
|
|
2220
2395
|
],
|
|
2221
|
-
"group": "hosting"
|
|
2396
|
+
"group": "hosting",
|
|
2397
|
+
"hidden": true
|
|
2222
2398
|
},
|
|
2223
2399
|
{
|
|
2224
2400
|
"name": "hosting_nodejs_build-settings",
|
|
@@ -2253,7 +2429,8 @@ const tools: OpenApiTool[] = [
|
|
|
2253
2429
|
"apiToken": []
|
|
2254
2430
|
}
|
|
2255
2431
|
],
|
|
2256
|
-
"group": "hosting"
|
|
2432
|
+
"group": "hosting",
|
|
2433
|
+
"hidden": true
|
|
2257
2434
|
},
|
|
2258
2435
|
{
|
|
2259
2436
|
"name": "hosting_nodejs_update-build-settings",
|
|
@@ -2350,7 +2527,8 @@ const tools: OpenApiTool[] = [
|
|
|
2350
2527
|
"apiToken": []
|
|
2351
2528
|
}
|
|
2352
2529
|
],
|
|
2353
|
-
"group": "hosting"
|
|
2530
|
+
"group": "hosting",
|
|
2531
|
+
"hidden": true
|
|
2354
2532
|
},
|
|
2355
2533
|
{
|
|
2356
2534
|
"name": "hosting_nodejs_build-settings-from-archive",
|
|
@@ -2390,7 +2568,8 @@ const tools: OpenApiTool[] = [
|
|
|
2390
2568
|
"apiToken": []
|
|
2391
2569
|
}
|
|
2392
2570
|
],
|
|
2393
|
-
"group": "hosting"
|
|
2571
|
+
"group": "hosting",
|
|
2572
|
+
"hidden": true
|
|
2394
2573
|
},
|
|
2395
2574
|
{
|
|
2396
2575
|
"name": "hosting_nodejs_list-environment-variables",
|
|
@@ -2524,7 +2703,8 @@ const tools: OpenApiTool[] = [
|
|
|
2524
2703
|
"apiToken": []
|
|
2525
2704
|
}
|
|
2526
2705
|
],
|
|
2527
|
-
"group": "hosting"
|
|
2706
|
+
"group": "hosting",
|
|
2707
|
+
"hidden": true
|
|
2528
2708
|
},
|
|
2529
2709
|
{
|
|
2530
2710
|
"name": "hosting_nodejs_build",
|
|
@@ -2564,7 +2744,8 @@ const tools: OpenApiTool[] = [
|
|
|
2564
2744
|
"apiToken": []
|
|
2565
2745
|
}
|
|
2566
2746
|
],
|
|
2567
|
-
"group": "hosting"
|
|
2747
|
+
"group": "hosting",
|
|
2748
|
+
"hidden": true
|
|
2568
2749
|
},
|
|
2569
2750
|
{
|
|
2570
2751
|
"name": "hosting_nodejs_build-logs",
|
|
@@ -2608,7 +2789,8 @@ const tools: OpenApiTool[] = [
|
|
|
2608
2789
|
"apiToken": []
|
|
2609
2790
|
}
|
|
2610
2791
|
],
|
|
2611
|
-
"group": "hosting"
|
|
2792
|
+
"group": "hosting",
|
|
2793
|
+
"hidden": true
|
|
2612
2794
|
},
|
|
2613
2795
|
{
|
|
2614
2796
|
"name": "hosting_nodejs_runtime-logs",
|
|
@@ -2852,7 +3034,7 @@ const tools: OpenApiTool[] = [
|
|
|
2852
3034
|
"readOnlyHint": true,
|
|
2853
3035
|
"destructiveHint": false
|
|
2854
3036
|
},
|
|
2855
|
-
"description": "Returns the website setups started in the last 24 hours for the hosting accounts\naccessible to the authenticated client, newest first. Narrow the list with the\n`order_id`, `subscription_id` or `domain` filters.\n\nMeant for polling right after creating a website or starting a website setup: the\nwebsite shows up in the websites list before its server-side setup has finished, and\nwhile the setup is `running` endpoints that operate on that website may respond with\n`404` or `409`. Poll this endpoint with the `domain` filter every 10 to 15 seconds and\nwait for `status: completed` before uploading files, deploying or creating databases.\n`failed` means the setup stopped before finishing or has not reported progress for\nover an hour. Setups older than 24 hours are not listed.\n\n`type` is the website type the setup was started with (`wordpress`, `
|
|
3037
|
+
"description": "Returns the website setups started in the last 24 hours for the hosting accounts\naccessible to the authenticated client, newest first. Narrow the list with the\n`order_id`, `subscription_id` or `domain` filters.\n\nMeant for polling right after creating a website or starting a website setup: the\nwebsite shows up in the websites list before its server-side setup has finished, and\nwhile the setup is `running` endpoints that operate on that website may respond with\n`404` or `409`. Poll this endpoint with the `domain` filter every 10 to 15 seconds and\nwait for `status: completed` before uploading files, deploying or creating databases.\n`failed` means the setup stopped before finishing or has not reported progress for\nover an hour. Setups older than 24 hours are not listed.\n\n`type` is the website type the setup was started with (`wordpress`, `headless_empty`,\n`headless_wordpress`, `headless_ecommerce`, `headless_pocketbase`), or `null` for an empty\nwebsite.",
|
|
2856
3038
|
"method": "GET",
|
|
2857
3039
|
"path": "/api/hosting/v1/onboardings",
|
|
2858
3040
|
"inputSchema": {
|
|
@@ -2888,7 +3070,7 @@ const tools: OpenApiTool[] = [
|
|
|
2888
3070
|
"readOnlyHint": false,
|
|
2889
3071
|
"destructiveHint": false
|
|
2890
3072
|
},
|
|
2891
|
-
"description": "Starts a website setup on a Web or Cloud hosting order and returns the created setup\nright away; the website itself is provisioned asynchronously. Poll the list website\nsetups endpoint with the `domain` filter every 10 to 15
|
|
3073
|
+
"description": "Starts a website setup on a Web or Cloud hosting order and returns the created setup\nright away; the website itself is provisioned asynchronously. Poll the list website\nsetups endpoint (`hosting_websites_list-setups`) with the `domain` filter every 10 to 15\nseconds and wait for `status: completed` before uploading files, deploying or creating\ndatabases.\n\nOmit `type` for an empty website. `type: wordpress` installs WordPress in the website\nroot with the admin user, email and password from `wordpress`, the domain as the site\ntitle, and `en_US` when `wordpress.language` is omitted. The headless types\n(`headless_empty`, `headless_wordpress`, `headless_ecommerce`, `headless_pocketbase`)\ncreate a headless website; `headless_wordpress` additionally installs WordPress into the\n`cms` directory of the website root with generated credentials. `headless_empty` installs\nnothing: WordPress can be added later through\n`POST /api/hosting/v1/accounts/{username}/wordpress/installations`\n(`wordpress_installations_install`) with `type: headless`.\n\nOmit `domain` to set the website up on a generated temporary free subdomain. To know the\nfree subdomain before the call, so a timed-out call can be looked up and retried on the\nsame domain, generate one through `POST /api/hosting/v1/domains/free-subdomains`\n(`hosting_domains_generate-free-subdomain`) and send it as `domain`. It is accepted for\n24 hours, only from the client that generated it.\n\nWhen the order has no hosting account yet, the setup creates one first, in the datacenter\ngiven by `datacenter_code` or the order's default datacenter when it is omitted.\nReturns 404 when the order does not exist or is not accessible to the authenticated\nclient, and 409 with a `Retry-After` header while a setup for the same domain is still\nrunning.",
|
|
2892
3074
|
"method": "POST",
|
|
2893
3075
|
"path": "/api/hosting/v1/orders/{order_id}/onboardings",
|
|
2894
3076
|
"inputSchema": {
|
|
@@ -2900,9 +3082,10 @@ const tools: OpenApiTool[] = [
|
|
|
2900
3082
|
},
|
|
2901
3083
|
"type": {
|
|
2902
3084
|
"type": "string",
|
|
2903
|
-
"description": "Website type. Omit or `null` for an empty website. `wordpress` installs WordPress in the website root and requires `wordpress`. The headless types (`headless_wordpress`, `headless_ecommerce`, `headless_pocketbase`) create a headless website; `headless_wordpress` additionally installs WordPress into the `cms` directory with generated credentials.",
|
|
3085
|
+
"description": "Website type. Omit or `null` for an empty website. `wordpress` installs WordPress in the website root and requires `wordpress`. The headless types (`headless_empty`, `headless_wordpress`, `headless_ecommerce`, `headless_pocketbase`) create a headless website; `headless_wordpress` additionally installs WordPress into the `cms` directory with generated credentials. `headless_empty` installs nothing, so WordPress can be added later through `POST /api/hosting/v1/accounts/{username}/wordpress/installations` (`wordpress_installations_install`) with `type: headless`.",
|
|
2904
3086
|
"enum": [
|
|
2905
3087
|
"wordpress",
|
|
3088
|
+
"headless_empty",
|
|
2906
3089
|
"headless_wordpress",
|
|
2907
3090
|
"headless_ecommerce",
|
|
2908
3091
|
"headless_pocketbase"
|
|
@@ -2910,7 +3093,7 @@ const tools: OpenApiTool[] = [
|
|
|
2910
3093
|
},
|
|
2911
3094
|
"domain": {
|
|
2912
3095
|
"type": "string",
|
|
2913
|
-
"description": "Customer-owned domain. Cannot start with \"www.\" and can have at most one subdomain level, e.g. `blog.example.com`. Omit or `null` to set the website up on a generated temporary free subdomain."
|
|
3096
|
+
"description": "Customer-owned domain, or a free subdomain you generated through `POST /api/hosting/v1/domains/free-subdomains` (`hosting_domains_generate-free-subdomain`) in the last 24 hours. Cannot start with \"www.\" and can have at most one subdomain level, e.g. `blog.example.com`. Omit or `null` to set the website up on a generated temporary free subdomain."
|
|
2914
3097
|
},
|
|
2915
3098
|
"datacenter_code": {
|
|
2916
3099
|
"type": "string",
|
|
@@ -3679,7 +3862,8 @@ const tools: OpenApiTool[] = [
|
|
|
3679
3862
|
"apiToken": []
|
|
3680
3863
|
}
|
|
3681
3864
|
],
|
|
3682
|
-
"group": "hosting"
|
|
3865
|
+
"group": "hosting",
|
|
3866
|
+
"hidden": true
|
|
3683
3867
|
},
|
|
3684
3868
|
{
|
|
3685
3869
|
"name": "hosting_websites_delete",
|
package/src/core/tools/mail.ts
CHANGED
package/src/core/tools/reach.ts
CHANGED
package/src/core/tools/vps.ts
CHANGED
|
@@ -376,7 +376,7 @@ export default [
|
|
|
376
376
|
"readOnlyHint": false,
|
|
377
377
|
"destructiveHint": false
|
|
378
378
|
},
|
|
379
|
-
"description": "Install WordPress on an existing website.\n\nThe website must already exist before calling this endpoint. To create a new\nwebsite first, use POST /api/hosting/v1/
|
|
379
|
+
"description": "Install WordPress on an existing website.\n\nThe website must already exist before calling this endpoint. To create a new\nwebsite first, use POST /api/hosting/v1/orders/{order_id}/onboardings\n(`hosting_websites_start-setup`) and poll GET /api/hosting/v1/onboardings\n(`hosting_websites_list-setups`) with the `domain` filter until its `status` is\n`completed`.\n\nSend `type: headless` to turn a headless website (for example one created by\n`hosting_websites_start-setup` with `type: headless_empty`) into a headless WordPress\nwebsite: WordPress is installed into the `cms` directory with the Hostinger headless\nMU plugin and the website is marked as a headless WordPress website. `directory` is\nnot allowed with it. The target website must already be headless: the headless\ninstall rewrites the root `.htaccess`, so on any other website the request is\nrejected with 422.\n\nCall GET /api/hosting/v1/wordpress/installations (`wordpress_installations_list`)\nfiltered by username and domain before proceeding to check whether WordPress is\nalready installed on the target domain/path. If WordPress already exists and\n`overwrite` is false (the default), the async job will fail.\n\nThis operation is asynchronous: a successful response only means the install\njob has been queued, not that WordPress is ready. Installation typically\ntakes 1-2 minutes. Poll GET /api/hosting/v1/wordpress/installations\n(`wordpress_installations_list`) filtered by username and domain to track\nprogress. When the installation appears in that list, WordPress is ready.\n\nReturns 422 when the account already uses all the databases its plan allows,\nunless `database.name` is an existing database on the account.",
|
|
380
380
|
"method": "POST",
|
|
381
381
|
"path": "/api/hosting/v1/accounts/{username}/wordpress/installations",
|
|
382
382
|
"inputSchema": {
|
|
@@ -398,9 +398,17 @@ export default [
|
|
|
398
398
|
"type": "string",
|
|
399
399
|
"description": "WordPress locale. Defaults to en_US when omitted."
|
|
400
400
|
},
|
|
401
|
+
"type": {
|
|
402
|
+
"type": "string",
|
|
403
|
+
"description": "Installation kind; `default` when omitted. `headless` installs WordPress into the `cms` directory with the Hostinger headless MU plugin and marks the website as a headless WordPress website. Accepted only for a website that is already headless, e.g. one created by `POST /api/hosting/v1/orders/{order_id}/onboardings` (`hosting_websites_start-setup`) with `type: headless_empty`; any other website is rejected with 422.",
|
|
404
|
+
"enum": [
|
|
405
|
+
"default",
|
|
406
|
+
"headless"
|
|
407
|
+
]
|
|
408
|
+
},
|
|
401
409
|
"directory": {
|
|
402
410
|
"type": "string",
|
|
403
|
-
"description": "
|
|
411
|
+
"description": "Installation subdirectory relative to the document root; omit for the root. Not allowed with `type: headless`, which always installs into `cms`."
|
|
404
412
|
},
|
|
405
413
|
"overwrite": {
|
|
406
414
|
"type": "boolean",
|
|
@@ -6,6 +6,8 @@ export interface OpenApiTool extends Tool {
|
|
|
6
6
|
path: string;
|
|
7
7
|
security: unknown[];
|
|
8
8
|
custom?: boolean;
|
|
9
|
+
hidden?: boolean;
|
|
10
|
+
replacesHidden?: boolean;
|
|
9
11
|
group?: string;
|
|
10
12
|
topic?: string;
|
|
11
13
|
handlerMethod?: string;
|
|
@@ -390,7 +392,7 @@ const tools: OpenApiTool[] = [
|
|
|
390
392
|
"readOnlyHint": false,
|
|
391
393
|
"destructiveHint": false
|
|
392
394
|
},
|
|
393
|
-
"description": "Install WordPress on an existing website.\n\nThe website must already exist before calling this endpoint. To create a new\nwebsite first, use POST /api/hosting/v1/
|
|
395
|
+
"description": "Install WordPress on an existing website.\n\nThe website must already exist before calling this endpoint. To create a new\nwebsite first, use POST /api/hosting/v1/orders/{order_id}/onboardings\n(`hosting_websites_start-setup`) and poll GET /api/hosting/v1/onboardings\n(`hosting_websites_list-setups`) with the `domain` filter until its `status` is\n`completed`.\n\nSend `type: headless` to turn a headless website (for example one created by\n`hosting_websites_start-setup` with `type: headless_empty`) into a headless WordPress\nwebsite: WordPress is installed into the `cms` directory with the Hostinger headless\nMU plugin and the website is marked as a headless WordPress website. `directory` is\nnot allowed with it. The target website must already be headless: the headless\ninstall rewrites the root `.htaccess`, so on any other website the request is\nrejected with 422.\n\nCall GET /api/hosting/v1/wordpress/installations (`wordpress_installations_list`)\nfiltered by username and domain before proceeding to check whether WordPress is\nalready installed on the target domain/path. If WordPress already exists and\n`overwrite` is false (the default), the async job will fail.\n\nThis operation is asynchronous: a successful response only means the install\njob has been queued, not that WordPress is ready. Installation typically\ntakes 1-2 minutes. Poll GET /api/hosting/v1/wordpress/installations\n(`wordpress_installations_list`) filtered by username and domain to track\nprogress. When the installation appears in that list, WordPress is ready.\n\nReturns 422 when the account already uses all the databases its plan allows,\nunless `database.name` is an existing database on the account.",
|
|
394
396
|
"method": "POST",
|
|
395
397
|
"path": "/api/hosting/v1/accounts/{username}/wordpress/installations",
|
|
396
398
|
"inputSchema": {
|
|
@@ -412,9 +414,17 @@ const tools: OpenApiTool[] = [
|
|
|
412
414
|
"type": "string",
|
|
413
415
|
"description": "WordPress locale. Defaults to en_US when omitted."
|
|
414
416
|
},
|
|
417
|
+
"type": {
|
|
418
|
+
"type": "string",
|
|
419
|
+
"description": "Installation kind; `default` when omitted. `headless` installs WordPress into the `cms` directory with the Hostinger headless MU plugin and marks the website as a headless WordPress website. Accepted only for a website that is already headless, e.g. one created by `POST /api/hosting/v1/orders/{order_id}/onboardings` (`hosting_websites_start-setup`) with `type: headless_empty`; any other website is rejected with 422.",
|
|
420
|
+
"enum": [
|
|
421
|
+
"default",
|
|
422
|
+
"headless"
|
|
423
|
+
]
|
|
424
|
+
},
|
|
415
425
|
"directory": {
|
|
416
426
|
"type": "string",
|
|
417
|
-
"description": "
|
|
427
|
+
"description": "Installation subdirectory relative to the document root; omit for the root. Not allowed with `type: headless`, which always installs into `cms`."
|
|
418
428
|
},
|
|
419
429
|
"overwrite": {
|
|
420
430
|
"type": "boolean",
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
// Auto-generated entry for group: agency-hosting
|
|
3
3
|
import { startServer } from '../core/runtime.js';
|
|
4
4
|
import tools from '../core/tools/agency-hosting.js';
|
|
5
|
-
import instructions from '../core/instructions.js';
|
|
5
|
+
import instructions from '../core/instructions.agency-hosting.js';
|
|
6
6
|
|
|
7
|
-
startServer({ name: 'hostinger-agency-hosting-mcp', version: '3.1
|
|
7
|
+
startServer({ name: 'hostinger-agency-hosting-mcp', version: '3.2.1', tools, instructions });
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
// Auto-generated entry for group: agency-hosting
|
|
3
3
|
import { startServer } from '../core/runtime.js';
|
|
4
4
|
import tools from '../core/tools/agency-hosting.js';
|
|
5
|
-
import instructions from '../core/instructions.js';
|
|
5
|
+
import instructions from '../core/instructions.agency-hosting.js';
|
|
6
6
|
|
|
7
|
-
startServer({ name: 'hostinger-agency-hosting-mcp', version: '3.1
|
|
7
|
+
startServer({ name: 'hostinger-agency-hosting-mcp', version: '3.2.1', tools, instructions });
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
import { startServer } from '../core/runtime.js';
|
|
4
4
|
import tools from '../core/tools/agent-readiness.js';
|
|
5
5
|
|
|
6
|
-
startServer({ name: 'hostinger-agent-readiness-mcp', version: '3.1
|
|
6
|
+
startServer({ name: 'hostinger-agent-readiness-mcp', version: '3.2.1', tools });
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
import { startServer } from '../core/runtime.js';
|
|
4
4
|
import tools from '../core/tools/agent-readiness.js';
|
|
5
5
|
|
|
6
|
-
startServer({ name: 'hostinger-agent-readiness-mcp', version: '3.1
|
|
6
|
+
startServer({ name: 'hostinger-agent-readiness-mcp', version: '3.2.1', tools });
|
package/src/servers/all.js
CHANGED
|
@@ -5,4 +5,4 @@ import tools from '../core/tools/all.js';
|
|
|
5
5
|
import instructions from '../core/instructions.js';
|
|
6
6
|
import skills from '../core/skills.js';
|
|
7
7
|
|
|
8
|
-
startServer({ name: 'hostinger-api-mcp', version: '3.1
|
|
8
|
+
startServer({ name: 'hostinger-api-mcp', version: '3.2.1', tools, instructions, skills });
|
package/src/servers/all.ts
CHANGED
|
@@ -5,4 +5,4 @@ import tools from '../core/tools/all.js';
|
|
|
5
5
|
import instructions from '../core/instructions.js';
|
|
6
6
|
import skills from '../core/skills.js';
|
|
7
7
|
|
|
8
|
-
startServer({ name: 'hostinger-api-mcp', version: '3.1
|
|
8
|
+
startServer({ name: 'hostinger-api-mcp', version: '3.2.1', tools, instructions, skills });
|
package/src/servers/billing.js
CHANGED
package/src/servers/billing.ts
CHANGED
package/src/servers/dns.js
CHANGED
package/src/servers/dns.ts
CHANGED
package/src/servers/domains.js
CHANGED
package/src/servers/domains.ts
CHANGED
package/src/servers/ecommerce.js
CHANGED
package/src/servers/ecommerce.ts
CHANGED
package/src/servers/horizons.js
CHANGED