@hostinger/mcp 2.18.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,19 @@ 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.0.0 — 2026-10-15
8
+
9
+ ### Operations
10
+
11
+ - Added `wordpress_ai-content_generation-result` — Get generation result
12
+ - Changed the description of `wordpress_ai-content_generate-images`
13
+
14
+ ### Also in this release
15
+
16
+ - Documentation: `README.md`
17
+ - Request handling and authentication: `src/core/runtime.js`, `src/core/runtime.ts`
18
+ - Build and packaging: `types.d.ts`
19
+
7
20
  ## v2.18.0 — 2026-10-15
8
21
 
9
22
  ### Operations
package/README.md CHANGED
@@ -69,7 +69,7 @@ pnpm update -g @hostinger/mcp
69
69
 
70
70
  This package installs the following MCP server commands:
71
71
 
72
- - `hostinger-api-mcp` — unified server over every operation (420 total)
72
+ - `hostinger-api-mcp` — unified server over every operation (421 total)
73
73
  - `hostinger-agency-hosting-mcp` — 42 operations for agency-hosting
74
74
  - `hostinger-agent-readiness-mcp` — 3 operations for agent-readiness
75
75
  - `hostinger-billing-mcp` — 9 operations for billing
@@ -81,7 +81,7 @@ This package installs the following MCP server commands:
81
81
  - `hostinger-mail-mcp` — 38 operations for mail
82
82
  - `hostinger-reach-mcp` — 56 operations for reach
83
83
  - `hostinger-vps-mcp` — 67 operations for vps
84
- - `hostinger-wordpress-mcp` — 39 operations for wordpress
84
+ - `hostinger-wordpress-mcp` — 40 operations for wordpress
85
85
 
86
86
  Every binary exposes the same three tools; a scoped binary only searches and executes its own group's operations. `hostinger-api-mcp` remains the backwards-compatible default.
87
87
 
@@ -4640,13 +4640,20 @@ Use this endpoint to power off running VPS instances.
4640
4640
 
4641
4641
  #### wordpress_ai-content_generate-images
4642
4642
 
4643
- Generate one or more images from a prompt and an image type for the specified
4644
- WordPress installation. Images are returned inline as base64-encoded PNGs. They match
4645
- the requested aspect ratio and are never smaller than the requested size; logos are
4646
- transparent PNGs cropped to the mark.
4643
+ Start generating one or more images from a prompt and an image type for the specified
4644
+ WordPress installation. The generation runs asynchronously: the response is returned
4645
+ right away with `status: in-progress` and a `generation_id`. Poll
4646
+ GET /api/hosting/v1/accounts/{username}/wordpress/{software}/content/generations/{generation_id}
4647
+ every few seconds until `status` is `completed` or `failed`.
4647
4648
 
4648
- Generation is synchronous and can take up to a minute. The endpoint is limited to
4649
- 10 requests per minute.
4649
+ A completed generation returns temporary image URLs together with the time they expire;
4650
+ download the images before then. Images match the requested aspect ratio and are never
4651
+ smaller than the requested size; logos are transparent images cropped to the mark.
4652
+
4653
+ Only one image generation can run per installation at a time: while one is still in
4654
+ progress the endpoint returns 409 without the ID of the running generation, so a caller
4655
+ that did not receive the `202` has to wait for it to finish (up to a few minutes) before
4656
+ starting a new one. The endpoint is limited to 10 requests per minute.
4650
4657
 
4651
4658
  Provide the WordPress installation (software) identifier in the path. It can
4652
4659
  be obtained from GET /api/hosting/v1/wordpress/installations (the `id` field).
@@ -4654,6 +4661,25 @@ be obtained from GET /api/hosting/v1/wordpress/installations (the `id` field).
4654
4661
  - **Method**: `POST`
4655
4662
  - **Path**: `/api/hosting/v1/accounts/{username}/wordpress/{software}/content/images/generate`
4656
4663
 
