hostinger-api-mcp 1.24.0 → 1.26.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 +18 -2
- package/gemini-extension.json +1 -1
- package/package.json +1 -1
- package/server.json +2 -2
- package/skills/headless/SKILL.md +10 -8
- package/skills/headless/entry/skill.md +3 -3
- package/skills/headless/references/DEPLOYMENT.md +1 -1
- package/skills/headless/references/WORDPRESS.md +51 -0
- package/src/core/runtime.js +1 -1
- package/src/core/runtime.ts +1 -1
- package/src/core/tools/all.js +36 -0
- package/src/core/tools/all.ts +36 -0
- package/src/core/tools/billing.js +36 -0
- package/src/core/tools/billing.ts +36 -0
- 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 +30 -0
package/README.md
CHANGED
|
@@ -49,9 +49,9 @@ 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 (276 total)
|
|
53
53
|
- `hostinger-agency-hosting-mcp` — 27 tools for agency-hosting
|
|
54
|
-
- `hostinger-billing-mcp` —
|
|
54
|
+
- `hostinger-billing-mcp` — 9 tools for billing
|
|
55
55
|
- `hostinger-dns-mcp` — 8 tools for dns
|
|
56
56
|
- `hostinger-domains-mcp` — 23 tools for domains
|
|
57
57
|
- `hostinger-ecommerce-mcp` — 12 tools for ecommerce
|
|
@@ -553,6 +553,22 @@ Use this endpoint when enable auto-renewal for a subscription.
|
|
|
553
553
|
- **Method**: `PATCH`
|
|
554
554
|
- **Path**: `/api/billing/v1/subscriptions/{subscriptionId}/auto-renewal/enable`
|
|
555
555
|
|
|
556
|
+
#### billing_renewSubscriptionV1
|
|
557
|
+
|
|
558
|
+
Create a renewal order for an existing Hostinger subscription.
|
|
559
|
+
|
|
560
|
+
This endpoint places a renewal order for a single subscription, leveraging
|
|
561
|
+
the existing billing infrastructure. Use the
|
|
562
|
+
[subscriptions endpoint](#tag/billing-subscriptions) to look up the
|
|
563
|
+
`subscriptionId` values available for renewal.
|
|
564
|
+
|
|
565
|
+
If no payment method is provided, your default payment method will be used automatically.
|
|
566
|
+
|
|
567
|
+
Use this endpoint to renew any subscription available in your account.
|
|
568
|
+
|
|
569
|
+
- **Method**: `POST`
|
|
570
|
+
- **Path**: `/api/billing/v1/subscriptions/{subscriptionId}/renew`
|
|
571
|
+
|
|
556
572
|
### `hostinger-dns-mcp`
|
|
557
573
|
|
|
558
574
|
#### DNS_getDNSSnapshotV1
|
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.26.0",
|
|
10
10
|
"packages": [
|
|
11
11
|
{
|
|
12
12
|
"registryType": "npm",
|
|
13
13
|
"identifier": "hostinger-api-mcp",
|
|
14
|
-
"version": "1.
|
|
14
|
+
"version": "1.26.0",
|
|
15
15
|
"transport": {
|
|
16
16
|
"type": "stdio"
|
|
17
17
|
},
|
package/skills/headless/SKILL.md
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: hostinger-headless
|
|
3
|
-
description: "Build, connect, or iterate on a website hosted on Hostinger — provision hosting and a domain, optionally seed an ecommerce store with a real hosted checkout, build the frontend, deploy, and verify. Requires an authenticated Hostinger MCP session (see entry/skill.md). Triggers: build me a site on Hostinger, deploy this to Hostinger, connect this project to Hostinger, add a store to my Hostinger site, update my Hostinger site."
|
|
3
|
+
description: "Build, connect, or iterate on a website hosted on Hostinger — provision hosting and a domain, optionally seed an ecommerce store with a real hosted checkout or a WordPress content backend (headless CMS/blog), build the frontend, deploy, and verify. Requires an authenticated Hostinger MCP session (see entry/skill.md). Triggers: build me a site on Hostinger, deploy this to Hostinger, connect this project to Hostinger, add a store to my Hostinger site, add a blog to my Hostinger site, update my Hostinger site."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Hostinger Headless
|
|
7
7
|
|
|
8
8
|
This skill turns a prompt into a live website on Hostinger. Its job is to own the full run: check the account, provision hosting and a domain, seed the backend (an ecommerce store when the intent calls for selling), build the frontend, deploy it, and verify the result.
|
|
9
9
|
|
|
10
|
-
The frontend is built ad-hoc to the user's intent — there is no template library. The backend pieces are real Hostinger products: web hosting (static or Node.js), domains and DNS,
|
|
10
|
+
The frontend is built ad-hoc to the user's intent — there is no template library. The backend pieces are real Hostinger products: web hosting (static or Node.js), domains and DNS, Hostinger Ecommerce with its public Storefront API and hosted checkout, and WordPress as a headless CMS/blog backend read through the public WP REST API.
|
|
11
11
|
|
|
12
12
|
## Preconditions
|
|
13
13
|
|
|
14
14
|
1. An authenticated Hostinger MCP session — the entry skill's bootstrap handled this. If MCP tools fail with auth errors, send the user back through `entry/skill.md`.
|
|
15
|
-
2. The Hostinger MCP tools for **hosting** (
|
|
15
|
+
2. The Hostinger MCP tools for **hosting** (plus **ecommerce** when the run involves a store, and **wordpress** when it involves a content backend). Tool availability varies per user — product groups can be toggled in the Hostinger Connector, and some clients cap the number of exposed tools. When a needed tool is missing, ask the user to enable that product group (or configure the scoped binary, e.g. `hostinger-hosting-mcp`) rather than improvising around it.
|
|
16
16
|
3. An active hosting plan (checked in Setup §1). Hostinger hosting is a paid product: if the account has no usable plan, inform the user plainly that a subscription is required, link them to https://www.hostinger.com/web-hosting, and pause until they confirm the purchase. Do not treat this as an error — it is a normal step for new accounts. Everything that doesn't need hosting (planning, building the frontend locally) can proceed while they decide.
|
|
17
17
|
|
|
18
18
|
## Resolving the operation
|
|
@@ -27,13 +27,14 @@ If signals conflict, ask the user — don't guess.
|
|
|
27
27
|
|
|
28
28
|
## The run
|
|
29
29
|
|
|
30
|
-
1. **Discovery** — from the prompt (and the project on disk for connect/iterate), infer: does this run need a store (any buy/sell/product intent → yes)? What brand, copy, and structure does the site need? What stack fits — plain static HTML/CSS/JS for simple sites (default), a static-output framework build, or a Node.js app when SSR or server code is genuinely required? Prefer static: it deploys fastest and has no build-failure surface. Ask the user only what you cannot infer.
|
|
30
|
+
1. **Discovery** — from the prompt (and the project on disk for connect/iterate), infer: does this run need a store (any buy/sell/product intent → yes)? Does it need owner-managed content — a blog, news, or anything the owner edits without a redeploy (→ WordPress backend; static copy that rarely changes does not qualify)? What brand, copy, and structure does the site need? What stack fits — plain static HTML/CSS/JS for simple sites (default), a static-output framework build, or a Node.js app when SSR or server code is genuinely required? Prefer static: it deploys fastest and has no build-failure surface. Ask the user only what you cannot infer.
|
|
31
31
|
2. **Setup** (`references/SETUP.md`) — plan check, then provision the website on a free subdomain (or the user's own domain) and wait until it's ready.
|
|
32
32
|
3. **Store** (`references/STORE.md`, only when commerce is needed) — resolve or create the store and its `custom` sales channel, seed products/shipping/payment, and note the `sales_channel_id` for the frontend.
|
|
33
|
-
4. **
|
|
34
|
-
5. **
|
|
35
|
-
6. **
|
|
36
|
-
7. **
|
|
33
|
+
4. **Content backend** (`references/WORDPRESS.md`, only when owner-managed content is needed) — install WordPress on a dedicated subdomain, wait until it's ready, and hand the owner a wp-admin login link. The frontend reads it through the public WP REST API.
|
|
34
|
+
5. **Build** — create or wire the frontend. For store runs, follow the frontend contract in `references/STORE.md` (catalog fetched at runtime from the public Storefront API, cart in `localStorage`, client-side checkout — never embed an API token in the site). For content runs, follow the frontend contract in `references/WORDPRESS.md` (posts fetched at runtime from the WP REST API, rendered HTML bodies, graceful empty states).
|
|
35
|
+
6. **Deploy** (`references/DEPLOYMENT.md`) — archive and deploy via the matching hosting tool, polling build logs for Node.js runs.
|
|
36
|
+
7. **Verify** — curl the live URL for a 200 and a piece of real page copy; for store runs, confirm a checkout POST returns a redirect URL; for content runs, confirm the WP REST API returns 200 and the frontend renders posts. Show the user the live URL and where to manage things (hPanel: https://hpanel.hostinger.com, the store dashboard for commerce, wp-admin for content).
|
|
37
|
+
8. **Record** — write `.hostinger/site.json` into the project: `{ "domain", "username", "type": "static"|"nodejs", "sales_channel_id"?, "store_id"?, "cms_domain"? }`. This is what makes future runs resolve as `iterate`.
|
|
37
38
|
|
|
38
39
|
Run non-interactively wherever possible. The exceptions that must involve the user: the paid-plan confirmation, anything that costs money (a domain purchase, a new subscription), and picking between genuinely equal options the prompt doesn't decide.
|
|
39
40
|
|
|
@@ -43,6 +44,7 @@ Run non-interactively wherever possible. The exceptions that must involve the us
|
|
|
43
44
|
| --- | --- |
|
|
44
45
|
| Plan check + website/domain provisioning | `references/SETUP.md` |
|
|
45
46
|
| Store: seed the backend + the frontend API contract | `references/STORE.md` |
|
|
47
|
+
| WordPress: headless CMS/blog backend + the frontend read contract | `references/WORDPRESS.md` |
|
|
46
48
|
| Deploy: static vs Node.js, archive rules, logs, verify | `references/DEPLOYMENT.md` |
|
|
47
49
|
|
|
48
50
|
## Where the how comes from
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: hostinger-headless-entry
|
|
3
|
-
description: "Build a complete website on Hostinger from a single prompt — hosting, domain, and (optionally) a store with real checkout. The deterministic first steps — verifying the Hostinger MCP server and signing in — are handled by a single bootstrap script; the agent then installs the full skill and hands the run to it. Triggers: build me a site, create a website, make me a website, online store, I want to sell X, start a business online, launch a site, ecommerce, portfolio, business website, sell online, online shop, connect this project to Hostinger, host this on Hostinger, deploy this to Hostinger."
|
|
3
|
+
description: "Build a complete website on Hostinger from a single prompt — hosting, domain, and (optionally) a store with real checkout or a blog/CMS the owner edits in WordPress. The deterministic first steps — verifying the Hostinger MCP server and signing in — are handled by a single bootstrap script; the agent then installs the full skill and hands the run to it. Triggers: build me a site, create a website, make me a website, online store, I want to sell X, start a business online, launch a site, ecommerce, portfolio, blog, business website, sell online, online shop, add a blog to my site, connect this project to Hostinger, host this on Hostinger, deploy this to Hostinger."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Hostinger Headless Skill — cold-start entry
|
|
@@ -73,7 +73,7 @@ npx skills add hostinger/api-mcp-server --yes
|
|
|
73
73
|
|
|
74
74
|
If the installer is unavailable, fetch the files directly instead — the full set is listed in the skill folder at `https://github.com/hostinger/api-mcp-server/tree/main/skills/headless`.
|
|
75
75
|
|
|
76
|
-
Then open `headless/SKILL.md` and follow it. That skill owns the rest of the run — it resolves the operation (create / connect / iterate), checks the account has a usable hosting plan, provisions the website and domain, seeds the store when commerce is requested, builds, deploys, and verifies.
|
|
76
|
+
Then open `headless/SKILL.md` and follow it. That skill owns the rest of the run — it resolves the operation (create / connect / iterate), checks the account has a usable hosting plan, provisions the website and domain, seeds the store when commerce is requested, sets up a WordPress content backend when the owner needs to edit content themselves, builds, deploys, and verifies.
|
|
77
77
|
|
|
78
|
-
- Don't provision hosting, create stores, or deploy by hand here — the skill does all of that (`references/SETUP.md`, `references/DEPLOYMENT.md`, `references/STORE.md`). This entry stops at signed in.
|
|
78
|
+
- Don't provision hosting, create stores, install WordPress, or deploy by hand here — the skill does all of that (`references/SETUP.md`, `references/DEPLOYMENT.md`, `references/STORE.md`, `references/WORDPRESS.md`). This entry stops at signed in.
|
|
79
79
|
- You're already authenticated from Phase 1, so every Hostinger MCP tool call will work without prompting again.
|
|
@@ -20,7 +20,7 @@ For anything that needs a server or a server-side build (Express, Next.js, NestJ
|
|
|
20
20
|
|
|
21
21
|
## WordPress → `hosting_importWordpressWebsite` / plugin & theme tools
|
|
22
22
|
|
|
23
|
-
Only when the user explicitly wants WordPress. Site imports take an archive plus a `.sql` dump and can run for several minutes.
|
|
23
|
+
Only when the user explicitly wants a WordPress *site* migrated or themed. Site imports take an archive plus a `.sql` dump and can run for several minutes. (WordPress as a headless content backend behind an agent-built frontend is a different flow — that's `WORDPRESS.md`, installed fresh via the API, not imported here.)
|
|
24
24
|
|
|
25
25
|
## Verify (every deploy)
|
|
26
26
|
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# WordPress — headless CMS and blog backend
|
|
2
|
+
|
|
3
|
+
Use WordPress when the site has **owner-managed content**: a blog, news, articles, or any content the owner must edit without a developer or a redeploy. The frontend stays agent-built and is deployed like any other run; WordPress runs separately as the content backend, and the owner writes in wp-admin.
|
|
4
|
+
|
|
5
|
+
**When NOT to use this:** static copy that rarely changes (an about page, a services list, a brochure site) — bake that into the frontend. Installing WordPress for content the owner will never edit adds a moving part for nothing. Any buy/sell intent is `STORE.md`, not this file.
|
|
6
|
+
|
|
7
|
+
Everything in Setup uses the **hosting** and **wordpress** MCP tool groups; ask the user to enable them in the Hostinger Connector if tools are missing.
|
|
8
|
+
|
|
9
|
+
## Mental model
|
|
10
|
+
|
|
11
|
+
Two surfaces, like the store recipe:
|
|
12
|
+
|
|
13
|
+
| Surface | Base URL | Auth | Use for |
|
|
14
|
+
| --- | --- | --- | --- |
|
|
15
|
+
| WP REST API | `https://CMS_DOMAIN/wp-json/wp/v2` | none for published content (open CORS) | frontend reads: posts, pages, media, categories |
|
|
16
|
+
| Management (MCP tools + wp-admin) | Hostinger API / wp-admin | authenticated | install WP, plugins, cache; the owner writes content |
|
|
17
|
+
|
|
18
|
+
- Published content is publicly readable and the REST API allows cross-origin browser reads — a static frontend on another domain fetches it directly at runtime.
|
|
19
|
+
- Drafts, previews, and **writes need authentication** (WP application passwords). Never put credentials of any kind in the frontend; a public site only needs the anonymous read path.
|
|
20
|
+
|
|
21
|
+
## Setup (management tools)
|
|
22
|
+
|
|
23
|
+
1. **Check for an existing installation first**: `hosting_listWordPressInstallationsV1` filtered by the site's username/domain. Reuse a valid install when the user agrees — never overwrite one silently.
|
|
24
|
+
2. **Choose where WordPress lives.** Default: a dedicated subdomain of the site, e.g. `cms.<domain>` — create it with `hosting_createWebsiteSubdomainV1` so the main domain stays free for the frontend. A separate free-subdomain website (per `SETUP.md`) also works when the plan allows another website.
|
|
25
|
+
3. **Install**: `hosting_installWordPressV1` on that domain. The call only queues the job — **poll** `hosting_listWordPressInstallationsV1` until the installation appears (typically 1–2 minutes). Don't proceed on the queued response alone.
|
|
26
|
+
4. **Hand the owner their editor**: mint a one-click wp-admin link with `hosting_createLoginLinksV1` and show it to the user. Content authoring happens in wp-admin — the skill does not seed posts (there is no anonymous write path, by design). The fresh install ships with a sample post, which is enough to build and verify the frontend against.
|
|
27
|
+
5. **Caching** (recommended before finishing): enable the object cache with `hosting_toggleMemcachedObjectCacheV1`; after config changes, purge with `hosting_purgeLiteSpeedCacheV1`.
|
|
28
|
+
|
|
29
|
+
## Frontend contract
|
|
30
|
+
|
|
31
|
+
All paths relative to `https://CMS_DOMAIN/wp-json/wp/v2`. Non-obvious rules:
|
|
32
|
+
|
|
33
|
+
- **Fetch at runtime, not build time** — content changes whenever the owner publishes; baking it into a static build defeats the purpose. Client-side fetch on page load is fine (CORS is open).
|
|
34
|
+
- List posts with `/posts?per_page=10&_embed` — `_embed` inlines featured images (`_embedded['wp:featuredmedia'][0].source_url`), authors, and terms; without it you get IDs that need extra requests.
|
|
35
|
+
- Post bodies are **rendered HTML**: use `title.rendered` / `content.rendered` / `excerpt.rendered` and render them as HTML — do not treat them as plain text and do not try to restyle their inner markup beyond CSS.
|
|
36
|
+
- Single post by slug: `/posts?slug=my-post` — returns an **array** (take the first element); there is no direct slug path.
|
|
37
|
+
- Pagination comes from the `X-WP-Total` / `X-WP-TotalPages` response headers, not the body.
|
|
38
|
+
- Only **published** content is returned anonymously. An empty list is a normal state — the frontend must render it gracefully, not error.
|
|
39
|
+
- SEO is the frontend's job: page titles, meta tags, and the sitemap come from the frontend build, not from WordPress plugins.
|
|
40
|
+
|
|
41
|
+
## Verify
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
curl -s -o /dev/null -w "%{http_code}\n" "https://CMS_DOMAIN/wp-json/wp/v2/posts?per_page=1"
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Expect 200 with a JSON array. Then confirm the deployed frontend renders the sample post (or a clean empty state), and show the user two links: the live site and the wp-admin login for writing content.
|
|
48
|
+
|
|
49
|
+
## Record
|
|
50
|
+
|
|
51
|
+
Add `"cms_domain"` to `.hostinger/site.json` (see `SKILL.md` §Record) so iterate runs know a WordPress backend exists and reuse it instead of installing again.
|
package/src/core/runtime.js
CHANGED
package/src/core/runtime.ts
CHANGED
package/src/core/tools/all.js
CHANGED
|
@@ -1398,6 +1398,42 @@ export default [
|
|
|
1398
1398
|
],
|
|
1399
1399
|
"group": "billing"
|
|
1400
1400
|
},
|
|
1401
|
+
{
|
|
1402
|
+
"name": "billing_renewSubscriptionV1",
|
|
1403
|
+
"description": "Create a renewal order for an existing Hostinger subscription.\n\nThis endpoint places a renewal order for a single subscription, leveraging\nthe existing billing infrastructure. Use the\n[subscriptions endpoint](#tag/billing-subscriptions) to look up the\n`subscriptionId` values available for renewal.\n\nIf no payment method is provided, your default payment method will be used automatically.\n\nUse this endpoint to renew any subscription available in your account.",
|
|
1404
|
+
"method": "POST",
|
|
1405
|
+
"path": "/api/billing/v1/subscriptions/{subscriptionId}/renew",
|
|
1406
|
+
"inputSchema": {
|
|
1407
|
+
"type": "object",
|
|
1408
|
+
"properties": {
|
|
1409
|
+
"subscriptionId": {
|
|
1410
|
+
"type": "string",
|
|
1411
|
+
"description": "Subscription ID"
|
|
1412
|
+
},
|
|
1413
|
+
"payment_method_id": {
|
|
1414
|
+
"type": "integer",
|
|
1415
|
+
"description": "Payment method ID, default will be used if not provided"
|
|
1416
|
+
},
|
|
1417
|
+
"coupons": {
|
|
1418
|
+
"type": "array",
|
|
1419
|
+
"description": "Discount coupon codes",
|
|
1420
|
+
"items": {
|
|
1421
|
+
"type": "string",
|
|
1422
|
+
"description": "coupons parameter"
|
|
1423
|
+
}
|
|
1424
|
+
}
|
|
1425
|
+
},
|
|
1426
|
+
"required": [
|
|
1427
|
+
"subscriptionId"
|
|
1428
|
+
]
|
|
1429
|
+
},
|
|
1430
|
+
"security": [
|
|
1431
|
+
{
|
|
1432
|
+
"apiToken": []
|
|
1433
|
+
}
|
|
1434
|
+
],
|
|
1435
|
+
"group": "billing"
|
|
1436
|
+
},
|
|
1401
1437
|
{
|
|
1402
1438
|
"name": "DNS_getDNSSnapshotV1",
|
|
1403
1439
|
"description": "Retrieve particular DNS snapshot with contents of DNS zone records.\n\nUse this endpoint to view historical DNS configurations for domains.",
|
package/src/core/tools/all.ts
CHANGED
|
@@ -1412,6 +1412,42 @@ const tools: OpenApiTool[] = [
|
|
|
1412
1412
|
],
|
|
1413
1413
|
"group": "billing"
|
|
1414
1414
|
},
|
|
1415
|
+
{
|
|
1416
|
+
"name": "billing_renewSubscriptionV1",
|
|
1417
|
+
"description": "Create a renewal order for an existing Hostinger subscription.\n\nThis endpoint places a renewal order for a single subscription, leveraging\nthe existing billing infrastructure. Use the\n[subscriptions endpoint](#tag/billing-subscriptions) to look up the\n`subscriptionId` values available for renewal.\n\nIf no payment method is provided, your default payment method will be used automatically.\n\nUse this endpoint to renew any subscription available in your account.",
|
|
1418
|
+
"method": "POST",
|
|
1419
|
+
"path": "/api/billing/v1/subscriptions/{subscriptionId}/renew",
|
|
1420
|
+
"inputSchema": {
|
|
1421
|
+
"type": "object",
|
|
1422
|
+
"properties": {
|
|
1423
|
+
"subscriptionId": {
|
|
1424
|
+
"type": "string",
|
|
1425
|
+
"description": "Subscription ID"
|
|
1426
|
+
},
|
|
1427
|
+
"payment_method_id": {
|
|
1428
|
+
"type": "integer",
|
|
1429
|
+
"description": "Payment method ID, default will be used if not provided"
|
|
1430
|
+
},
|
|
1431
|
+
"coupons": {
|
|
1432
|
+
"type": "array",
|
|
1433
|
+
"description": "Discount coupon codes",
|
|
1434
|
+
"items": {
|
|
1435
|
+
"type": "string",
|
|
1436
|
+
"description": "coupons parameter"
|
|
1437
|
+
}
|
|
1438
|
+
}
|
|
1439
|
+
},
|
|
1440
|
+
"required": [
|
|
1441
|
+
"subscriptionId"
|
|
1442
|
+
]
|
|
1443
|
+
},
|
|
1444
|
+
"security": [
|
|
1445
|
+
{
|
|
1446
|
+
"apiToken": []
|
|
1447
|
+
}
|
|
1448
|
+
],
|
|
1449
|
+
"group": "billing"
|
|
1450
|
+
},
|
|
1415
1451
|
{
|
|
1416
1452
|
"name": "DNS_getDNSSnapshotV1",
|
|
1417
1453
|
"description": "Retrieve particular DNS snapshot with contents of DNS zone records.\n\nUse this endpoint to view historical DNS configurations for domains.",
|
|
@@ -213,5 +213,41 @@ export default [
|
|
|
213
213
|
}
|
|
214
214
|
],
|
|
215
215
|
"group": "billing"
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
"name": "billing_renewSubscriptionV1",
|
|
219
|
+
"description": "Create a renewal order for an existing Hostinger subscription.\n\nThis endpoint places a renewal order for a single subscription, leveraging\nthe existing billing infrastructure. Use the\n[subscriptions endpoint](#tag/billing-subscriptions) to look up the\n`subscriptionId` values available for renewal.\n\nIf no payment method is provided, your default payment method will be used automatically.\n\nUse this endpoint to renew any subscription available in your account.",
|
|
220
|
+
"method": "POST",
|
|
221
|
+
"path": "/api/billing/v1/subscriptions/{subscriptionId}/renew",
|
|
222
|
+
"inputSchema": {
|
|
223
|
+
"type": "object",
|
|
224
|
+
"properties": {
|
|
225
|
+
"subscriptionId": {
|
|
226
|
+
"type": "string",
|
|
227
|
+
"description": "Subscription ID"
|
|
228
|
+
},
|
|
229
|
+
"payment_method_id": {
|
|
230
|
+
"type": "integer",
|
|
231
|
+
"description": "Payment method ID, default will be used if not provided"
|
|
232
|
+
},
|
|
233
|
+
"coupons": {
|
|
234
|
+
"type": "array",
|
|
235
|
+
"description": "Discount coupon codes",
|
|
236
|
+
"items": {
|
|
237
|
+
"type": "string",
|
|
238
|
+
"description": "coupons parameter"
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
},
|
|
242
|
+
"required": [
|
|
243
|
+
"subscriptionId"
|
|
244
|
+
]
|
|
245
|
+
},
|
|
246
|
+
"security": [
|
|
247
|
+
{
|
|
248
|
+
"apiToken": []
|
|
249
|
+
}
|
|
250
|
+
],
|
|
251
|
+
"group": "billing"
|
|
216
252
|
}
|
|
217
253
|
];
|
|
@@ -227,6 +227,42 @@ const tools: OpenApiTool[] = [
|
|
|
227
227
|
}
|
|
228
228
|
],
|
|
229
229
|
"group": "billing"
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
"name": "billing_renewSubscriptionV1",
|
|
233
|
+
"description": "Create a renewal order for an existing Hostinger subscription.\n\nThis endpoint places a renewal order for a single subscription, leveraging\nthe existing billing infrastructure. Use the\n[subscriptions endpoint](#tag/billing-subscriptions) to look up the\n`subscriptionId` values available for renewal.\n\nIf no payment method is provided, your default payment method will be used automatically.\n\nUse this endpoint to renew any subscription available in your account.",
|
|
234
|
+
"method": "POST",
|
|
235
|
+
"path": "/api/billing/v1/subscriptions/{subscriptionId}/renew",
|
|
236
|
+
"inputSchema": {
|
|
237
|
+
"type": "object",
|
|
238
|
+
"properties": {
|
|
239
|
+
"subscriptionId": {
|
|
240
|
+
"type": "string",
|
|
241
|
+
"description": "Subscription ID"
|
|
242
|
+
},
|
|
243
|
+
"payment_method_id": {
|
|
244
|
+
"type": "integer",
|
|
245
|
+
"description": "Payment method ID, default will be used if not provided"
|
|
246
|
+
},
|
|
247
|
+
"coupons": {
|
|
248
|
+
"type": "array",
|
|
249
|
+
"description": "Discount coupon codes",
|
|
250
|
+
"items": {
|
|
251
|
+
"type": "string",
|
|
252
|
+
"description": "coupons parameter"
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
},
|
|
256
|
+
"required": [
|
|
257
|
+
"subscriptionId"
|
|
258
|
+
]
|
|
259
|
+
},
|
|
260
|
+
"security": [
|
|
261
|
+
{
|
|
262
|
+
"apiToken": []
|
|
263
|
+
}
|
|
264
|
+
],
|
|
265
|
+
"group": "billing"
|
|
230
266
|
}
|
|
231
267
|
];
|
|
232
268
|
export default 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.
|
|
6
|
+
startServer({ name: 'hostinger-agency-hosting-mcp', version: '1.26.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.
|
|
6
|
+
startServer({ name: 'hostinger-agency-hosting-mcp', version: '1.26.0', tools });
|
package/src/servers/all.js
CHANGED
package/src/servers/all.ts
CHANGED
package/src/servers/billing.js
CHANGED
package/src/servers/billing.ts
CHANGED
package/src/servers/dns.js
CHANGED
package/src/servers/dns.ts
CHANGED
package/src/servers/domains.js
CHANGED
package/src/servers/domains.ts
CHANGED
package/src/servers/ecommerce.js
CHANGED
package/src/servers/ecommerce.ts
CHANGED
package/src/servers/horizons.js
CHANGED
package/src/servers/horizons.ts
CHANGED
package/src/servers/hosting.js
CHANGED
package/src/servers/hosting.ts
CHANGED
package/src/servers/mail.js
CHANGED
package/src/servers/mail.ts
CHANGED
package/src/servers/reach.js
CHANGED
package/src/servers/reach.ts
CHANGED
package/src/servers/vps.js
CHANGED
package/src/servers/vps.ts
CHANGED
package/src/servers/wordpress.js
CHANGED
package/src/servers/wordpress.ts
CHANGED
package/types.d.ts
CHANGED
|
@@ -882,6 +882,36 @@ Use this endpoint when enable auto-renewal for a subscription.
|
|
|
882
882
|
response: any; // Response structure will depend on the API
|
|
883
883
|
};
|
|
884
884
|
|
|
885
|
+
/**
|
|
886
|
+
* Create a renewal order for an existing Hostinger subscription.
|
|
887
|
+
|
|
888
|
+
This endpoint places a renewal order for a single subscription, leveraging
|
|
889
|
+
the existing billing infrastructure. Use the
|
|
890
|
+
[subscriptions endpoint](#tag/billing-subscriptions) to look up the
|
|
891
|
+
`subscriptionId` values available for renewal.
|
|
892
|
+
|
|
893
|
+
If no payment method is provided, your default payment method will be used automatically.
|
|
894
|
+
|
|
895
|
+
Use this endpoint to renew any subscription available in your account.
|
|
896
|
+
*/
|
|
897
|
+
"billing_renewSubscriptionV1": {
|
|
898
|
+
params: {
|
|
899
|
+
/**
|
|
900
|
+
* Subscription ID
|
|
901
|
+
*/
|
|
902
|
+
subscriptionId: string;
|
|
903
|
+
/**
|
|
904
|
+
* Payment method ID, default will be used if not provided
|
|
905
|
+
*/
|
|
906
|
+
payment_method_id?: number;
|
|
907
|
+
/**
|
|
908
|
+
* Discount coupon codes
|
|
909
|
+
*/
|
|
910
|
+
coupons?: array;
|
|
911
|
+
};
|
|
912
|
+
response: any; // Response structure will depend on the API
|
|
913
|
+
};
|
|
914
|
+
|
|
885
915
|
/**
|
|
886
916
|
* Retrieve particular DNS snapshot with contents of DNS zone records.
|
|
887
917
|
|