hostinger-api-mcp 1.30.0 → 1.31.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
@@ -49,7 +49,7 @@ pnpm update -g hostinger-api-mcp
49
49
 
50
50
  This package installs the following MCP server commands:
51
51
 
52
- - `hostinger-api-mcp` — unified server with every tool (291 total)
52
+ - `hostinger-api-mcp` — unified server with every tool (300 total)
53
53
  - `hostinger-agency-hosting-mcp` — 27 tools for agency-hosting
54
54
  - `hostinger-billing-mcp` — 9 tools for billing
55
55
  - `hostinger-dns-mcp` — 8 tools for dns
@@ -58,7 +58,7 @@ This package installs the following MCP server commands:
58
58
  - `hostinger-horizons-mcp` — 2 tools for horizons
59
59
  - `hostinger-hosting-mcp` — 48 tools for hosting
60
60
  - `hostinger-mail-mcp` — 38 tools for mail
61
- - `hostinger-reach-mcp` — 12 tools for reach
61
+ - `hostinger-reach-mcp` — 21 tools for reach
62
62
  - `hostinger-vps-mcp` — 62 tools for vps
63
63
  - `hostinger-wordpress-mcp` — 35 tools for wordpress
64
64
 
@@ -2132,9 +2132,55 @@ Delete a contact with the specified UUID.
2132
2132
 
2133
2133
  This endpoint permanently removes a contact from the email marketing system.
2134
2134
 
2135
+ **Deprecated.** This endpoint cannot target a profile, so it always falls back to the
2136
+ client's default profile and cannot delete contacts of any other profile. Use
2137
+ `DELETE /api/reach/v1/profiles/{profileUuid}/contacts/{contactUuid}` instead.
2138
+
2135
2139
  - **Method**: `DELETE`
2136
2140
  - **Path**: `/api/reach/v1/contacts/{uuid}`
2137
2141
 
2142
+ #### reach_deleteAContactFieldV1
2143
+
2144
+ Delete a custom contact field.
2145
+
2146
+ Every value contacts hold for the field is deleted with it, and for the choice types so
2147
+ are its options. The contacts themselves are not affected.
2148
+
2149
+ - **Method**: `DELETE`
2150
+ - **Path**: `/api/reach/v1/profiles/{profileUuid}/contacts/fields/{fieldUuid}`
2151
+
2152
+ #### reach_updateAContactFieldV1
2153
+
2154
+ Rename a custom contact field and, for the choice types, replace its option set.
2155
+
2156
+ Options carrying a uuid are kept and relabelled, options without one are created, and any
2157
+ existing option left out of the list is deleted along with the values contacts hold for
2158
+ it. The field type and slug cannot be changed.
2159
+
2160
+ - **Method**: `PATCH`
2161
+ - **Path**: `/api/reach/v1/profiles/{profileUuid}/contacts/fields/{fieldUuid}`
2162
+
2163
+ #### reach_listContactFieldsV1
2164
+
2165
+ Get the custom contact fields defined in a profile.
2166
+
2167
+ Custom fields let you store your own attributes on contacts. The returned uuids are what
2168
+ you pass to the contact update endpoint to set values, and choice fields also list the
2169
+ options available to pick from.
2170
+
2171
+ - **Method**: `GET`
2172
+ - **Path**: `/api/reach/v1/profiles/{profileUuid}/contacts/fields`
2173
+
2174
+ #### reach_createAContactFieldV1
2175
+
2176
+ Define a new custom contact field in a profile.
2177
+
2178
+ The `slug` is derived from the label and, like the field type, cannot be changed later.
2179
+ Use the returned uuid to set values on contacts.
2180
+
2181
+ - **Method**: `POST`
2182
+ - **Path**: `/api/reach/v1/profiles/{profileUuid}/contacts/fields`
2183
+
2138
2184
  #### reach_listContactGroupsV1
2139
2185
 
2140
2186
  Get a list of all contact groups.
@@ -2151,6 +2197,11 @@ Get a list of contacts, optionally filtered by group and subscription status.
2151
2197
  This endpoint returns a paginated list of contacts with their basic information.
2152
2198
  You can filter contacts by group UUID and subscription status.
2153
2199
 
2200
+ **Deprecated.** This endpoint cannot target a profile, so it always falls back to the
2201
+ client's default profile and cannot list contacts of any other profile. Use
2202
+ `GET /api/reach/v1/profiles/{profileUuid}/contacts` instead, which also replaces the
2203
+ group filter with a tag filter.
2204
+
2154
2205
  - **Method**: `GET`
2155
2206
  - **Path**: `/api/reach/v1/contacts`
2156
2207
 
@@ -2166,6 +2217,73 @@ the contact will be created with a pending status and a confirmation email will
2166
2217
  - **Method**: `POST`
