hostinger-api-mcp 1.36.0 → 1.37.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/README.md CHANGED
@@ -69,7 +69,7 @@ pnpm update -g hostinger-api-mcp
69
69
 
70
70
  This package installs the following MCP server commands:
71
71
 
72
- - `hostinger-api-mcp` — unified server with every tool (323 total)
72
+ - `hostinger-api-mcp` — unified server with every tool (326 total)
73
73
  - `hostinger-agency-hosting-mcp` — 27 tools for agency-hosting
74
74
  - `hostinger-billing-mcp` — 9 tools for billing
75
75
  - `hostinger-dns-mcp` — 8 tools for dns
@@ -78,7 +78,7 @@ This package installs the following MCP server commands:
78
78
  - `hostinger-horizons-mcp` — 2 tools for horizons
79
79
  - `hostinger-hosting-mcp` — 50 tools for hosting
80
80
  - `hostinger-mail-mcp` — 38 tools for mail
81
- - `hostinger-reach-mcp` — 38 tools for reach
81
+ - `hostinger-reach-mcp` — 41 tools for reach
82
82
  - `hostinger-vps-mcp` — 62 tools for vps
83
83
  - `hostinger-wordpress-mcp` — 35 tools for wordpress
84
84
 
@@ -2240,6 +2240,40 @@ steps yet returns an empty list.
2240
2240
  - **Method**: `GET`
2241
2241
  - **Path**: `/api/reach/v1/profiles/{profileUuid}/automations/{automationUuid}/steps`
2242
2242
 
2243
+ #### reach_getCampaignDetailsV1
2244
+
2245
+ Get a single campaign with its sender, subject, template reference, targeting and delivery
2246
+ progress.
2247
+
2248
+ This describes how the campaign was set up and how far it has got. For opens, clicks and
2249
+ unsubscribes use the campaign statistics endpoint.
2250
+
2251
+ - **Method**: `GET`
2252
+ - **Path**: `/api/reach/v1/profiles/{profileUuid}/campaigns/{campaignUuid}`
2253
+
2254
+ #### reach_listCampaignsV1
2255
+
2256
+ Get a paginated list of the campaigns in a profile.
2257
+
2258
+ Each campaign carries its headline engagement rates. Filter by status to find drafts,
2259
+ scheduled, sending or sent campaigns, keeping in mind that a fully sent campaign has the
2260
+ status `publish`. By default only regular campaigns are returned - pass `type` to get the
2261
+ emails sent by automations or the double opt-in confirmations instead.
2262
+
2263
+ - **Method**: `GET`
2264
+ - **Path**: `/api/reach/v1/profiles/{profileUuid}/campaigns`
2265
+
2266
+ #### reach_getCampaignPerformanceV1
2267
+
2268
+ Get the performance of a campaign: delivery, opens, clicks and unsubscribes, with the
2269
+ matching rates.
2270
+
2271
+ Every count is unique contacts rather than raw events, so a contact who opens the same email
2272
+ five times is counted once.
2273
+
2274
+ - **Method**: `GET`
2275
+ - **Path**: `/api/reach/v1/profiles/{profileUuid}/campaigns/{campaignUuid}/statistics`
2276
+
2243
2277
  #### reach_deleteAContactV1
2244
2278
 
2245
2279
  Delete a contact with the specified UUID.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hostinger-api-mcp",