4664
+ #### wordpress_ai-content_generation-result
4665
+
4666
+ Get the result of an AI content generation started for the specified WordPress
4667
+ installation, such as an image generation started with
4668
+ POST /api/hosting/v1/accounts/{username}/wordpress/{software}/content/images/generate.
4669
+
4670
+ While the generation is still running only `status: in-progress` is returned; poll every
4671
+ few seconds. Once `completed`, `result` holds the generated content shaped according to
4672
+ `type`: temporary image URLs together with the time they expire for `image-generation`, or
4673
+ the generated website document for `website-generation` (started from the Hostinger
4674
+ WordPress plugin). A `failed` generation has no `result`. Unknown or expired generation
4675
+ IDs return 404.
4676
+
4677
+ Provide the WordPress installation (software) identifier in the path. It can
4678
+ be obtained from GET /api/hosting/v1/wordpress/installations (the `id` field).
4679
+
4680
+ - **Method**: `GET`
4681
+ - **Path**: `/api/hosting/v1/accounts/{username}/wordpress/{software}/content/generations/{generation_id}`
4682
+
4657
4683
  #### wordpress_ai-tools_show-option-status
4658
4684
 
4659
4685
  Show the current AI option status for the Hostinger Tools plugin on the
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hostinger-api-mcp",
3
- "version": "2.18.0",
3
+ "version": "3.0.0",
4
4
  "description": "Hostinger API — manage domains, DNS, hosting, VPS, billing and more from Gemini CLI.",
