@hostinger/mcp 3.2.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 +14 -0
- package/README.md +38 -19
- package/gemini-extension.json +1 -1
- package/package.json +1 -1
- package/server.json +2 -2
- package/src/core/runtime.js +1 -1
- package/src/core/runtime.ts +1 -1
- package/src/core/tools/all.js +15 -6
- package/src/core/tools/all.ts +15 -6
- package/src/core/tools/hosting.js +5 -4
- package/src/core/tools/hosting.ts +5 -4
- package/src/core/tools/wordpress.js +10 -2
- package/src/core/tools/wordpress.ts +10 -2
- package/src/servers/agency-hosting.js +1 -1
- package/src/servers/agency-hosting.ts +1 -1
- 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 +45 -22
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,20 @@ 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
|
+
## v3.2.1 — 2026-10-19
|
|
8
|
+
|
|
9
|
+
### Operations
|
|
10
|
+
|
|
11
|
+
- Changed the description of `hosting_websites_list-setups`
|
|
12
|
+
- Changed the description and input schema of `hosting_websites_start-setup`
|
|
13
|
+
- Changed the description and input schema of `wordpress_installations_install`
|
|
14
|
+
|
|
15
|
+
### Also in this release
|
|
16
|
+
|
|
17
|
+
- Documentation: `README.md`
|
|
18
|
+
- Request handling and authentication: `src/core/runtime.js`, `src/core/runtime.ts`
|
|
19
|
+
- Build and packaging: `types.d.ts`
|
|
20
|
+
|
|
7
21
|
## v3.2.0 — 2026-10-19
|
|
8
22
|
|
|
9
23
|
### Operations
|
package/README.md
CHANGED
|
@@ -2325,8 +2325,9 @@ wait for `status: completed` before uploading files, deploying or creating datab
|
|
|
2325
2325
|
`failed` means the setup stopped before finishing or has not reported progress for
|
|
2326
2326
|
over an hour. Setups older than 24 hours are not listed.
|
|
2327
2327
|
|
|
2328
|
-
`type` is the website type the setup was started with (`wordpress`, `
|
|
2329
|
-
`headless_ecommerce`, `headless_pocketbase`), or `null` for an empty
|
|
2328
|
+
`type` is the website type the setup was started with (`wordpress`, `headless_empty`,
|
|
2329
|
+
`headless_wordpress`, `headless_ecommerce`, `headless_pocketbase`), or `null` for an empty
|
|
2330
|
+
website.
|
|
2330
2331
|
|
|
2331
2332
|
- **Method**: `GET`
|
|
2332
2333
|
- **Path**: `/api/hosting/v1/onboardings`
|
|
@@ -2335,17 +2336,25 @@ over an hour. Setups older than 24 hours are not listed.
|
|
|
2335
2336
|
|
|
2336
2337
|
Starts a website setup on a Web or Cloud hosting order and returns the created setup
|
|
2337
2338
|
right away; the website itself is provisioned asynchronously. Poll the list website
|
|
2338
|
-
setups endpoint with the `domain` filter every 10 to 15
|
|
2339
|
-
`status: completed` before uploading files, deploying or creating
|
|
2339
|
+
setups endpoint (`hosting_websites_list-setups`) with the `domain` filter every 10 to 15
|
|
2340
|
+
seconds and wait for `status: completed` before uploading files, deploying or creating
|
|
2341
|
+
databases.
|
|
2340
2342
|
|
|
2341
2343
|
Omit `type` for an empty website. `type: wordpress` installs WordPress in the website
|
|
2342
2344
|
root with the admin user, email and password from `wordpress`, the domain as the site
|
|
2343
2345
|
title, and `en_US` when `wordpress.language` is omitted. The headless types
|
|
2344
|
-
(`headless_wordpress`, `headless_ecommerce`, `headless_pocketbase`)
|
|
2345
|
-
website; `headless_wordpress` additionally installs WordPress into the
|
|
2346
|
-
of the website root with generated credentials.
|
|
2347
|
-
|
|
2348
|
-
|
|
2346
|
+
(`headless_empty`, `headless_wordpress`, `headless_ecommerce`, `headless_pocketbase`)
|
|
2347
|
+
create a headless website; `headless_wordpress` additionally installs WordPress into the
|
|
2348
|
+
`cms` directory of the website root with generated credentials. `headless_empty` installs
|
|
2349
|
+
nothing: WordPress can be added later through
|
|
2350
|
+
`POST /api/hosting/v1/accounts/{username}/wordpress/installations`
|
|
2351
|
+
(`wordpress_installations_install`) with `type: headless`.
|
|
2352
|
+
|
|
2353
|
+
Omit `domain` to set the website up on a generated temporary free subdomain. To know the
|
|
2354
|
+
free subdomain before the call, so a timed-out call can be looked up and retried on the
|
|
2355
|
+
same domain, generate one through `POST /api/hosting/v1/domains/free-subdomains`
|
|
2356
|
+
(`hosting_domains_generate-free-subdomain`) and send it as `domain`. It is accepted for
|
|
2357
|
+
24 hours, only from the client that generated it.
|
|
2349
2358
|
|
|
2350
2359
|
When the order has no hosting account yet, the setup creates one first, in the datacenter
|
|
2351
2360
|
given by `datacenter_code` or the order's default datacenter when it is omitted.
|
|
@@ -4486,19 +4495,29 @@ database files that have been uploaded to the website's directory.
|
|
|
4486
4495
|
Install WordPress on an existing website.
|
|
4487
4496
|
|
|
4488
4497
|
The website must already exist before calling this endpoint. To create a new
|
|
4489
|
-
website first, use POST /api/hosting/v1/
|
|
4490
|
-
GET /api/hosting/v1/
|
|
4491
|
-
|
|
4492
|
-
|
|
4493
|
-
|
|
4494
|
-
|
|
4495
|
-
|
|
4498
|
+
website first, use POST /api/hosting/v1/orders/{order_id}/onboardings
|
|
4499
|
+
(`hosting_websites_start-setup`) and poll GET /api/hosting/v1/onboardings
|
|
4500
|
+
(`hosting_websites_list-setups`) with the `domain` filter until its `status` is
|
|
4501
|
+
`completed`.
|
|
4502
|
+
|
|
4503
|
+
Send `type: headless` to turn a headless website (for example one created by
|
|
4504
|
+
`hosting_websites_start-setup` with `type: headless_empty`) into a headless WordPress
|
|
4505
|
+
website: WordPress is installed into the `cms` directory with the Hostinger headless
|
|
4506
|
+
MU plugin and the website is marked as a headless WordPress website. `directory` is
|
|
4507
|
+
not allowed with it. The target website must already be headless: the headless
|
|
4508
|
+
install rewrites the root `.htaccess`, so on any other website the request is
|
|
4509
|
+
rejected with 422.
|
|
4510
|
+
|
|
4511
|
+
Call GET /api/hosting/v1/wordpress/installations (`wordpress_installations_list`)
|
|
4512
|
+
filtered by username and domain before proceeding to check whether WordPress is
|
|
4513
|
+
already installed on the target domain/path. If WordPress already exists and
|
|
4514
|
+
`overwrite` is false (the default), the async job will fail.
|
|
4496
4515
|
|
|
4497
4516
|
This operation is asynchronous: a successful response only means the install
|
|
4498
4517
|
job has been queued, not that WordPress is ready. Installation typically
|
|
4499
|
-
takes 1-2 minutes. Poll GET /api/hosting/v1/wordpress/installations
|
|
4500
|
-
by username and domain to track
|
|
4501
|
-
that list, WordPress is ready.
|
|
4518
|
+
takes 1-2 minutes. Poll GET /api/hosting/v1/wordpress/installations
|
|
4519
|
+
(`wordpress_installations_list`) filtered by username and domain to track
|
|
4520
|
+
progress. When the installation appears in that list, WordPress is ready.
|
|
4502
4521
|
|
|
4503
4522
|
Returns 422 when the account already uses all the databases its plan allows,
|
|
4504
4523
|
unless `database.name` is an existing database on the account.
|
package/gemini-extension.json
CHANGED
package/package.json
CHANGED
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": "3.2.
|
|
9
|
+
"version": "3.2.1",
|
|
10
10
|
"packages": [
|
|
11
11
|
{
|
|
12
12
|
"registryType": "npm",
|
|
13
13
|
"identifier": "@hostinger/mcp",
|
|
14
|
-
"version": "3.2.
|
|
14
|
+
"version": "3.2.1",
|
|
15
15
|
"transport": {
|
|
16
16
|
"type": "stdio"
|
|
17
17
|
},
|
package/src/core/runtime.js
CHANGED
|
@@ -66,7 +66,7 @@ const GetSkillRequestSchema = z.object({
|
|
|
66
66
|
|
|
67
67
|
/**
|
|
68
68
|
* MCP Server for Hostinger API
|
|
69
|
-
* Generated from OpenAPI spec version 2.1.
|
|
69
|
+
* Generated from OpenAPI spec version 2.1.1
|
|
70
70
|
*/
|
|
71
71
|
class MCPServer {
|
|
72
72
|
constructor({ name, version, tools, instructions, skills = [] }) {
|
package/src/core/runtime.ts
CHANGED
|
@@ -97,7 +97,7 @@ interface Skill { uri: string; frontmatter: Record<string, unknown>; resources:
|
|
|
97
97
|
|
|
98
98
|
/**
|
|
99
99
|
* MCP Server for Hostinger API
|
|
100
|
-
* Generated from OpenAPI spec version 2.1.
|
|
100
|
+
* Generated from OpenAPI spec version 2.1.1
|
|
101
101
|
*/
|
|
102
102
|
class MCPServer {
|
|
103
103
|
private readonly name: string;
|
package/src/core/tools/all.js
CHANGED
|
@@ -8708,7 +8708,7 @@ export default [
|
|
|
8708
8708
|
"readOnlyHint": true,
|
|
8709
8709
|
"destructiveHint": false
|
|
8710
8710
|
},
|
|
8711
|
-
"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`, `
|
|
8711
|
+
"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.",
|
|
8712
8712
|
"method": "GET",
|
|
8713
8713
|
"path": "/api/hosting/v1/onboardings",
|
|
8714
8714
|
"inputSchema": {
|
|
@@ -8744,7 +8744,7 @@ export default [
|
|
|
8744
8744
|
"readOnlyHint": false,
|
|
8745
8745
|
"destructiveHint": false
|
|
8746
8746
|
},
|
|
8747
|
-
"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
|
|
8747
|
+
"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.",
|
|
8748
8748
|
"method": "POST",
|
|
8749
8749
|
"path": "/api/hosting/v1/orders/{order_id}/onboardings",
|
|
8750
8750
|
"inputSchema": {
|
|
@@ -8756,9 +8756,10 @@ export default [
|
|
|
8756
8756
|
},
|
|
8757
8757
|
"type": {
|
|
8758
8758
|
"type": "string",
|
|
8759
|
-
"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.",
|
|
8759
|
+
"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`.",
|
|
8760
8760
|
"enum": [
|
|
8761
8761
|
"wordpress",
|
|
8762
|
+
"headless_empty",
|
|
8762
8763
|
"headless_wordpress",
|
|
8763
8764
|
"headless_ecommerce",
|
|
8764
8765
|
"headless_pocketbase"
|
|
@@ -8766,7 +8767,7 @@ export default [
|
|
|
8766
8767
|
},
|
|
8767
8768
|
"domain": {
|
|
8768
8769
|
"type": "string",
|
|
8769
|
-
"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."
|
|
8770
|
+
"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."
|
|
8770
8771
|
},
|
|
8771
8772
|
"datacenter_code": {
|
|
8772
8773
|
"type": "string",
|
|
@@ -16593,7 +16594,7 @@ export default [
|
|
|
16593
16594
|
"readOnlyHint": false,
|
|
16594
16595
|
"destructiveHint": false
|
|
16595
16596
|
},
|
|
16596
|
-
"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/
|
|
16597
|
+
"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.",
|
|
16597
16598
|
"method": "POST",
|
|
16598
16599
|
"path": "/api/hosting/v1/accounts/{username}/wordpress/installations",
|
|
16599
16600
|
"inputSchema": {
|
|
@@ -16615,9 +16616,17 @@ export default [
|
|
|
16615
16616
|
"type": "string",
|
|
16616
16617
|
"description": "WordPress locale. Defaults to en_US when omitted."
|
|
16617
16618
|
},
|
|
16619
|
+
"type": {
|
|
16620
|
+
"type": "string",
|
|
16621
|
+
"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.",
|
|
16622
|
+
"enum": [
|
|
16623
|
+
"default",
|
|
16624
|
+
"headless"
|
|
16625
|
+
]
|
|
16626
|
+
},
|
|
16618
16627
|
"directory": {
|
|
16619
16628
|
"type": "string",
|
|
16620
|
-
"description": "
|
|
16629
|
+
"description": "Installation subdirectory relative to the document root; omit for the root. Not allowed with `type: headless`, which always installs into `cms`."
|
|
16621
16630
|
},
|
|
16622
16631
|
"overwrite": {
|
|
16623
16632
|
"type": "boolean",
|
package/src/core/tools/all.ts
CHANGED
|
@@ -8724,7 +8724,7 @@ const tools: OpenApiTool[] = [
|
|
|
8724
8724
|
"readOnlyHint": true,
|
|
8725
8725
|
"destructiveHint": false
|
|
8726
8726
|
},
|
|
8727
|
-
"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`, `
|
|
8727
|
+
"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.",
|
|
8728
8728
|
"method": "GET",
|
|
8729
8729
|
"path": "/api/hosting/v1/onboardings",
|
|
8730
8730
|
"inputSchema": {
|
|
@@ -8760,7 +8760,7 @@ const tools: OpenApiTool[] = [
|
|
|
8760
8760
|
"readOnlyHint": false,
|
|
8761
8761
|
"destructiveHint": false
|
|
8762
8762
|
},
|
|
8763
|
-
"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
|
|
8763
|
+
"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.",
|
|
8764
8764
|
"method": "POST",
|
|
8765
8765
|
"path": "/api/hosting/v1/orders/{order_id}/onboardings",
|
|
8766
8766
|
"inputSchema": {
|
|
@@ -8772,9 +8772,10 @@ const tools: OpenApiTool[] = [
|
|
|
8772
8772
|
},
|
|
8773
8773
|
"type": {
|
|
8774
8774
|
"type": "string",
|
|
8775
|
-
"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.",
|
|
8775
|
+
"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`.",
|
|
8776
8776
|
"enum": [
|
|
8777
8777
|
"wordpress",
|
|
8778
|
+
"headless_empty",
|
|
8778
8779
|
"headless_wordpress",
|
|
8779
8780
|
"headless_ecommerce",
|
|
8780
8781
|
"headless_pocketbase"
|
|
@@ -8782,7 +8783,7 @@ const tools: OpenApiTool[] = [
|
|
|
8782
8783
|
},
|
|
8783
8784
|
"domain": {
|
|
8784
8785
|
"type": "string",
|
|
8785
|
-
"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."
|
|
8786
|
+
"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."
|
|
8786
8787
|
},
|
|
8787
8788
|
"datacenter_code": {
|
|
8788
8789
|
"type": "string",
|
|
@@ -16609,7 +16610,7 @@ const tools: OpenApiTool[] = [
|
|
|
16609
16610
|
"readOnlyHint": false,
|
|
16610
16611
|
"destructiveHint": false
|
|
16611
16612
|
},
|
|
16612
|
-
"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/
|
|
16613
|
+
"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.",
|
|
16613
16614
|
"method": "POST",
|
|
16614
16615
|
"path": "/api/hosting/v1/accounts/{username}/wordpress/installations",
|
|
16615
16616
|
"inputSchema": {
|
|
@@ -16631,9 +16632,17 @@ const tools: OpenApiTool[] = [
|
|
|
16631
16632
|
"type": "string",
|
|
16632
16633
|
"description": "WordPress locale. Defaults to en_US when omitted."
|
|
16633
16634
|
},
|
|
16635
|
+
"type": {
|
|
16636
|
+
"type": "string",
|
|
16637
|
+
"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.",
|
|
16638
|
+
"enum": [
|
|
16639
|
+
"default",
|
|
16640
|
+
"headless"
|
|
16641
|
+
]
|
|
16642
|
+
},
|
|
16634
16643
|
"directory": {
|
|
16635
16644
|
"type": "string",
|
|
16636
|
-
"description": "
|
|
16645
|
+
"description": "Installation subdirectory relative to the document root; omit for the root. Not allowed with `type: headless`, which always installs into `cms`."
|
|
16637
16646
|
},
|
|
16638
16647
|
"overwrite": {
|
|
16639
16648
|
"type": "boolean",
|
|
@@ -3018,7 +3018,7 @@ export default [
|
|
|
3018
3018
|
"readOnlyHint": true,
|
|
3019
3019
|
"destructiveHint": false
|
|
3020
3020
|
},
|
|
3021
|
-
"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`, `
|
|
3021
|
+
"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.",
|
|
3022
3022
|
"method": "GET",
|
|
3023
3023
|
"path": "/api/hosting/v1/onboardings",
|
|
3024
3024
|
"inputSchema": {
|
|
@@ -3054,7 +3054,7 @@ export default [
|
|
|
3054
3054
|
"readOnlyHint": false,
|
|
3055
3055
|
"destructiveHint": false
|
|
3056
3056
|
},
|
|
3057
|
-
"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
|
|
3057
|
+
"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.",
|
|
3058
3058
|
"method": "POST",
|
|
3059
3059
|
"path": "/api/hosting/v1/orders/{order_id}/onboardings",
|
|
3060
3060
|
"inputSchema": {
|
|
@@ -3066,9 +3066,10 @@ export default [
|
|
|
3066
3066
|
},
|
|
3067
3067
|
"type": {
|
|
3068
3068
|
"type": "string",
|
|
3069
|
-
"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.",
|
|
3069
|
+
"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`.",
|
|
3070
3070
|
"enum": [
|
|
3071
3071
|
"wordpress",
|
|
3072
|
+
"headless_empty",
|
|
3072
3073
|
"headless_wordpress",
|
|
3073
3074
|
"headless_ecommerce",
|
|
3074
3075
|
"headless_pocketbase"
|
|
@@ -3076,7 +3077,7 @@ export default [
|
|
|
3076
3077
|
},
|
|
3077
3078
|
"domain": {
|
|
3078
3079
|
"type": "string",
|
|
3079
|
-
"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."
|
|
3080
|
+
"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."
|
|
3080
3081
|
},
|
|
3081
3082
|
"datacenter_code": {
|
|
3082
3083
|
"type": "string",
|
|
@@ -3034,7 +3034,7 @@ const tools: OpenApiTool[] = [
|
|
|
3034
3034
|
"readOnlyHint": true,
|
|
3035
3035
|
"destructiveHint": false
|
|
3036
3036
|
},
|
|
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`, `
|
|
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.",
|
|
3038
3038
|
"method": "GET",
|
|
3039
3039
|
"path": "/api/hosting/v1/onboardings",
|
|
3040
3040
|
"inputSchema": {
|
|
@@ -3070,7 +3070,7 @@ const tools: OpenApiTool[] = [
|
|
|
3070
3070
|
"readOnlyHint": false,
|
|
3071
3071
|
"destructiveHint": false
|
|
3072
3072
|
},
|
|
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 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.",
|
|
3074
3074
|
"method": "POST",
|
|
3075
3075
|
"path": "/api/hosting/v1/orders/{order_id}/onboardings",
|
|
3076
3076
|
"inputSchema": {
|
|
@@ -3082,9 +3082,10 @@ const tools: OpenApiTool[] = [
|
|
|
3082
3082
|
},
|
|
3083
3083
|
"type": {
|
|
3084
3084
|
"type": "string",
|
|
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_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`.",
|
|
3086
3086
|
"enum": [
|
|
3087
3087
|
"wordpress",
|
|
3088
|
+
"headless_empty",
|
|
3088
3089
|
"headless_wordpress",
|
|
3089
3090
|
"headless_ecommerce",
|
|
3090
3091
|
"headless_pocketbase"
|
|
@@ -3092,7 +3093,7 @@ const tools: OpenApiTool[] = [
|
|
|
3092
3093
|
},
|
|
3093
3094
|
"domain": {
|
|
3094
3095
|
"type": "string",
|
|
3095
|
-
"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."
|
|
3096
3097
|
},
|
|
3097
3098
|
"datacenter_code": {
|
|
3098
3099
|
"type": "string",
|
|
@@ -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",
|
|
@@ -392,7 +392,7 @@ const tools: OpenApiTool[] = [
|
|
|
392
392
|
"readOnlyHint": false,
|
|
393
393
|
"destructiveHint": false
|
|
394
394
|
},
|
|
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/
|
|
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.",
|
|
396
396
|
"method": "POST",
|
|
397
397
|
"path": "/api/hosting/v1/accounts/{username}/wordpress/installations",
|
|
398
398
|
"inputSchema": {
|
|
@@ -414,9 +414,17 @@ const tools: OpenApiTool[] = [
|
|
|
414
414
|
"type": "string",
|
|
415
415
|
"description": "WordPress locale. Defaults to en_US when omitted."
|
|
416
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
|
+
},
|
|
417
425
|
"directory": {
|
|
418
426
|
"type": "string",
|
|
419
|
-
"description": "
|
|
427
|
+
"description": "Installation subdirectory relative to the document root; omit for the root. Not allowed with `type: headless`, which always installs into `cms`."
|
|
420
428
|
},
|
|
421
429
|
"overwrite": {
|
|
422
430
|
"type": "boolean",
|
|
@@ -4,4 +4,4 @@ import { startServer } from '../core/runtime.js';
|
|
|
4
4
|
import tools from '../core/tools/agency-hosting.js';
|
|
5
5
|
import instructions from '../core/instructions.agency-hosting.js';
|
|
6
6
|
|
|
7
|
-
startServer({ name: 'hostinger-agency-hosting-mcp', version: '3.2.
|
|
7
|
+
startServer({ name: 'hostinger-agency-hosting-mcp', version: '3.2.1', tools, instructions });
|
|
@@ -4,4 +4,4 @@ import { startServer } from '../core/runtime.js';
|
|
|
4
4
|
import tools from '../core/tools/agency-hosting.js';
|
|
5
5
|
import instructions from '../core/instructions.agency-hosting.js';
|
|
6
6
|
|
|
7
|
-
startServer({ name: 'hostinger-agency-hosting-mcp', version: '3.2.
|
|
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.2.
|
|
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.2.
|
|
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.2.
|
|
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.2.
|
|
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
package/src/servers/horizons.ts
CHANGED
package/src/servers/hosting.js
CHANGED
|
@@ -4,4 +4,4 @@ import { startServer } from '../core/runtime.js';
|
|
|
4
4
|
import tools from '../core/tools/hosting.js';
|
|
5
5
|
import instructions from '../core/instructions.js';
|
|
6
6
|
|
|
7
|
-
startServer({ name: 'hostinger-hosting-mcp', version: '3.2.
|
|
7
|
+
startServer({ name: 'hostinger-hosting-mcp', version: '3.2.1', tools, instructions });
|
package/src/servers/hosting.ts
CHANGED
|
@@ -4,4 +4,4 @@ import { startServer } from '../core/runtime.js';
|
|
|
4
4
|
import tools from '../core/tools/hosting.js';
|
|
5
5
|
import instructions from '../core/instructions.js';
|
|
6
6
|
|
|
7
|
-
startServer({ name: 'hostinger-hosting-mcp', version: '3.2.
|
|
7
|
+
startServer({ name: 'hostinger-hosting-mcp', version: '3.2.1', tools, instructions });
|
package/src/servers/mail.js
CHANGED
package/src/servers/mail.ts
CHANGED
package/src/servers/reach.js
CHANGED
package/src/servers/reach.ts
CHANGED
package/src/servers/vps.js
CHANGED
package/src/servers/vps.ts
CHANGED
package/src/servers/wordpress.js
CHANGED
package/src/servers/wordpress.ts
CHANGED
package/types.d.ts
CHANGED
|
@@ -4957,8 +4957,9 @@ wait for `status: completed` before uploading files, deploying or creating datab
|
|
|
4957
4957
|
`failed` means the setup stopped before finishing or has not reported progress for
|
|
4958
4958
|
over an hour. Setups older than 24 hours are not listed.
|
|
4959
4959
|
|
|
4960
|
-
`type` is the website type the setup was started with (`wordpress`, `
|
|
4961
|
-
`headless_ecommerce`, `headless_pocketbase`), or `null` for an empty
|
|
4960
|
+
`type` is the website type the setup was started with (`wordpress`, `headless_empty`,
|
|
4961
|
+
`headless_wordpress`, `headless_ecommerce`, `headless_pocketbase`), or `null` for an empty
|
|
4962
|
+
website.
|
|
4962
4963
|
*/
|
|
4963
4964
|
"hosting_websites_list-setups": {
|
|
4964
4965
|
params: {
|
|
@@ -4981,17 +4982,25 @@ over an hour. Setups older than 24 hours are not listed.
|
|
|
4981
4982
|
/**
|
|
4982
4983
|
* Starts a website setup on a Web or Cloud hosting order and returns the created setup
|
|
4983
4984
|
right away; the website itself is provisioned asynchronously. Poll the list website
|
|
4984
|
-
setups endpoint with the `domain` filter every 10 to 15
|
|
4985
|
-
`status: completed` before uploading files, deploying or creating
|
|
4985
|
+
setups endpoint (`hosting_websites_list-setups`) with the `domain` filter every 10 to 15
|
|
4986
|
+
seconds and wait for `status: completed` before uploading files, deploying or creating
|
|
4987
|
+
databases.
|
|
4986
4988
|
|
|
4987
4989
|
Omit `type` for an empty website. `type: wordpress` installs WordPress in the website
|
|
4988
4990
|
root with the admin user, email and password from `wordpress`, the domain as the site
|
|
4989
4991
|
title, and `en_US` when `wordpress.language` is omitted. The headless types
|
|
4990
|
-
(`headless_wordpress`, `headless_ecommerce`, `headless_pocketbase`)
|
|
4991
|
-
website; `headless_wordpress` additionally installs WordPress into the
|
|
4992
|
-
of the website root with generated credentials.
|
|
4993
|
-
|
|
4994
|
-
|
|
4992
|
+
(`headless_empty`, `headless_wordpress`, `headless_ecommerce`, `headless_pocketbase`)
|
|
4993
|
+
create a headless website; `headless_wordpress` additionally installs WordPress into the
|
|
4994
|
+
`cms` directory of the website root with generated credentials. `headless_empty` installs
|
|
4995
|
+
nothing: WordPress can be added later through
|
|
4996
|
+
`POST /api/hosting/v1/accounts/{username}/wordpress/installations`
|
|
4997
|
+
(`wordpress_installations_install`) with `type: headless`.
|
|
4998
|
+
|
|
4999
|
+
Omit `domain` to set the website up on a generated temporary free subdomain. To know the
|
|
5000
|
+
free subdomain before the call, so a timed-out call can be looked up and retried on the
|
|
5001
|
+
same domain, generate one through `POST /api/hosting/v1/domains/free-subdomains`
|
|
5002
|
+
(`hosting_domains_generate-free-subdomain`) and send it as `domain`. It is accepted for
|
|
5003
|
+
24 hours, only from the client that generated it.
|
|
4995
5004
|
|
|
4996
5005
|
When the order has no hosting account yet, the setup creates one first, in the datacenter
|
|
4997
5006
|
given by `datacenter_code` or the order's default datacenter when it is omitted.
|
|
@@ -5006,11 +5015,11 @@ running.
|
|
|
5006
5015
|
*/
|
|
5007
5016
|
order_id: number;
|
|
5008
5017
|
/**
|
|
5009
|
-
* 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.
|
|
5018
|
+
* 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`.
|
|
5010
5019
|
*/
|
|
5011
5020
|
type?: string;
|
|
5012
5021
|
/**
|
|
5013
|
-
* 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.
|
|
5022
|
+
* 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.
|
|
5014
5023
|
*/
|
|
5015
5024
|
domain?: string;
|
|
5016
5025
|
/**
|
|
@@ -9666,19 +9675,29 @@ database files that have been uploaded to the website's directory.
|
|
|
9666
9675
|
* Install WordPress on an existing website.
|
|
9667
9676
|
|
|
9668
9677
|
The website must already exist before calling this endpoint. To create a new
|
|
9669
|
-
website first, use POST /api/hosting/v1/
|
|
9670
|
-
GET /api/hosting/v1/
|
|
9671
|
-
|
|
9672
|
-
|
|
9673
|
-
|
|
9674
|
-
|
|
9675
|
-
|
|
9678
|
+
website first, use POST /api/hosting/v1/orders/{order_id}/onboardings
|
|
9679
|
+
(`hosting_websites_start-setup`) and poll GET /api/hosting/v1/onboardings
|
|
9680
|
+
(`hosting_websites_list-setups`) with the `domain` filter until its `status` is
|
|
9681
|
+
`completed`.
|
|
9682
|
+
|
|
9683
|
+
Send `type: headless` to turn a headless website (for example one created by
|
|
9684
|
+
`hosting_websites_start-setup` with `type: headless_empty`) into a headless WordPress
|
|
9685
|
+
website: WordPress is installed into the `cms` directory with the Hostinger headless
|
|
9686
|
+
MU plugin and the website is marked as a headless WordPress website. `directory` is
|
|
9687
|
+
not allowed with it. The target website must already be headless: the headless
|
|
9688
|
+
install rewrites the root `.htaccess`, so on any other website the request is
|
|
9689
|
+
rejected with 422.
|
|
9690
|
+
|
|
9691
|
+
Call GET /api/hosting/v1/wordpress/installations (`wordpress_installations_list`)
|
|
9692
|
+
filtered by username and domain before proceeding to check whether WordPress is
|
|
9693
|
+
already installed on the target domain/path. If WordPress already exists and
|
|
9694
|
+
`overwrite` is false (the default), the async job will fail.
|
|
9676
9695
|
|
|
9677
9696
|
This operation is asynchronous: a successful response only means the install
|
|
9678
9697
|
job has been queued, not that WordPress is ready. Installation typically
|
|
9679
|
-
takes 1-2 minutes. Poll GET /api/hosting/v1/wordpress/installations
|
|
9680
|
-
by username and domain to track
|
|
9681
|
-
that list, WordPress is ready.
|
|
9698
|
+
takes 1-2 minutes. Poll GET /api/hosting/v1/wordpress/installations
|
|
9699
|
+
(`wordpress_installations_list`) filtered by username and domain to track
|
|
9700
|
+
progress. When the installation appears in that list, WordPress is ready.
|
|
9682
9701
|
|
|
9683
9702
|
Returns 422 when the account already uses all the databases its plan allows,
|
|
9684
9703
|
unless `database.name` is an existing database on the account.
|
|
@@ -9702,7 +9721,11 @@ unless `database.name` is an existing database on the account.
|
|
|
9702
9721
|
*/
|
|
9703
9722
|
language?: string;
|
|
9704
9723
|
/**
|
|
9705
|
-
*
|
|
9724
|
+
* 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.
|
|
9725
|
+
*/
|
|
9726
|
+
type?: string;
|
|
9727
|
+
/**
|
|
9728
|
+
* Installation subdirectory relative to the document root; omit for the root. Not allowed with `type: headless`, which always installs into `cms`.
|
|
9706
9729
|
*/
|
|
9707
9730
|
directory?: string;
|
|
9708
9731
|
/**
|