3
- "version": "1.36.0",
3
+ "version": "1.37.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-api-mcp",
3
- "version": "1.36.0",
3
+ "version": "1.37.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": "1.36.0",
9
+ "version": "1.37.0",
10
10
  "packages": [
11
11
  {
12
12
  "registryType": "npm",
13
13
  "identifier": "hostinger-api-mcp",
14
- "version": "1.36.0",
14
+ "version": "1.37.0",
15
15
  "transport": {
16
16
  "type": "stdio"
17
17
  },
@@ -29,7 +29,7 @@ const SECURITY_SCHEMES = {
29
29
 
30
30
  /**
31
31
  * MCP Server for Hostinger API
32
- * Generated from OpenAPI spec version 1.33.0
32
+ * Generated from OpenAPI spec version 1.34.0
33
33
  */
34
34
  class MCPServer {
35
35
  constructor({ name, version, tools }) {
@@ -52,7 +52,7 @@ const SECURITY_SCHEMES: Record<string, SecurityScheme> = {
52
52
 
53
53
  /**
54
54
  * MCP Server for Hostinger API
55
- * Generated from OpenAPI spec version 1.33.0
55
+ * Generated from OpenAPI spec version 1.34.0
56
56
  */
57
57
  class MCPServer {
58
58
  private readonly name: string;
@@ -6507,6 +6507,124 @@ export default [
6507
6507
  ],
6508
6508
  "group": "reach"
6509
6509
  },
6510
+ {
6511
+ "name": "reach_getCampaignDetailsV1",
6512
+ "description": "Get a single campaign with its sender, subject, template reference, targeting and delivery\nprogress.\n\nThis describes how the campaign was set up and how far it has got. For opens, clicks and\nunsubscribes use the campaign statistics endpoint.",
6513
+ "method": "GET",
6514
+ "path": "/api/reach/v1/profiles/{profileUuid}/campaigns/{campaignUuid}",
6515
+ "inputSchema": {
6516
+ "type": "object",
6517
+ "properties": {
6518
+ "profileUuid": {
6519
+ "type": "string",
6520
+ "description": "Profile uuid parameter"
6521
+ },
6522
+ "campaignUuid": {
6523
+ "type": "string",
6524
+ "description": "Campaign uuid parameter"
6525
+ }
6526
+ },
6527
+ "required": [
6528
+ "profileUuid",
6529
+ "campaignUuid"
6530
+ ]
6531
+ },
6532
+ "security": [
6533
+ {
6534
+ "apiToken": []
6535
+ }
6536
+ ],
6537
+ "group": "reach"
6538
+ },
6539
+ {
6540
+ "name": "reach_listCampaignsV1",
6541
+ "description": "Get a paginated list of the campaigns in a profile.\n\nEach campaign carries its headline engagement rates. Filter by status to find drafts,\nscheduled, sending or sent campaigns, keeping in mind that a fully sent campaign has the\nstatus `publish`. By default only regular campaigns are returned - pass `type` to get the\nemails sent by automations or the double opt-in confirmations instead.",
6542
+ "method": "GET",
6543
+ "path": "/api/reach/v1/profiles/{profileUuid}/campaigns",
6544
+ "inputSchema": {
6545
+ "type": "object",
6546
+ "properties": {
6547
+ "profileUuid": {
6548
+ "type": "string",
6549
+ "description": "Profile uuid parameter"
6550
+ },
6551
+ "status": {
6552
+ "type": "string",
6553
+ "description": "Filter campaigns by status.\n\nA fully sent campaign has the status `publish`. There is no `sent` status, and campaigns can\nbe neither paused nor archived.",
6554
+ "enum": [
6555
+ "draft",
6556
+ "scheduled",
6557
+ "sending",
6558
+ "publish",
6559
+ "failed"
6560
+ ]
6561
+ },
6562
+ "type": {
6563
+ "type": "string",
6564
+ "description": "Filter campaigns by type.\n\nDefaults to `campaign`, which leaves out the emails sent by automations and the double\nopt-in confirmations.",
6565
+ "enum": [
6566
+ "campaign",
6567
+ "automation",
6568
+ "double_opt_in"
6569
+ ]
6570
+ },
6571
+ "sort_direction": {
6572
+ "type": "string",
6573
+ "description": "Order campaigns by creation date. Newest first unless set to `asc`.",
6574
+ "enum": [
6575
+ "asc",
6576
+ "desc"
6577
+ ]
6578
+ },
6579
+ "page": {
6580
+ "type": "integer",
6581
+ "description": "Page number"
6582
+ },
6583
+ "per_page": {
6584
+ "type": "integer",
6585
+ "description": "Number of items per page"
6586
+ }
6587
+ },
6588
+ "required": [
6589
+ "profileUuid"
6590
+ ]
6591
+ },
6592
+ "security": [
6593
+ {
6594
+ "apiToken": []
6595
+ }
6596
+ ],
6597
+ "group": "reach"
6598
+ },
6599
+ {
6600
+ "name": "reach_getCampaignPerformanceV1",
6601
+ "description": "Get the performance of a campaign: delivery, opens, clicks and unsubscribes, with the\nmatching rates.\n\nEvery count is unique contacts rather than raw events, so a contact who opens the same email\nfive times is counted once.",
6602
+ "method": "GET",
6603
+ "path": "/api/reach/v1/profiles/{profileUuid}/campaigns/{campaignUuid}/statistics",
6604
+ "inputSchema": {
6605
+ "type": "object",
6606
+ "properties": {
6607
+ "profileUuid": {
6608
+ "type": "string",
6609
+ "description": "Profile uuid parameter"
6610
+ },
6611
+ "campaignUuid": {
6612
+ "type": "string",
6613
+ "description": "Campaign uuid parameter"
6614
+ }
6615
+ },
6616
+ "required": [
6617
+ "profileUuid",
6618
+ "campaignUuid"
6619
+ ]
6620
+ },
6621
+ "security": [
6622
+ {
6623
+ "apiToken": []
6624
+ }
6625
+ ],
6626
+ "group": "reach"
6627
+ },
6510
6628
  {
6511
6629
  "name": "reach_deleteAContactV1",
6512
6630
  "description": "Delete a contact with the specified UUID.\n\nThis endpoint permanently removes a contact from the email marketing system.\n\n**Deprecated.** This endpoint cannot target a profile, so it always falls back to the\nclient's default profile and cannot delete contacts of any other profile. Use\n`DELETE /api/reach/v1/profiles/{profileUuid}/contacts/{contactUuid}` instead.",
@@ -6521,6 +6521,124 @@ const tools: OpenApiTool[] = [
6521
6521
  ],
6522
6522
  "group": "reach"
6523
6523
  },
6524
+ {
6525
+ "name": "reach_getCampaignDetailsV1",
6526
+ "description": "Get a single campaign with its sender, subject, template reference, targeting and delivery\nprogress.\n\nThis describes how the campaign was set up and how far it has got. For opens, clicks and\nunsubscribes use the campaign statistics endpoint.",
6527
+ "method": "GET",
6528
+ "path": "/api/reach/v1/profiles/{profileUuid}/campaigns/{campaignUuid}",
6529
+ "inputSchema": {
6530
+ "type": "object",
6531
+ "properties": {
6532
+ "profileUuid": {
6533
+ "type": "string",
6534
+ "description": "Profile uuid parameter"
6535
+ },
6536
+ "campaignUuid": {
6537
+ "type": "string",
6538
+ "description": "Campaign uuid parameter"
6539
+ }
6540
+ },
6541
+ "required": [
6542
+ "profileUuid",
6543
+ "campaignUuid"
6544
+ ]
6545
+ },
6546
+ "security": [
6547
+ {
6548
+ "apiToken": []
6549
+ }
6550
+ ],
6551
+ "group": "reach"
6552
+ },
6553
+ {
6554
+ "name": "reach_listCampaignsV1",
6555
+ "description": "Get a paginated list of the campaigns in a profile.\n\nEach campaign carries its headline engagement rates. Filter by status to find drafts,\nscheduled, sending or sent campaigns, keeping in mind that a fully sent campaign has the\nstatus `publish`. By default only regular campaigns are returned - pass `type` to get the\nemails sent by automations or the double opt-in confirmations instead.",
6556
+ "method": "GET",
6557
+ "path": "/api/reach/v1/profiles/{profileUuid}/campaigns",
6558
+ "inputSchema": {
6559
+ "type": "object",
6560
+ "properties": {
6561
+ "profileUuid": {
6562
+ "type": "string",
6563
+ "description": "Profile uuid parameter"
6564
+ },
6565
+ "status": {
6566
+ "type": "string",
6567
+ "description": "Filter campaigns by status.\n\nA fully sent campaign has the status `publish`. There is no `sent` status, and campaigns can\nbe neither paused nor archived.",
6568
+ "enum": [
6569
+ "draft",
6570
+ "scheduled",
6571
+ "sending",
6572
+ "publish",
6573
+ "failed"
6574
+ ]
6575
+ },
6576
+ "type": {
6577
+ "type": "string",
6578
+ "description": "Filter campaigns by type.\n\nDefaults to `campaign`, which leaves out the emails sent by automations and the double\nopt-in confirmations.",
6579
+ "enum": [
6580
+ "campaign",
6581
+ "automation",
6582
+ "double_opt_in"
6583
+ ]
6584
+ },
6585
+ "sort_direction": {
6586
+ "type": "string",
6587
+ "description": "Order campaigns by creation date. Newest first unless set to `asc`.",
6588
+ "enum": [
6589
+ "asc",
6590
+ "desc"
6591
+ ]
6592
+ },
6593
+ "page": {
6594
+ "type": "integer",
6595
+ "description": "Page number"
6596
+ },
6597
+ "per_page": {
6598
+ "type": "integer",
6599
+ "description": "Number of items per page"
6600
+ }
6601
+ },
6602
+ "required": [
6603
+ "profileUuid"
6604
+ ]
6605
+ },
6606
+ "security": [
6607
+ {
6608
+ "apiToken": []
6609
+ }
6610
+ ],
6611
+ "group": "reach"
6612
+ },
6613
+ {
6614
+ "name": "reach_getCampaignPerformanceV1",
6615
+ "description": "Get the performance of a campaign: delivery, opens, clicks and unsubscribes, with the\nmatching rates.\n\nEvery count is unique contacts rather than raw events, so a contact who opens the same email\nfive times is counted once.",
6616
+ "method": "GET",
6617
+ "path": "/api/reach/v1/profiles/{profileUuid}/campaigns/{campaignUuid}/statistics",
6618
+ "inputSchema": {
6619
+ "type": "object",
6620
+ "properties": {
6621
+ "profileUuid": {
6622
+ "type": "string",
6623
+ "description": "Profile uuid parameter"
6624
+ },
6625
+ "campaignUuid": {
6626
+ "type": "string",
6627
+ "description": "Campaign uuid parameter"
6628
+ }
6629
+ },
6630
+ "required": [
6631
+ "profileUuid",
6632
+ "campaignUuid"
6633
+ ]
6634
+ },
6635
+ "security": [
6636
+ {
6637
+ "apiToken": []
6638
+ }
6639
+ ],
6640
+ "group": "reach"
6641
+ },
6524
6642
  {
6525
6643
  "name": "reach_deleteAContactV1",
6526
6644
  "description": "Delete a contact with the specified UUID.\n\nThis endpoint permanently removes a contact from the email marketing system.\n\n**Deprecated.** This endpoint cannot target a profile, so it always falls back to the\nclient's default profile and cannot delete contacts of any other profile. Use\n`DELETE /api/reach/v1/profiles/{profileUuid}/contacts/{contactUuid}` instead.",
@@ -107,6 +107,124 @@ export default [
107
107
  ],
108
108
  "group": "reach"
109
109
  },
110
+ {
111
+ "name": "reach_getCampaignDetailsV1",
112
+ "description": "Get a single campaign with its sender, subject, template reference, targeting and delivery\nprogress.\n\nThis describes how the campaign was set up and how far it has got. For opens, clicks and\nunsubscribes use the campaign statistics endpoint.",
113
+ "method": "GET",
114
+ "path": "/api/reach/v1/profiles/{profileUuid}/campaigns/{campaignUuid}",
115
+ "inputSchema": {
116
+ "type": "object",
117
+ "properties": {
118
+ "profileUuid": {
119
+ "type": "string",
120
+ "description": "Profile uuid parameter"
121
+ },
122
+ "campaignUuid": {
123
+ "type": "string",
124
+ "description": "Campaign uuid parameter"
125
+ }
126
+ },
127
+ "required": [
128
+ "profileUuid",
129
+ "campaignUuid"
130
+ ]
131
+ },
132
+ "security": [
133
+ {
134
+ "apiToken": []
135
+ }
136
+ ],
137
+ "group": "reach"
138
+ },
139
+ {
140
+ "name": "reach_listCampaignsV1",
141
+ "description": "Get a paginated list of the campaigns in a profile.\n\nEach campaign carries its headline engagement rates. Filter by status to find drafts,\nscheduled, sending or sent campaigns, keeping in mind that a fully sent campaign has the\nstatus `publish`. By default only regular campaigns are returned - pass `type` to get the\nemails sent by automations or the double opt-in confirmations instead.",
142
+ "method": "GET",
143
+ "path": "/api/reach/v1/profiles/{profileUuid}/campaigns",
144
+ "inputSchema": {
145
+ "type": "object",
146
+ "properties": {
147
+ "profileUuid": {
148
+ "type": "string",
149
+ "description": "Profile uuid parameter"
150
+ },
151
+ "status": {
152
+ "type": "string",
153
+ "description": "Filter campaigns by status.\n\nA fully sent campaign has the status `publish`. There is no `sent` status, and campaigns can\nbe neither paused nor archived.",
154
+ "enum": [
155
+ "draft",
156
+ "scheduled",
157
+ "sending",
158
+ "publish",
159
+ "failed"
160
+ ]
161
+ },
162
+ "type": {
163
+ "type": "string",
164
+ "description": "Filter campaigns by type.\n\nDefaults to `campaign`, which leaves out the emails sent by automations and the double\nopt-in confirmations.",
165
+ "enum": [
166
+ "campaign",
167
+ "automation",
168
+ "double_opt_in"
169
+ ]
170
+ },
171
+ "sort_direction": {
172
+ "type": "string",
173
+ "description": "Order campaigns by creation date. Newest first unless set to `asc`.",
174
+ "enum": [
175
+ "asc",
176
+ "desc"
177
+ ]
178
+ },
179
+ "page": {
180
+ "type": "integer",
181
+ "description": "Page number"
182
+ },
183
+ "per_page": {
184
+ "type": "integer",
185
+ "description": "Number of items per page"
186
+ }
187
+ },
188
+ "required": [
189
+ "profileUuid"
190
+ ]
191
+ },
192
+ "security": [
193
+ {
194
+ "apiToken": []
195
+ }
196
+ ],
197
+ "group": "reach"
198
+ },
199
+ {
200
+ "name": "reach_getCampaignPerformanceV1",
201
+ "description": "Get the performance of a campaign: delivery, opens, clicks and unsubscribes, with the\nmatching rates.\n\nEvery count is unique contacts rather than raw events, so a contact who opens the same email\nfive times is counted once.",
202
+ "method": "GET",
203
+ "path": "/api/reach/v1/profiles/{profileUuid}/campaigns/{campaignUuid}/statistics",
204
+ "inputSchema": {
205
+ "type": "object",
206
+ "properties": {
207
+ "profileUuid": {
208
+ "type": "string",
209
+ "description": "Profile uuid parameter"
210
+ },
211
+ "campaignUuid": {
212
+ "type": "string",
213
+ "description": "Campaign uuid parameter"
214
+ }
215
+ },
216
+ "required": [
217
+ "profileUuid",
218
+ "campaignUuid"
219
+ ]
220
+ },
221
+ "security": [
222
+ {
223
+ "apiToken": []
224
+ }
225
+ ],
226
+ "group": "reach"
227
+ },
110
228
  {
111
229
  "name": "reach_deleteAContactV1",
112
230
  "description": "Delete a contact with the specified UUID.\n\nThis endpoint permanently removes a contact from the email marketing system.\n\n**Deprecated.** This endpoint cannot target a profile, so it always falls back to the\nclient's default profile and cannot delete contacts of any other profile. Use\n`DELETE /api/reach/v1/profiles/{profileUuid}/contacts/{contactUuid}` instead.",
@@ -121,6 +121,124 @@ const tools: OpenApiTool[] = [
121
121
  ],
122
122
  "group": "reach"
123
123
  },
124
+ {
125
+ "name": "reach_getCampaignDetailsV1",
126
+ "description": "Get a single campaign with its sender, subject, template reference, targeting and delivery\nprogress.\n\nThis describes how the campaign was set up and how far it has got. For opens, clicks and\nunsubscribes use the campaign statistics endpoint.",
127
+ "method": "GET",
128
+ "path": "/api/reach/v1/profiles/{profileUuid}/campaigns/{campaignUuid}",
129
+ "inputSchema": {
130
+ "type": "object",
131
+ "properties": {
132
+ "profileUuid": {
133
+ "type": "string",
134
+ "description": "Profile uuid parameter"
135
+ },
136
+ "campaignUuid": {
137
+ "type": "string",
138
+ "description": "Campaign uuid parameter"
139
+ }
140
+ },
141
+ "required": [
142
+ "profileUuid",
143
+ "campaignUuid"
144
+ ]
145
+ },
146
+ "security": [
147
+ {
148
+ "apiToken": []
149
+ }
150
+ ],
151
+ "group": "reach"
152
+ },
153
+ {
154
+ "name": "reach_listCampaignsV1",
155
+ "description": "Get a paginated list of the campaigns in a profile.\n\nEach campaign carries its headline engagement rates. Filter by status to find drafts,\nscheduled, sending or sent campaigns, keeping in mind that a fully sent campaign has the\nstatus `publish`. By default only regular campaigns are returned - pass `type` to get the\nemails sent by automations or the double opt-in confirmations instead.",
156
+ "method": "GET",
157
+ "path": "/api/reach/v1/profiles/{profileUuid}/campaigns",
158
+ "inputSchema": {
159
+ "type": "object",
160
+ "properties": {
161
+ "profileUuid": {
162
+ "type": "string",
163
+ "description": "Profile uuid parameter"
164
+ },
165
+ "status": {
166
+ "type": "string",
167
+ "description": "Filter campaigns by status.\n\nA fully sent campaign has the status `publish`. There is no `sent` status, and campaigns can\nbe neither paused nor archived.",
168
+ "enum": [
169
+ "draft",
170
+ "scheduled",
171
+ "sending",
172
+ "publish",
173
+ "failed"
174
+ ]
175
+ },
176
+ "type": {
177
+ "type": "string",
178
+ "description": "Filter campaigns by type.\n\nDefaults to `campaign`, which leaves out the emails sent by automations and the double\nopt-in confirmations.",
179
+ "enum": [
180
+ "campaign",
181
+ "automation",
182
+ "double_opt_in"
183
+ ]
184
+ },
185
+ "sort_direction": {
186
+ "type": "string",
187
+ "description": "Order campaigns by creation date. Newest first unless set to `asc`.",
188
+ "enum": [
189
+ "asc",
190
+ "desc"
191
+ ]
192
+ },
193
+ "page": {
194
+ "type": "integer",
195
+ "description": "Page number"
196
+ },
197
+ "per_page": {
198
+ "type": "integer",
199
+ "description": "Number of items per page"
200
+ }
201
+ },
202
+ "required": [
203
+ "profileUuid"
204
+ ]
205
+ },
206
+ "security": [
207
+ {
208
+ "apiToken": []
209
+ }
210
+ ],
211
+ "group": "reach"
212
+ },
213
+ {
214
+ "name": "reach_getCampaignPerformanceV1",
215
+ "description": "Get the performance of a campaign: delivery, opens, clicks and unsubscribes, with the\nmatching rates.\n\nEvery count is unique contacts rather than raw events, so a contact who opens the same email\nfive times is counted once.",
216
+ "method": "GET",
217
+ "path": "/api/reach/v1/profiles/{profileUuid}/campaigns/{campaignUuid}/statistics",
218
+ "inputSchema": {
219
+ "type": "object",
220
+ "properties": {
221
+ "profileUuid": {
222
+ "type": "string",
223
+ "description": "Profile uuid parameter"
224
+ },
225
+ "campaignUuid": {
226
+ "type": "string",
227
+ "description": "Campaign uuid parameter"
228
+ }
229
+ },
230
+ "required": [
231
+ "profileUuid",
232
+ "campaignUuid"
233
+ ]
234
+ },
235
+ "security": [
236
+ {
237
+ "apiToken": []
238
+ }
239
+ ],
240
+ "group": "reach"
241
+ },
124
242
  {
125
243
  "name": "reach_deleteAContactV1",
126
244
  "description": "Delete a contact with the specified UUID.\n\nThis endpoint permanently removes a contact from the email marketing system.\n\n**Deprecated.** This endpoint cannot target a profile, so it always falls back to the\nclient's default profile and cannot delete contacts of any other profile. Use\n`DELETE /api/reach/v1/profiles/{profileUuid}/contacts/{contactUuid}` instead.",
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/agency-hosting.js';
5
5
 
6
- startServer({ name: 'hostinger-agency-hosting-mcp', version: '1.36.0', tools });
6
+ startServer({ name: 'hostinger-agency-hosting-mcp', version: '1.37.0', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/agency-hosting.js';
5
5
 
6
- startServer({ name: 'hostinger-agency-hosting-mcp', version: '1.36.0', tools });
6
+ startServer({ name: 'hostinger-agency-hosting-mcp', version: '1.37.0', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/all.js';
5
5
 
6
- startServer({ name: 'hostinger-api-mcp', version: '1.36.0', tools });
6
+ startServer({ name: 'hostinger-api-mcp', version: '1.37.0', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/all.js';
5
5
 
6
- startServer({ name: 'hostinger-api-mcp', version: '1.36.0', tools });
6
+ startServer({ name: 'hostinger-api-mcp', version: '1.37.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: '1.36.0', tools });
6
+ startServer({ name: 'hostinger-billing-mcp', version: '1.37.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: '1.36.0', tools });
6
+ startServer({ name: 'hostinger-billing-mcp', version: '1.37.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: '1.36.0', tools });
6
+ startServer({ name: 'hostinger-dns-mcp', version: '1.37.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: '1.36.0', tools });
6
+ startServer({ name: 'hostinger-dns-mcp', version: '1.37.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: '1.36.0', tools });
6
+ startServer({ name: 'hostinger-domains-mcp', version: '1.37.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: '1.36.0', tools });
6
+ startServer({ name: 'hostinger-domains-mcp', version: '1.37.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: '1.36.0', tools });
6
+ startServer({ name: 'hostinger-ecommerce-mcp', version: '1.37.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: '1.36.0', tools });
6
+ startServer({ name: 'hostinger-ecommerce-mcp', version: '1.37.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: '1.36.0', tools });
6
+ startServer({ name: 'hostinger-horizons-mcp', version: '1.37.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: '1.36.0', tools });
6
+ startServer({ name: 'hostinger-horizons-mcp', version: '1.37.0', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/hosting.js';
5
5
 
6
- startServer({ name: 'hostinger-hosting-mcp', version: '1.36.0', tools });
6
+ startServer({ name: 'hostinger-hosting-mcp', version: '1.37.0', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/hosting.js';
5
5
 
6
- startServer({ name: 'hostinger-hosting-mcp', version: '1.36.0', tools });
6
+ startServer({ name: 'hostinger-hosting-mcp', version: '1.37.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: '1.36.0', tools });
6
+ startServer({ name: 'hostinger-mail-mcp', version: '1.37.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: '1.36.0', tools });
6
+ startServer({ name: 'hostinger-mail-mcp', version: '1.37.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: '1.36.0', tools });
6
+ startServer({ name: 'hostinger-reach-mcp', version: '1.37.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: '1.36.0', tools });
6
+ startServer({ name: 'hostinger-reach-mcp', version: '1.37.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: '1.36.0', tools });
6
+ startServer({ name: 'hostinger-vps-mcp', version: '1.37.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: '1.36.0', tools });
6
+ startServer({ name: 'hostinger-vps-mcp', version: '1.37.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: '1.36.0', tools });
6
+ startServer({ name: 'hostinger-wordpress-mcp', version: '1.37.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: '1.36.0', tools });
6
+ startServer({ name: 'hostinger-wordpress-mcp', version: '1.37.0', tools });
package/types.d.ts CHANGED
@@ -4424,6 +4424,92 @@ steps yet returns an empty list.
4424
4424
  response: any; // Response structure will depend on the API
4425
4425
  };
4426
4426
 
4427
+ /**
4428
+ * Get a single campaign with its sender, subject, template reference, targeting and delivery
4429
+ progress.
4430
+
4431
+ This describes how the campaign was set up and how far it has got. For opens, clicks and
4432
+ unsubscribes use the campaign statistics endpoint.
4433
+ */
4434
+ "reach_getCampaignDetailsV1": {
4435
+ params: {
4436
+ /**
4437
+ * Profile uuid parameter
4438
+ */
4439
+ profileUuid: string;
4440
+ /**
4441
+ * Campaign uuid parameter
4442
+ */
4443
+ campaignUuid: string;
4444
+ };
4445
+ response: any; // Response structure will depend on the API
4446
+ };
4447
+
4448
+ /**
4449
+ * Get a paginated list of the campaigns in a profile.
4450
+
4451
+ Each campaign carries its headline engagement rates. Filter by status to find drafts,
4452
+ scheduled, sending or sent campaigns, keeping in mind that a fully sent campaign has the
4453
+ status `publish`. By default only regular campaigns are returned - pass `type` to get the
4454
+ emails sent by automations or the double opt-in confirmations instead.
4455
+ */
4456
+ "reach_listCampaignsV1": {
4457
+ params: {
4458
+ /**
4459
+ * Profile uuid parameter
4460
+ */
4461
+ profileUuid: string;
4462
+ /**
4463
+ * Filter campaigns by status.
4464
+
4465
+ A fully sent campaign has the status `publish`. There is no `sent` status, and campaigns can
4466
+ be neither paused nor archived.
4467
+ */
4468
+ status?: string;
4469
+ /**
4470
+ * Filter campaigns by type.
4471
+
4472
+ Defaults to `campaign`, which leaves out the emails sent by automations and the double
4473
+ opt-in confirmations.
4474
+ */
4475
+ type?: string;
4476
+ /**
4477
+ * Order campaigns by creation date. Newest first unless set to `asc`.
4478
+ */
4479
+ sort_direction?: string;
4480
+ /**
4481
+ * Page number
4482
+ */
4483
+ page?: number;
4484
+ /**
4485
+ * Number of items per page
4486
+ */
4487
+ per_page?: number;
4488
+ };
4489
+ response: any; // Response structure will depend on the API
4490
+ };
4491
+
4492
+ /**
4493
+ * Get the performance of a campaign: delivery, opens, clicks and unsubscribes, with the
4494
+ matching rates.
4495
+
4496
+ Every count is unique contacts rather than raw events, so a contact who opens the same email
4497
+ five times is counted once.
4498
+ */
4499
+ "reach_getCampaignPerformanceV1": {
4500
+ params: {
4501
+ /**
4502
+ * Profile uuid parameter
4503
+ */
4504
+ profileUuid: string;
4505
+ /**
4506
+ * Campaign uuid parameter
4507
+ */
4508
+ campaignUuid: string;
4509
+ };
4510
+ response: any; // Response structure will depend on the API
4511
+ };
4512
+
4427
4513
  /**
4428
4514
  * Delete a contact with the specified UUID.
4429
4515