hostinger-api-mcp 1.29.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,16 +49,16 @@ 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 (289 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
56
- - `hostinger-domains-mcp` — 36 tools for domains
56
+ - `hostinger-domains-mcp` — 38 tools for domains
57
57
  - `hostinger-ecommerce-mcp` — 12 tools for ecommerce
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
 
@@ -855,6 +855,29 @@ Use this endpoint to obtain the code required to transfer a domain to another re
855
855
  - **Method**: `GET`
856
856
  - **Path**: `/api/domains/v1/portfolio/{domain}/auth-code`
857
857
 
858
+ #### domains_claimFreeDomainV1
859
+
860
+ Claim a free domain available on your account and register it.
861
+
862
+ Unlike purchasing a domain, this consumes a free domain you already have,
863
+ so no payment method is required.
864
+
865
+ A successful response means the domain is registered. If registration fails, login to
866
+ [hPanel](https://hpanel.hostinger.com/) and check domain registration status.
867
+
868
+ If no WHOIS information is provided, default contact information for that TLD will be used.
869
+ Before making request, ensure WHOIS information for desired TLD exists in your account.
870
+
871
+ Some TLDs require `additional_details` to be provided and these will be validated before claiming.
872
+
873
+ Requests which cannot be fulfilled are rejected with an error code in the response body,
874
+ for example `2037` when no free domain is available.
875
+
876
+ Use this endpoint to register a domain using a free domain from your account.
877
+
878
+ - **Method**: `POST`
879
+ - **Path**: `/api/domains/v1/portfolio/claim`
880
+
858
881
  #### domains_enableDomainLockV1
859
882
 
860
883
  Enable domain lock for the domain.
@@ -957,6 +980,30 @@ Use this endpoint to configure custom DNS hosting for domains.
957
980
  - **Method**: `PUT`
958
981
  - **Path**: `/api/domains/v1/portfolio/{domain}/nameservers`
959
982
 
983
+ #### domains_claimFreeDomainTransferV1
984
+
985
+ Claim a free domain transfer available on your account and start the transfer.
986
+
987
+ Unlike purchasing a transfer, this consumes a free domain transfer you already have,
988
+ so no payment method is required.
989
+
990
+ Before making request, unlock the domain at the current registrar and get its authorization
991
+ code. The transfer is validated first, so domains which cannot be transferred are rejected
992
+ before the free domain transfer is consumed.
993
+
994
+ A successful response means the transfer has been started. Completion depends on the current
995
+ registrar and can be followed with the [transfer list endpoint](#tag/domains-transfer).
996
+
997
+ If no WHOIS information is provided, default contact information for that TLD will be used.
998
+ Before making request, ensure WHOIS information for desired TLD exists in your account.
999
+
1000
+ Requests which cannot be fulfilled are rejected with an error code in the response body.
1001
+
1002
+ Use this endpoint to transfer a domain using a free domain transfer from your account.
1003
+
1004
+ - **Method**: `POST`
1005
+ - **Path**: `/api/domains/v1/transfers/claim`
1006
+
960
1007
  #### domains_getTransferV1
961
1008
 
962
1009
  Retrieve the transfer for a specified domain.
@@ -2085,9 +2132,55 @@ Delete a contact with the specified UUID.
2085
2132
 
2086
2133
  This endpoint permanently removes a contact from the email marketing system.
2087
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
+
2088
2139
  - **Method**: `DELETE`
2089
2140
  - **Path**: `/api/reach/v1/contacts/{uuid}`
2090
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
+
2091
2184
  #### reach_listContactGroupsV1
2092
2185
 
2093
2186
  Get a list of all contact groups.
@@ -2104,6 +2197,11 @@ Get a list of contacts, optionally filtered by group and subscription status.
2104
2197
  This endpoint returns a paginated list of contacts with their basic information.
2105
2198
  You can filter contacts by group UUID and subscription status.
2106
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
+
2107
2205
  - **Method**: `GET`
2108
2206
  - **Path**: `/api/reach/v1/contacts`
2109
2207
 
@@ -2119,6 +2217,73 @@ the contact will be created with a pending status and a confirmation email will
2119
2217
  - **Method**: `POST`
2120
2218
  - **Path**: `/api/reach/v1/contacts`
2121
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
+
2122
2287
  #### reach_listSegmentsV1
2123
2288
 
2124
2289
  Get a list of all contact segments.
@@ -2168,18 +2333,6 @@ Segments are used to organize and group contacts based on specific criteria.
2168
2333
  - **Method**: `GET`
2169
2334
  - **Path**: `/api/reach/v1/segmentation/segments/{segmentUuid}`
2170
2335
 
2171
- #### reach_createNewContactsV1
2172
-
2173
- Create a new contact in the email marketing system.
2174
-
2175
- This endpoint allows you to create a new contact with basic information like name, email, and surname.
2176
-
2177
- If double opt-in is enabled, the contact will be created with a pending status
2178
- and a confirmation email will be sent.
2179
-
2180
- - **Method**: `POST`
2181
- - **Path**: `/api/reach/v1/profiles/{profileUuid}/contacts`
2182
-
2183
2336
  #### reach_getProfileDomainDNSStatusV1
2184
2337
 
2185
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.29.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.29.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.29.0",
9
+ "version": "1.31.0",
10
10
  "packages": [
11
11
  {
12
12
  "registryType": "npm",
13
13
  "identifier": "hostinger-api-mcp",
14
- "version": "1.29.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.26.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.26.0
55
+ * Generated from OpenAPI spec version 1.28.0
56
56
  */
57
57
  class MCPServer {
58
58
  private readonly name: string;