2167
2218
  - **Path**: `/api/reach/v1/contacts`
2168
2219
 
2220
+ #### reach_getContactDetailsV1
2221
+
2222
+ Get the full details of a single contact.
2223
+
2224
+ Alongside the contact's own attributes this returns the tags assigned to it and the
2225
+ values it holds for the profile's custom contact fields.
2226
+
2227
+ - **Method**: `GET`
2228
+ - **Path**: `/api/reach/v1/profiles/{profileUuid}/contacts/{contactUuid}`
2229
+
2230
+ #### reach_deleteAProfileContactV1
2231
+
2232
+ Permanently delete a contact from a profile.
2233
+
2234
+ The contact is removed together with its custom field values and tag assignments.
2235
+
2236
+ - **Method**: `DELETE`
2237
+ - **Path**: `/api/reach/v1/profiles/{profileUuid}/contacts/{contactUuid}`
2238
+
2239
+ #### reach_updateAContactV1
2240
+
2241
+ Update a contact's attributes and custom field values.
2242
+
2243
+ Only the properties present in the request body are changed, so a partial body is enough
2244
+ to change a single attribute. Sending a property as `null` clears it.
2245
+
2246
+ The response carries the contact's core attributes. Read back its tags, custom field
2247
+ values, source and note with `GET /api/reach/v1/profiles/{profileUuid}/contacts/{contactUuid}`.
2248
+
2249
+ - **Method**: `PATCH`
2250
+ - **Path**: `/api/reach/v1/profiles/{profileUuid}/contacts/{contactUuid}`
2251
+
2252
+ #### reach_createContactsInBulkV1
2253
+
2254
+ Create many contacts in a profile in a single call.
2255
+
2256
+ The contacts are imported in the background, so a success response means the import was
2257
+ accepted rather than finished. Contacts whose email already exists in the profile are
2258
+ left as they are. If double opt-in is enabled, new contacts start off pending and are
2259
+ sent a confirmation email.
2260
+
2261
+ - **Method**: `POST`
2262
+ - **Path**: `/api/reach/v1/profiles/{profileUuid}/contacts/bulk`
2263
+
2264
+ #### reach_listProfileContactsV1
2265
+
2266
+ Get a paginated list of contacts belonging to a profile.
2267
+
2268
+ Contacts can be filtered by subscription status, by tag, and by an email search term.
2269
+ The `meta.total` field of the response is the number of contacts matching the filters,
2270
+ so calling this endpoint without filters gives the profile's total contact count.
2271
+
2272
+ - **Method**: `GET`
2273
+ - **Path**: `/api/reach/v1/profiles/{profileUuid}/contacts`
2274
+
2275
+ #### reach_createNewContactsV1
2276
+
2277
+ Create a new contact in the email marketing system.
2278
+
2279
+ This endpoint allows you to create a new contact with basic information like name, email, and surname.
2280
+
2281
+ If double opt-in is enabled, the contact will be created with a pending status
2282
+ and a confirmation email will be sent.
2283
+
2284
+ - **Method**: `POST`
2285
+ - **Path**: `/api/reach/v1/profiles/{profileUuid}/contacts`
2286
+
2169
2287
  #### reach_listSegmentsV1
2170
2288
 
2171
2289
  Get a list of all contact segments.
@@ -2215,18 +2333,6 @@ Segments are used to organize and group contacts based on specific criteria.
2215
2333
  - **Method**: `GET`
2216
2334
  - **Path**: `/api/reach/v1/segmentation/segments/{segmentUuid}`
2217
2335
 
2218
- #### reach_createNewContactsV1
2219
-
2220
- Create a new contact in the email marketing system.
2221
-
2222
- This endpoint allows you to create a new contact with basic information like name, email, and surname.
2223
-
2224
- If double opt-in is enabled, the contact will be created with a pending status
2225
- and a confirmation email will be sent.
2226
-
2227
- - **Method**: `POST`
2228
- - **Path**: `/api/reach/v1/profiles/{profileUuid}/contacts`
2229
-
2230
2336
  #### reach_getProfileDomainDNSStatusV1
2231
2337
 
2232
2338
  Retrieve the DNS configuration status for a profile's domain.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hostinger-api-mcp",
3
- "version": "1.30.0",
3
+ "version": "1.31.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.30.0",
3
+ "version": "1.31.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.30.0",
9
+ "version": "1.31.0",
10
10
  "packages": [
11
11
  {
12
12
  "registryType": "npm",
13
13
  "identifier": "hostinger-api-mcp",
14
- "version": "1.30.0",
14
+ "version": "1.31.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.27.0
32
+ * Generated from OpenAPI spec version 1.28.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.27.0
55
+ * Generated from OpenAPI spec version 1.28.0
56
56
  */
57
57
  class MCPServer {
58
58
  private readonly name: string;