5
5
  "mcpServers": {
6
6
  "hostinger": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hostinger/mcp",
3
- "version": "2.18.0",
3
+ "version": "3.0.0",
4
4
  "mcpName": "io.github.hostinger/hostinger-api-mcp",
5
5
  "description": "MCP server for Hostinger API",
6
6
  "repository": {
package/server.json CHANGED
@@ -6,12 +6,12 @@
6
6
  "url": "https://github.com/hostinger/api-mcp-server",
7
7
  "source": "github"
8
8
  },
9
- "version": "2.18.0",
9
+ "version": "3.0.0",
10
10
  "packages": [
11
11
  {
12
12
  "registryType": "npm",
13
13
  "identifier": "@hostinger/mcp",
14
- "version": "2.18.0",
14
+ "version": "3.0.0",
15
15
  "transport": {
16
16
  "type": "stdio"
17
17
  },
@@ -64,7 +64,7 @@ const GetSkillRequestSchema = z.object({
64
64
 
65
65
  /**
66
66
  * MCP Server for Hostinger API
67
- * Generated from OpenAPI spec version 1.68.0
67
+ * Generated from OpenAPI spec version 2.0.0
68
68
  */
69
69
  class MCPServer {
70
70
  constructor({ name, version, tools, instructions, skills = [] }) {
@@ -94,7 +94,7 @@ interface Skill { uri: string; frontmatter: Record<string, unknown>; resources:
94
94
 
95
95
  /**
96
96
  * MCP Server for Hostinger API
97
- * Generated from OpenAPI spec version 1.68.0
97
+ * Generated from OpenAPI spec version 2.0.0
98
98
  */
99
99
  class MCPServer {
100
100
  private readonly name: string;
@@ -15963,7 +15963,7 @@ export default [
15963
15963
  "readOnlyHint": false,
15964
15964
  "destructiveHint": false
15965
15965
  },
15966
- "description": "Generate one or more images from a prompt and an image type for the specified\nWordPress installation. Images are returned inline as base64-encoded PNGs. They match\nthe requested aspect ratio and are never smaller than the requested size; logos are\ntransparent PNGs cropped to the mark.\n\nGeneration is synchronous and can take up to a minute. The endpoint is limited to\n10 requests per minute.\n\nProvide the WordPress installation (software) identifier in the path. It can\nbe obtained from GET /api/hosting/v1/wordpress/installations (the `id` field).",
15966
+ "description": "Start generating one or more images from a prompt and an image type for the specified\nWordPress installation. The generation runs asynchronously: the response is returned\nright away with `status: in-progress` and a `generation_id`. Poll\nGET /api/hosting/v1/accounts/{username}/wordpress/{software}/content/generations/{generation_id}\nevery few seconds until `status` is `completed` or `failed`.\n\nA completed generation returns temporary image URLs together with the time they expire;\ndownload the images before then. Images match the requested aspect ratio and are never\nsmaller than the requested size; logos are transparent images cropped to the mark.\n\nOnly one image generation can run per installation at a time: while one is still in\nprogress the endpoint returns 409 without the ID of the running generation, so a caller\nthat did not receive the `202` has to wait for it to finish (up to a few minutes) before\nstarting a new one. The endpoint is limited to 10 requests per minute.\n\nProvide the WordPress installation (software) identifier in the path. It can\nbe obtained from GET /api/hosting/v1/wordpress/installations (the `id` field).",
15967
15967
  "method": "POST",
15968
15968
  "path": "/api/hosting/v1/accounts/{username}/wordpress/{software}/content/images/generate",
15969
15969
  "inputSchema": {
@@ -16028,6 +16028,54 @@ export default [
16028
16028
  ],
16029
16029
  "group": "wordpress"
16030
16030
  },
16031
+ {
16032
+ "name": "wordpress_ai-content_generation-result",
16033
+ "title": "Get generation result",
16034
+ "annotations": {
16035
+ "title": "Get generation result",
16036
+ "readOnlyHint": true,
16037
+ "destructiveHint": false
16038
+ },
16039
+ "description": "Get the result of an AI content generation started for the specified WordPress\ninstallation, such as an image generation started with\nPOST /api/hosting/v1/accounts/{username}/wordpress/{software}/content/images/generate.\n\nWhile the generation is still running only `status: in-progress` is returned; poll every\nfew seconds. Once `completed`, `result` holds the generated content shaped according to\n`type`: temporary image URLs together with the time they expire for `image-generation`, or\nthe generated website document for `website-generation` (started from the Hostinger\nWordPress plugin). A `failed` generation has no `result`. Unknown or expired generation\nIDs return 404.\n\nProvide the WordPress installation (software) identifier in the path. It can\nbe obtained from GET /api/hosting/v1/wordpress/installations (the `id` field).",
16040
+ "method": "GET",
16041
+ "path": "/api/hosting/v1/accounts/{username}/wordpress/{software}/content/generations/{generation_id}",
16042
+ "inputSchema": {
16043
+ "type": "object",
16044
+ "properties": {
16045
+ "username": {
16046
+ "type": "string",
16047
+ "description": "username parameter"
16048
+ },
16049
+ "software": {
16050
+ "type": "string",
16051
+ "description": "WordPress installation (software) identifier"
16052
+ },
16053
+ "generation_id": {
16054
+ "type": "string",
16055
+ "description": "Generation ID returned when the generation was started"
16056
+ },
16057
+ "type": {
16058
+ "type": "string",
16059
+ "description": "Generation type to look up. When omitted, every generation type is checked.",
16060
+ "enum": [
16061
+ "website-generation",
16062
+ "image-generation"
16063
+ ]
16064
+ }
16065
+ },
16066
+ "required": [
16067
+ "username",
16068
+ "software",
16069
+ "generation_id"
16070
+ ]
16071
+ },
16072
+ "security": [
16073
+ {
16074
+ "apiToken": []
16075
+ }
16076
+ ],
16077
+ "group": "wordpress"
16078
+ },
16031
16079
  {
16032
16080
  "name": "wordpress_ai-tools_show-option-status",
16033
16081
  "title": "Show AI option status",
@@ -15977,7 +15977,7 @@ const tools: OpenApiTool[] = [
15977
15977
  "readOnlyHint": false,
15978
15978
  "destructiveHint": false
15979
15979
  },
15980
- "description": "Generate one or more images from a prompt and an image type for the specified\nWordPress installation. Images are returned inline as base64-encoded PNGs. They match\nthe requested aspect ratio and are never smaller than the requested size; logos are\ntransparent PNGs cropped to the mark.\n\nGeneration is synchronous and can take up to a minute. The endpoint is limited to\n10 requests per minute.\n\nProvide the WordPress installation (software) identifier in the path. It can\nbe obtained from GET /api/hosting/v1/wordpress/installations (the `id` field).",
15980
+ "description": "Start generating one or more images from a prompt and an image type for the specified\nWordPress installation. The generation runs asynchronously: the response is returned\nright away with `status: in-progress` and a `generation_id`. Poll\nGET /api/hosting/v1/accounts/{username}/wordpress/{software}/content/generations/{generation_id}\nevery few seconds until `status` is `completed` or `failed`.\n\nA completed generation returns temporary image URLs together with the time they expire;\ndownload the images before then. Images match the requested aspect ratio and are never\nsmaller than the requested size; logos are transparent images cropped to the mark.\n\nOnly one image generation can run per installation at a time: while one is still in\nprogress the endpoint returns 409 without the ID of the running generation, so a caller\nthat did not receive the `202` has to wait for it to finish (up to a few minutes) before\nstarting a new one. The endpoint is limited to 10 requests per minute.\n\nProvide the WordPress installation (software) identifier in the path. It can\nbe obtained from GET /api/hosting/v1/wordpress/installations (the `id` field).",
15981
15981
  "method": "POST",
15982
15982
  "path": "/api/hosting/v1/accounts/{username}/wordpress/{software}/content/images/generate",
15983
15983
  "inputSchema": {
@@ -16042,6 +16042,54 @@ const tools: OpenApiTool[] = [
16042
16042
  ],
16043
16043
  "group": "wordpress"
16044
16044
  },
16045
+ {
16046
+ "name": "wordpress_ai-content_generation-result",
16047
+ "title": "Get generation result",
16048
+ "annotations": {
16049
+ "title": "Get generation result",
16050
+ "readOnlyHint": true,
16051
+ "destructiveHint": false
16052
+ },
16053
+ "description": "Get the result of an AI content generation started for the specified WordPress\ninstallation, such as an image generation started with\nPOST /api/hosting/v1/accounts/{username}/wordpress/{software}/content/images/generate.\n\nWhile the generation is still running only `status: in-progress` is returned; poll every\nfew seconds. Once `completed`, `result` holds the generated content shaped according to\n`type`: temporary image URLs together with the time they expire for `image-generation`, or\nthe generated website document for `website-generation` (started from the Hostinger\nWordPress plugin). A `failed` generation has no `result`. Unknown or expired generation\nIDs return 404.\n\nProvide the WordPress installation (software) identifier in the path. It can\nbe obtained from GET /api/hosting/v1/wordpress/installations (the `id` field).",
16054
+ "method": "GET",
16055
+ "path": "/api/hosting/v1/accounts/{username}/wordpress/{software}/content/generations/{generation_id}",
16056
+ "inputSchema": {
16057
+ "type": "object",
16058
+ "properties": {
16059
+ "username": {
16060
+ "type": "string",
16061
+ "description": "username parameter"
16062
+ },
16063
+ "software": {
16064
+ "type": "string",
16065
+ "description": "WordPress installation (software) identifier"
16066
+ },
16067
+ "generation_id": {
16068
+ "type": "string",
16069
+ "description": "Generation ID returned when the generation was started"
16070
+ },
16071
+ "type": {
16072
+ "type": "string",
16073
+ "description": "Generation type to look up. When omitted, every generation type is checked.",
16074
+ "enum": [
16075
+ "website-generation",
16076
+ "image-generation"
16077
+ ]
16078
+ }
16079
+ },
16080
+ "required": [
16081
+ "username",
16082
+ "software",
16083
+ "generation_id"
16084
+ ]
16085
+ },
16086
+ "security": [
16087
+ {
16088
+ "apiToken": []
16089
+ }
16090
+ ],
16091
+ "group": "wordpress"
16092
+ },
16045
16093
  {
16046
16094
  "name": "wordpress_ai-tools_show-option-status",
16047
16095
  "title": "Show AI option status",
@@ -8,7 +8,7 @@ export default [
8
8
  "readOnlyHint": false,
9
9
  "destructiveHint": false
10
10
  },
11
- "description": "Generate one or more images from a prompt and an image type for the specified\nWordPress installation. Images are returned inline as base64-encoded PNGs. They match\nthe requested aspect ratio and are never smaller than the requested size; logos are\ntransparent PNGs cropped to the mark.\n\nGeneration is synchronous and can take up to a minute. The endpoint is limited to\n10 requests per minute.\n\nProvide the WordPress installation (software) identifier in the path. It can\nbe obtained from GET /api/hosting/v1/wordpress/installations (the `id` field).",
11
+ "description": "Start generating one or more images from a prompt and an image type for the specified\nWordPress installation. The generation runs asynchronously: the response is returned\nright away with `status: in-progress` and a `generation_id`. Poll\nGET /api/hosting/v1/accounts/{username}/wordpress/{software}/content/generations/{generation_id}\nevery few seconds until `status` is `completed` or `failed`.\n\nA completed generation returns temporary image URLs together with the time they expire;\ndownload the images before then. Images match the requested aspect ratio and are never\nsmaller than the requested size; logos are transparent images cropped to the mark.\n\nOnly one image generation can run per installation at a time: while one is still in\nprogress the endpoint returns 409 without the ID of the running generation, so a caller\nthat did not receive the `202` has to wait for it to finish (up to a few minutes) before\nstarting a new one. The endpoint is limited to 10 requests per minute.\n\nProvide the WordPress installation (software) identifier in the path. It can\nbe obtained from GET /api/hosting/v1/wordpress/installations (the `id` field).",
12
12
  "method": "POST",
13
13
  "path": "/api/hosting/v1/accounts/{username}/wordpress/{software}/content/images/generate",
14
14
  "inputSchema": {
@@ -73,6 +73,54 @@ export default [
73
73
  ],
74
74
  "group": "wordpress"
75
75
  },
76
+ {
77
+ "name": "wordpress_ai-content_generation-result",
78
+ "title": "Get generation result",
79
+ "annotations": {
80
+ "title": "Get generation result",
81
+ "readOnlyHint": true,
82
+ "destructiveHint": false
83
+ },
84
+ "description": "Get the result of an AI content generation started for the specified WordPress\ninstallation, such as an image generation started with\nPOST /api/hosting/v1/accounts/{username}/wordpress/{software}/content/images/generate.\n\nWhile the generation is still running only `status: in-progress` is returned; poll every\nfew seconds. Once `completed`, `result` holds the generated content shaped according to\n`type`: temporary image URLs together with the time they expire for `image-generation`, or\nthe generated website document for `website-generation` (started from the Hostinger\nWordPress plugin). A `failed` generation has no `result`. Unknown or expired generation\nIDs return 404.\n\nProvide the WordPress installation (software) identifier in the path. It can\nbe obtained from GET /api/hosting/v1/wordpress/installations (the `id` field).",
85
+ "method": "GET",
86
+ "path": "/api/hosting/v1/accounts/{username}/wordpress/{software}/content/generations/{generation_id}",
87
+ "inputSchema": {
88
+ "type": "object",
89
+ "properties": {
90
+ "username": {
91
+ "type": "string",
92
+ "description": "username parameter"
93
+ },
94
+ "software": {
95
+ "type": "string",
96
+ "description": "WordPress installation (software) identifier"
97
+ },
98
+ "generation_id": {
99
+ "type": "string",
100
+ "description": "Generation ID returned when the generation was started"
101
+ },
102
+ "type": {
103
+ "type": "string",
104
+ "description": "Generation type to look up. When omitted, every generation type is checked.",
105
+ "enum": [
106
+ "website-generation",
107
+ "image-generation"
108
+ ]
109
+ }
110
+ },
111
+ "required": [
112
+ "username",
113
+ "software",
114
+ "generation_id"
115
+ ]
116
+ },
117
+ "security": [
118
+ {
119
+ "apiToken": []
120
+ }
121
+ ],
122
+ "group": "wordpress"
123
+ },
76
124
  {
77
125
  "name": "wordpress_ai-tools_show-option-status",
78
126
  "title": "Show AI option status",
@@ -22,7 +22,7 @@ const tools: OpenApiTool[] = [
22
22
  "readOnlyHint": false,
23
23
  "destructiveHint": false
24
24
  },
25
- "description": "Generate one or more images from a prompt and an image type for the specified\nWordPress installation. Images are returned inline as base64-encoded PNGs. They match\nthe requested aspect ratio and are never smaller than the requested size; logos are\ntransparent PNGs cropped to the mark.\n\nGeneration is synchronous and can take up to a minute. The endpoint is limited to\n10 requests per minute.\n\nProvide the WordPress installation (software) identifier in the path. It can\nbe obtained from GET /api/hosting/v1/wordpress/installations (the `id` field).",
25
+ "description": "Start generating one or more images from a prompt and an image type for the specified\nWordPress installation. The generation runs asynchronously: the response is returned\nright away with `status: in-progress` and a `generation_id`. Poll\nGET /api/hosting/v1/accounts/{username}/wordpress/{software}/content/generations/{generation_id}\nevery few seconds until `status` is `completed` or `failed`.\n\nA completed generation returns temporary image URLs together with the time they expire;\ndownload the images before then. Images match the requested aspect ratio and are never\nsmaller than the requested size; logos are transparent images cropped to the mark.\n\nOnly one image generation can run per installation at a time: while one is still in\nprogress the endpoint returns 409 without the ID of the running generation, so a caller\nthat did not receive the `202` has to wait for it to finish (up to a few minutes) before\nstarting a new one. The endpoint is limited to 10 requests per minute.\n\nProvide the WordPress installation (software) identifier in the path. It can\nbe obtained from GET /api/hosting/v1/wordpress/installations (the `id` field).",
26
26
  "method": "POST",
27
27
  "path": "/api/hosting/v1/accounts/{username}/wordpress/{software}/content/images/generate",
28
28
  "inputSchema": {
@@ -87,6 +87,54 @@ const tools: OpenApiTool[] = [
87
87
  ],
88
88
  "group": "wordpress"
89
89
  },
90
+ {
91
+ "name": "wordpress_ai-content_generation-result",
92
+ "title": "Get generation result",
93
+ "annotations": {
94
+ "title": "Get generation result",
95
+ "readOnlyHint": true,
96
+ "destructiveHint": false
97
+ },
98
+ "description": "Get the result of an AI content generation started for the specified WordPress\ninstallation, such as an image generation started with\nPOST /api/hosting/v1/accounts/{username}/wordpress/{software}/content/images/generate.\n\nWhile the generation is still running only `status: in-progress` is returned; poll every\nfew seconds. Once `completed`, `result` holds the generated content shaped according to\n`type`: temporary image URLs together with the time they expire for `image-generation`, or\nthe generated website document for `website-generation` (started from the Hostinger\nWordPress plugin). A `failed` generation has no `result`. Unknown or expired generation\nIDs return 404.\n\nProvide the WordPress installation (software) identifier in the path. It can\nbe obtained from GET /api/hosting/v1/wordpress/installations (the `id` field).",
99
+ "method": "GET",
100
+ "path": "/api/hosting/v1/accounts/{username}/wordpress/{software}/content/generations/{generation_id}",
101
+ "inputSchema": {
102
+ "type": "object",
103
+ "properties": {
104
+ "username": {
105
+ "type": "string",
106
+ "description": "username parameter"
107
+ },
108
+ "software": {
109
+ "type": "string",
110
+ "description": "WordPress installation (software) identifier"
111
+ },
112
+ "generation_id": {
113
+ "type": "string",
114
+ "description": "Generation ID returned when the generation was started"
115
+ },
116
+ "type": {
117
+ "type": "string",
118
+ "description": "Generation type to look up. When omitted, every generation type is checked.",
119
+ "enum": [
120
+ "website-generation",
121
+ "image-generation"
122
+ ]
123
+ }
124
+ },
125
+ "required": [
126
+ "username",
127
+ "software",
128
+ "generation_id"
129
+ ]
130
+ },
131
+ "security": [
132
+ {
133
+ "apiToken": []
134
+ }
135
+ ],
136
+ "group": "wordpress"
137
+ },
90
138
  {
91
139
  "name": "wordpress_ai-tools_show-option-status",
92
140
  "title": "Show AI option status",
@@ -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.js';
6
6
 
7
- startServer({ name: 'hostinger-agency-hosting-mcp', version: '2.18.0', tools, instructions });
7
+ startServer({ name: 'hostinger-agency-hosting-mcp', version: '3.0.0', 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.js';
6
6
 
7
- startServer({ name: 'hostinger-agency-hosting-mcp', version: '2.18.0', tools, instructions });
7
+ startServer({ name: 'hostinger-agency-hosting-mcp', version: '3.0.0', 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: '2.18.0', tools });
6
+ startServer({ name: 'hostinger-agent-readiness-mcp', version: '3.0.0', 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: '2.18.0', tools });
6
+ startServer({ name: 'hostinger-agent-readiness-mcp', version: '3.0.0', tools });
@@ -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: '2.18.0', tools, instructions, skills });
8
+ startServer({ name: 'hostinger-api-mcp', version: '3.0.0', tools, instructions, skills });
@@ -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: '2.18.0', tools, instructions, skills });
8
+ startServer({ name: 'hostinger-api-mcp', version: '3.0.0', tools, instructions, skills });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/billing.js';
5
5
 
6
- startServer({ name: 'hostinger-billing-mcp', version: '2.18.0', tools });
6
+ startServer({ name: 'hostinger-billing-mcp', version: '3.0.0', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/billing.js';
5
5
 
6
- startServer({ name: 'hostinger-billing-mcp', version: '2.18.0', tools });
6
+ startServer({ name: 'hostinger-billing-mcp', version: '3.0.0', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/dns.js';
5
5
 
6
- startServer({ name: 'hostinger-dns-mcp', version: '2.18.0', tools });
6
+ startServer({ name: 'hostinger-dns-mcp', version: '3.0.0', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/dns.js';
5
5
 
6
- startServer({ name: 'hostinger-dns-mcp', version: '2.18.0', tools });
6
+ startServer({ name: 'hostinger-dns-mcp', version: '3.0.0', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/domains.js';
5
5
 
6
- startServer({ name: 'hostinger-domains-mcp', version: '2.18.0', tools });
6
+ startServer({ name: 'hostinger-domains-mcp', version: '3.0.0', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/domains.js';
5
5
 
6
- startServer({ name: 'hostinger-domains-mcp', version: '2.18.0', tools });
6
+ startServer({ name: 'hostinger-domains-mcp', version: '3.0.0', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/ecommerce.js';
5
5
 
6
- startServer({ name: 'hostinger-ecommerce-mcp', version: '2.18.0', tools });
6
+ startServer({ name: 'hostinger-ecommerce-mcp', version: '3.0.0', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/ecommerce.js';
5
5
 
6
- startServer({ name: 'hostinger-ecommerce-mcp', version: '2.18.0', tools });
6
+ startServer({ name: 'hostinger-ecommerce-mcp', version: '3.0.0', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/horizons.js';
5
5
 
6
- startServer({ name: 'hostinger-horizons-mcp', version: '2.18.0', tools });
6
+ startServer({ name: 'hostinger-horizons-mcp', version: '3.0.0', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/horizons.js';
5
5
 
6
- startServer({ name: 'hostinger-horizons-mcp', version: '2.18.0', tools });
6
+ startServer({ name: 'hostinger-horizons-mcp', version: '3.0.0', tools });
@@ -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: '2.18.0', tools, instructions });
7
+ startServer({ name: 'hostinger-hosting-mcp', version: '3.0.0', tools, instructions });
@@ -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: '2.18.0', tools, instructions });
7
+ startServer({ name: 'hostinger-hosting-mcp', version: '3.0.0', tools, instructions });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/mail.js';
5
5
 
6
- startServer({ name: 'hostinger-mail-mcp', version: '2.18.0', tools });
6
+ startServer({ name: 'hostinger-mail-mcp', version: '3.0.0', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/mail.js';
5
5
 
6
- startServer({ name: 'hostinger-mail-mcp', version: '2.18.0', tools });
6
+ startServer({ name: 'hostinger-mail-mcp', version: '3.0.0', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/reach.js';
5
5
 
6
- startServer({ name: 'hostinger-reach-mcp', version: '2.18.0', tools });
6
+ startServer({ name: 'hostinger-reach-mcp', version: '3.0.0', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/reach.js';
5
5
 
6
- startServer({ name: 'hostinger-reach-mcp', version: '2.18.0', tools });
6
+ startServer({ name: 'hostinger-reach-mcp', version: '3.0.0', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/vps.js';
5
5
 
6
- startServer({ name: 'hostinger-vps-mcp', version: '2.18.0', tools });
6
+ startServer({ name: 'hostinger-vps-mcp', version: '3.0.0', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/vps.js';
5
5
 
6
- startServer({ name: 'hostinger-vps-mcp', version: '2.18.0', tools });
6
+ startServer({ name: 'hostinger-vps-mcp', version: '3.0.0', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/wordpress.js';
5
5
 
6
- startServer({ name: 'hostinger-wordpress-mcp', version: '2.18.0', tools });
6
+ startServer({ name: 'hostinger-wordpress-mcp', version: '3.0.0', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/wordpress.js';
5
5
 
6
- startServer({ name: 'hostinger-wordpress-mcp', version: '2.18.0', tools });
6
+ startServer({ name: 'hostinger-wordpress-mcp', version: '3.0.0', tools });
package/types.d.ts CHANGED
@@ -9313,13 +9313,20 @@ Use this endpoint to power off running VPS instances.
9313
9313
  };
9314
9314
 
9315
9315
  /**
9316
- * Generate one or more images from a prompt and an image type for the specified
9317
- WordPress installation. Images are returned inline as base64-encoded PNGs. They match
9318
- the requested aspect ratio and are never smaller than the requested size; logos are
9319
- transparent PNGs cropped to the mark.
9316
+ * Start generating one or more images from a prompt and an image type for the specified
9317
+ WordPress installation. The generation runs asynchronously: the response is returned
9318
+ right away with `status: in-progress` and a `generation_id`. Poll
9319
+ GET /api/hosting/v1/accounts/{username}/wordpress/{software}/content/generations/{generation_id}
9320
+ every few seconds until `status` is `completed` or `failed`.
9320
9321
 
9321
- Generation is synchronous and can take up to a minute. The endpoint is limited to
9322
- 10 requests per minute.
9322
+ A completed generation returns temporary image URLs together with the time they expire;
9323
+ download the images before then. Images match the requested aspect ratio and are never
9324
+ smaller than the requested size; logos are transparent images cropped to the mark.
9325
+
9326
+ Only one image generation can run per installation at a time: while one is still in
9327
+ progress the endpoint returns 409 without the ID of the running generation, so a caller
9328
+ that did not receive the `202` has to wait for it to finish (up to a few minutes) before
9329
+ starting a new one. The endpoint is limited to 10 requests per minute.
9323
9330
 
9324
9331
  Provide the WordPress installation (software) identifier in the path. It can
9325
9332
  be obtained from GET /api/hosting/v1/wordpress/installations (the `id` field).
@@ -9366,6 +9373,43 @@ be obtained from GET /api/hosting/v1/wordpress/installations (the `id` field).
9366
9373
  response: any; // Response structure will depend on the API
9367
9374
  };
9368
9375
 
9376
+ /**
9377
+ * Get the result of an AI content generation started for the specified WordPress
9378
+ installation, such as an image generation started with
9379
+ POST /api/hosting/v1/accounts/{username}/wordpress/{software}/content/images/generate.
9380
+
9381
+ While the generation is still running only `status: in-progress` is returned; poll every
9382
+ few seconds. Once `completed`, `result` holds the generated content shaped according to
9383
+ `type`: temporary image URLs together with the time they expire for `image-generation`, or
9384
+ the generated website document for `website-generation` (started from the Hostinger
9385
+ WordPress plugin). A `failed` generation has no `result`. Unknown or expired generation
9386
+ IDs return 404.
9387
+
9388
+ Provide the WordPress installation (software) identifier in the path. It can
9389
+ be obtained from GET /api/hosting/v1/wordpress/installations (the `id` field).
9390
+ */
9391
+ "wordpress_ai-content_generation-result": {
9392
+ params: {
9393
+ /**
9394
+ * username parameter
9395
+ */
9396
+ username: string;
9397
+ /**
9398
+ * WordPress installation (software) identifier
9399
+ */
9400
+ software: string;
9401
+ /**
9402
+ * Generation ID returned when the generation was started
9403
+ */
9404
+ generation_id: string;
9405
+ /**
9406
+ * Generation type to look up. When omitted, every generation type is checked.
9407
+ */
9408
+ type?: string;
9409
+ };
9410
+ response: any; // Response structure will depend on the API
9411
+ };
9412
+
9369
9413
  /**
9370
9414
  * Show the current AI option status for the Hostinger Tools plugin on the
9371
9415
  specified WordPress installation. Filter by `option` to return a single