hostinger-api-mcp 1.30.0 → 1.32.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 +197 -8
- 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 +706 -27
- package/src/core/tools/all.ts +706 -27
- package/src/core/tools/reach.js +706 -27
- package/src/core/tools/reach.ts +706 -27
- package/src/servers/agency-hosting.js +1 -1
- package/src/servers/agency-hosting.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 +454 -15
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 (
|
|
52
|
+
- `hostinger-api-mcp` — unified server with every tool (308 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` —
|
|
61
|
+
- `hostinger-reach-mcp` — 29 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,17 +2333,88 @@ 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
|
-
####
|
|
2336
|
+
#### reach_assignAContactToATagV1
|
|
2219
2337
|
|
|
2220
|
-
|
|
2338
|
+
Assign a tag to a single contact.
|
|
2221
2339
|
|
|
2222
|
-
|
|
2340
|
+
Unlike the bulk endpoint this is applied immediately rather than queued. Assigning a tag
|
|
2341
|
+
the contact already carries succeeds without duplicating it.
|
|
2223
2342
|
|
|
2224
|
-
|
|
2225
|
-
|
|
2343
|
+
- **Method**: `POST`
|
|
2344
|
+
- **Path**: `/api/reach/v1/profiles/{profileUuid}/tags/{tagUuid}/contacts/{contactUuid}`
|
|
2345
|
+
|
|
2346
|
+
#### reach_removeAContactFromATagV1
|
|
2347
|
+
|
|
2348
|
+
Remove a tag from a single contact.
|
|
2349
|
+
|
|
2350
|
+
Unlike the bulk endpoint this is applied immediately rather than queued. Neither the tag
|
|
2351
|
+
nor the contact is deleted.
|
|
2352
|
+
|
|
2353
|
+
- **Method**: `DELETE`
|
|
2354
|
+
- **Path**: `/api/reach/v1/profiles/{profileUuid}/tags/{tagUuid}/contacts/{contactUuid}`
|
|
2355
|
+
|
|
2356
|
+
#### reach_assignContactsToATagV1
|
|
2357
|
+
|
|
2358
|
+
Assign a tag to many contacts at once.
|
|
2359
|
+
|
|
2360
|
+
Pass `contact_uuids` to target specific contacts, or `all_contacts` to target every contact
|
|
2361
|
+
in the profile. The work is queued, so a success response means it was accepted rather than
|
|
2362
|
+
finished. Contacts that already carry the tag are left alone.
|
|
2226
2363
|
|
|
2227
2364
|
- **Method**: `POST`
|
|
2228
|
-
- **Path**: `/api/reach/v1/profiles/{profileUuid}/contacts`
|
|
2365
|
+
- **Path**: `/api/reach/v1/profiles/{profileUuid}/tags/{tagUuid}/contacts`
|
|
2366
|
+
|
|
2367
|
+
#### reach_removeContactsFromATagV1
|
|
2368
|
+
|
|
2369
|
+
Remove a tag from many contacts at once.
|
|
2370
|
+
|
|
2371
|
+
Pass `contact_uuids` to target specific contacts, or `all_contacts` to target every contact
|
|
2372
|
+
in the profile. The work is queued, so a success response means it was accepted rather than
|
|
2373
|
+
finished. The tag itself and the contacts are not deleted.
|
|
2374
|
+
|
|
2375
|
+
- **Method**: `DELETE`
|
|
2376
|
+
- **Path**: `/api/reach/v1/profiles/{profileUuid}/tags/{tagUuid}/contacts`
|
|
2377
|
+
|
|
2378
|
+
#### reach_deleteATagV1
|
|
2379
|
+
|
|
2380
|
+
Delete a tag and remove it from every contact carrying it.
|
|
2381
|
+
|
|
2382
|
+
The contacts themselves are not deleted. This is idempotent: deleting a tag that does not
|
|
2383
|
+
exist in the profile still succeeds.
|
|
2384
|
+
|
|
2385
|
+
- **Method**: `DELETE`
|
|
2386
|
+
- **Path**: `/api/reach/v1/profiles/{profileUuid}/tags/{tagUuid}`
|
|
2387
|
+
|
|
2388
|
+
#### reach_renameATagV1
|
|
2389
|
+
|
|
2390
|
+
Rename a tag.
|
|
2391
|
+
|
|
2392
|
+
The contacts assigned to the tag are unaffected. Names are unique within a profile, so
|
|
2393
|
+
renaming a tag to a name that is already taken is rejected.
|
|
2394
|
+
|
|
2395
|
+
- **Method**: `PATCH`
|
|
2396
|
+
- **Path**: `/api/reach/v1/profiles/{profileUuid}/tags/{tagUuid}`
|
|
2397
|
+
|
|
2398
|
+
#### reach_listProfileTagsV1
|
|
2399
|
+
|
|
2400
|
+
Get all tags defined in a profile.
|
|
2401
|
+
|
|
2402
|
+
Tags are the way contacts are grouped in Reach, and can be used to filter the contact
|
|
2403
|
+
list or to build segments.
|
|
2404
|
+
|
|
2405
|
+
- **Method**: `GET`
|
|
2406
|
+
- **Path**: `/api/reach/v1/profiles/{profileUuid}/tags`
|
|
2407
|
+
|
|
2408
|
+
#### reach_createOrFindTagsV1
|
|
2409
|
+
|
|
2410
|
+
Create tags in a profile.
|
|
2411
|
+
|
|
2412
|
+
Names that already exist in the profile are not duplicated: the existing tag is returned
|
|
2413
|
+
instead, so the call is safe to repeat. Every tag in the request is returned, whether it
|
|
2414
|
+
was created now or already existed.
|
|
2415
|
+
|
|
2416
|
+
- **Method**: `POST`
|
|
2417
|
+
- **Path**: `/api/reach/v1/profiles/{profileUuid}/tags`
|
|
2229
2418
|
|
|
2230
2419
|
#### reach_getProfileDomainDNSStatusV1
|
|
2231
2420
|
|
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": "1.
|
|
9
|
+
"version": "1.32.0",
|
|
10
10
|
"packages": [
|
|
11
11
|
{
|
|
12
12
|
"registryType": "npm",
|
|
13
13
|
"identifier": "hostinger-api-mcp",
|
|
14
|
-
"version": "1.
|
|
14
|
+
"version": "1.32.0",
|
|
15
15
|
"transport": {
|
|
16
16
|
"type": "stdio"
|
|
17
17
|
},
|
package/src/core/runtime.js
CHANGED
package/src/core/runtime.ts
CHANGED