hostinger-api-mcp

Model Context Protocol (MCP) server for Hostinger API.

Prerequisites

  • Node.js version 24 or higher

If you don't have Node.js installed, you can download it from the official website. Alternatively, you can use a package manager like Homebrew (for macOS) or Chocolatey (for Windows) to install Node.js.

We recommend using NVM (Node Version Manager) to install and manage installed Node.js versions. After installing NVM, you can install Node.js with the following command:

nvm install v24
nvm use v24

Installation

To install the MCP server, run one of the following command, depending on your package manager:

# Install globally from npm
npm install -g hostinger-api-mcp

# Or with yarn
yarn global add hostinger-api-mcp

# Or with pnpm
pnpm add -g hostinger-api-mcp

Update

To update the MCP server to the latest version, use one of the following commands, depending on your package manager:

# Update globally from npm
npm update -g hostinger-api-mcp

# Or with yarn
yarn global upgrade hostinger-api-mcp

# Or with pnpm
pnpm update -g hostinger-api-mcp

Binaries

This package installs the following MCP server commands:

  • hostinger-api-mcp — unified server with every tool (223 total)
  • hostinger-agency-hosting-mcp — 18 tools for agency-hosting
  • hostinger-billing-mcp — 7 tools for billing
  • hostinger-dns-mcp — 8 tools for dns
  • hostinger-domains-mcp — 19 tools for domains
  • hostinger-ecommerce-mcp — 12 tools for ecommerce
  • hostinger-horizons-mcp — 2 tools for horizons
  • hostinger-hosting-mcp — 48 tools for hosting
  • hostinger-reach-mcp — 12 tools for reach
  • hostinger-vps-mcp — 62 tools for vps
  • hostinger-wordpress-mcp — 35 tools for wordpress

Pick the binary that matches your agent's scope. hostinger-api-mcp remains the backwards-compatible default.

Configuration

The following environment variables can be configured when running the server:

  • DEBUG: Enable debug logging (true/false) (default: false)
  • HOSTINGER_API_TOKEN: Your API token, which will be sent in the Authorization header. When set, OAuth is bypassed entirely.
  • API_TOKEN: Deprecated alias for HOSTINGER_API_TOKEN. Will be removed in a future version — prefer HOSTINGER_API_TOKEN.
  • OAUTH_ISSUER: OAuth server base URL (default: https://auth.hostinger.com). Only used when HOSTINGER_API_TOKEN is not set.

Authentication

The server supports two authentication methods:

API Token (recommended for CI/scripts)

Set HOSTINGER_API_TOKEN in the environment or .env file. When present it always takes precedence — no OAuth code runs.

OAuth 2.0 with PKCE (interactive sign-in)

When HOSTINGER_API_TOKEN is not set and the server runs in stdio mode, OAuth 2.0 with PKCE is used automatically on the first authenticated tool call:

  1. A dynamic OAuth client is registered with the issuer (RFC 7591) — once per machine.
  2. A browser window opens to the authorization page.
  3. After sign-in, the server captures the redirect on a local ephemeral port, exchanges the code for tokens, and stores them.
  4. Subsequent calls reuse the stored access token; expired tokens are refreshed automatically. If a refresh token is revoked, the browser flow is re-launched.

Credentials are stored at:

  • macOS / Linux: ~/.config/hostinger-mcp/credentials.json (mode 0600)
  • Windows: %APPDATA%\hostinger-mcp\credentials.json

Credentials are shared across all Hostinger MCP binaries (hostinger-api-mcp, hostinger-vps-mcp, etc.).

Manual commands:

# Run the OAuth sign-in flow immediately (don't wait for the first tool call)
hostinger-api-mcp --login

# Revoke stored credentials
hostinger-api-mcp --logout

HTTP transport note: OAuth sign-in is not supported in --http mode. Set HOSTINGER_API_TOKEN before using --http.

Usage

JSON configuration for Claude, Cursor, etc.

{
    "mcpServers": {
        "hostinger-api": {
            "command": "hostinger-api-mcp",
            "env": {
                "DEBUG": "false",
                "HOSTINGER_API_TOKEN": "YOUR API TOKEN"
            }
        }
    }
}

Transport Options

The MCP server supports two transport modes:

Standard I/O Transport

The server can use standard input / output (stdio) transport (default). This provides local streaming:

Streamable HTTP Transport

The server can use HTTP streaming transport. This provides bidirectional streaming over HTTP:

# Default HTTP transport on localhost:8100
hostinger-api-mcp --http

# Specify custom host and port
hostinger-api-mcp --http --host 0.0.0.0 --port 8150

Command Line Options

Options:
  --http           Use HTTP streaming transport (requires HOSTINGER_API_TOKEN env var)
  --stdio          Use Server-Sent Events transport (default)
  --host {host}    Hostname or IP address to listen on (default: 127.0.0.1)
  --port {port}    Port to bind to (default: 8100)
  --login          Run OAuth sign-in flow and exit
  --logout         Revoke stored OAuth credentials and exit
  --help           Show help message

Using as an MCP Tool Provider

This server implements the Model Context Protocol (MCP) and can be used with any MCP-compatible consumer.

Example of connecting to this server using HTTP streaming transport:

import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";

// Create HTTP transport
const transport = new StreamableHTTPClientTransport({
  url: "http://localhost:8100/",
  headers: {
    "Authorization": `Bearer ${process.env.HOSTINGER_API_TOKEN}`
  }
});

// Connect to the MCP server
const client = new Client({
  name: "my-client",
  version: "1.0.0"
}, {
  capabilities: {}
});

await client.connect(transport);

// List available tools
const { tools } = await client.listTools();
console.log("Available tools:", tools);

// Call a tool
const result = await client.callTool({
  name: "billing_getCatalogItemListV1",
  arguments: { category: "DOMAIN" }
});
console.log("Tool result:", result);

Available Tools

This MCP server provides the following tools:

hostinger-agency-hosting-mcp

agencyHosting_deployNodeStaticWebsite

Deploy a node-static Agency Plan (h5g) website from an archive file. WARNING: this overwrites the website's existing contents and cannot be undone — always confirm with the user before proceeding. Use this for Agency Plan websites of type node-static (a Node.js-built static site that requires a build step or a plain simple static site). The tool resolves the website from its domain, uploads the archive to the website's file browser over TUS, and triggers the build-assets process which builds the site and deploys the result to public_html. This operation is synchronous: the build and deployment complete before the tool returns, so the website is live as soon as the tool finishes successfully — there is no separate asynchronous build to wait for or poll. For plain PHP applications that should be extracted as-is, use agencyHosting_deployPhpApplication instead. The website UID is automatically resolved from the domain.

  • Method: custom
  • Path: custom

agencyHosting_deployPhpApplication

Deploy a PHP (or other non-build) Agency Plan (h5g) website from an archive file. WARNING: this overwrites the website's existing contents and cannot be undone — always confirm with the user before proceeding. Use this for Agency Plan websites where the archive contents should be extracted and served as-is with no build step (e.g., PHP applications). The tool resolves the website from its domain, uploads the archive to the website's file browser over TUS, and triggers the import-archive process which overwrites the website contents with the archive contents. This operation is synchronous: the archive is extracted and deployed before the tool returns, so the website is live as soon as the tool finishes successfully — there is no separate asynchronous build to wait for or poll. For node-static websites that require a build step, use agencyHosting_deployNodeStaticWebsite instead. The website UID is automatically resolved from the domain.

  • Method: custom
  • Path: custom

agency-hosting_listAvailableDatacentersForAnAgencyPlanOrderV1

Lists the datacenters available for provisioning a new website on the given Agency Plan hosting order.

Each datacenter includes a pinger_url you can ping from the client to measure round-trip latency; comparing the results across datacenters lets you pick the nearest one (lowest ping) before choosing its code as the datacenter_code when creating a website setup.

  • Method: GET
  • Path: /api/agency-hosting/v1/orders/{order_id}/datacenters

agency-hosting_changeAgencyPlanWebsiteDomainV1

Changes the primary domain for an Agency Plan website.

Provide the current domain in the path and the new domain in the request body. Set domain to null to revert to the temporary domain.

  • Method: PUT
  • Path: /api/agency-hosting/v1/websites/{website_uid}/domains/{from_domain}

agency-hosting_linkDomainToAgencyPlanWebsiteV1

Links a domain to the specified Agency Plan website so it can serve traffic for that domain.

  • Method: POST
  • Path: /api/agency-hosting/v1/websites/{website_uid}/domains

agency-hosting_listAgencyPlanDomainsV1

Returns a paginated list of domains associated with Agency Plan websites accessible to the authenticated client.

Use the website_uuids filter to narrow results to specific websites.

  • Method: GET
  • Path: /api/agency-hosting/v1/domains

agency-hosting_unlinkDomainFromAgencyPlanWebsiteV1

Unlinks a domain from the specified Agency Plan website.

The website stops serving traffic on this domain immediately.

Website files and database are preserved, and any other linked domains remain accessible.

If this is the only domain on the website, unlinking leaves the website without an accessible domain.

  • Method: DELETE
  • Path: /api/agency-hosting/v1/websites/{website_uid}/domains/{domain}

agency-hosting_importAgencyPlanWebsiteFromArchiveV1

Imports an Agency Plan website from an already-uploaded archive.

Upload the archive to the website's root directory via file browser first, then provide its filename in this request. Website contents are overwritten by the archive contents. Supported archive types: .zip, .tar, .tar.gz, .tgz.

  • Method: POST
  • Path: /api/agency-hosting/v1/websites/{website_uid}/files/import-archive

agency-hosting_provisionANewAgencyPlanWebsiteV1

Provisions a new website on one of your Agency Plan hosting orders.

Choose the datacenter, stack (flavor), and PHP version for the site. Optionally attach your own domain — omit it, set it to null, or leave it unavailable and a free *.hostingersite.com subdomain is generated instead — and/or install WordPress by supplying the wordpress details (admin account, site title, and language).

Common setups:

  • Plain PHP site: flavor set to php-fpm, with settings.php.version; omit wordpress and type.
  • WordPress site: flavor set to the desired WordPress version (e.g. wp-7.0), plus the wordpress block (admin account, title, language).
  • Static/Node.js frontend app: flavor set to php-fpm and type set to node-static.

Provisioning runs in the background, so the response returns immediately with a setup UUID that identifies the job. The new website becomes reachable once provisioning finishes.

  • Method: POST
  • Path: /api/agency-hosting/v1/orders/{order_id}/websites/setups

agency-hosting_getAgencyPlanWebsiteSetupStatusV1

Returns the current status of an Agency Plan website setup started via the setups endpoint.

Poll this endpoint using the setup_uuid returned from the provisioning request until status becomes completed, at which point website_uid identifies the new website.

  • Method: GET
  • Path: /api/agency-hosting/v1/orders/{order_id}/websites/setups/{setup_uuid}

agency-hosting_buildAgencyPlanWebsiteNodeJSAssetsV1

Builds and deploys a Node.js application for an Agency Plan website from an already-uploaded archive.

Upload the archive to file browser first, then provide its relative path from document root in this request. Website contents are overwritten by the build result, which is deployed to public_html.

  • Method: POST
  • Path: /api/agency-hosting/v1/websites/{website_uid}/build-assets

agency-hosting_clearAgencyPlanWebsiteCacheV1

Clears cache for all domains associated with an Agency Plan website, including its preview domain.

This operation clears all cache types for the website.

  • Method: DELETE
  • Path: /api/agency-hosting/v1/websites/{website_uid}/cache

agency-hosting_listAgencyPlanWebsiteCronJobsV1

Returns a paginated list of cron jobs configured for an Agency Plan website.

Each entry includes the schedule expression and the command executed on that schedule.

  • Method: GET
  • Path: /api/agency-hosting/v1/websites/{website_uid}/cron-jobs

agency-hosting_createAgencyPlanWebsiteCronJobV1

Creates a cron job for an Agency Plan website from a schedule expression and a command.

Returns the created cron job, including its uuid, which is required to delete the cron job.

  • Method: POST
  • Path: /api/agency-hosting/v1/websites/{website_uid}/cron-jobs

agency-hosting_deleteAgencyPlanWebsiteCronJobV1

Permanently deletes the cron job identified by its uuid from an Agency Plan website.

The operation is idempotent: deleting a cron job that does not exist succeeds without error.

  • Method: DELETE
  • Path: /api/agency-hosting/v1/websites/{website_uid}/cron-jobs/{uuid}

agency-hosting_getAgencyPlanWebsiteDetailsV1

Retrieves detailed information about a specific Agency Plan website, including configuration, status, metadata, hosting plan details, and resource quotas.

  • Method: GET
  • Path: /api/agency-hosting/v1/websites/{website_uid}

agency-hosting_deleteAgencyPlanWebsiteV1

Deletes an Agency Plan website and schedules cleanup of its resources.

This action is irreversible. Website files, databases, and linked domains are removed.

  • Method: DELETE
  • Path: /api/agency-hosting/v1/websites/{website_uid}

agency-hosting_listRunningAgencyPlanWebsiteProcessesV1

Lists active and recently completed asynchronous processes for an Agency Plan website.

Each process has a unique ID (for tracking), a type, and a status (running, completed, failed). Poll this endpoint after initiating async operations (SSL setup, backups, cloning) to track progress.

  • Method: GET
  • Path: /api/agency-hosting/v1/websites/{website_uid}/processes

hostinger-billing-mcp

billing_getCatalogItemListV1

Retrieve catalog items available for order.

Prices in catalog items is displayed as cents (without floating point), e.g: float 17.99 is displayed as integer 1799.

Use this endpoint to view available services and pricing before placing orders.

  • Method: GET
  • Path: /api/billing/v1/catalog

billing_setDefaultPaymentMethodV1

Set the default payment method for your account.

Use this endpoint to configure the primary payment method for future orders.

  • Method: POST
  • Path: /api/billing/v1/payment-methods/{paymentMethodId}

billing_deletePaymentMethodV1

Delete a payment method from your account.

Use this endpoint to remove unused payment methods from user accounts.

  • Method: DELETE
  • Path: /api/billing/v1/payment-methods/{paymentMethodId}

billing_getPaymentMethodListV1

Retrieve available payment methods that can be used for placing new orders.

If you want to add new payment method, please use hPanel.

Use this endpoint to view available payment options before creating orders.

  • Method: GET
  • Path: /api/billing/v1/payment-methods

billing_getSubscriptionListV1

Retrieve a list of all subscriptions associated with your account.

Use this endpoint to monitor active services and billing status.

  • Method: GET
  • Path: /api/billing/v1/subscriptions

billing_disableAutoRenewalV1

Disable auto-renewal for a subscription.

Use this endpoint when disable auto-renewal for a subscription.

  • Method: DELETE
  • Path: /api/billing/v1/subscriptions/{subscriptionId}/auto-renewal/disable

billing_enableAutoRenewalV1

Enable auto-renewal for a subscription.

Use this endpoint when enable auto-renewal for a subscription.

  • Method: PATCH
  • Path: /api/billing/v1/subscriptions/{subscriptionId}/auto-renewal/enable

hostinger-dns-mcp

DNS_getDNSSnapshotV1

Retrieve particular DNS snapshot with contents of DNS zone records.

Use this endpoint to view historical DNS configurations for domains.

  • Method: GET
  • Path: /api/dns/v1/snapshots/{domain}/{snapshotId}

DNS_getDNSSnapshotListV1

Retrieve DNS snapshots for a domain.

Use this endpoint to view available DNS backup points for restoration.

  • Method: GET
  • Path: /api/dns/v1/snapshots/{domain}

DNS_restoreDNSSnapshotV1

Restore DNS zone to the selected snapshot.

Use this endpoint to revert domain DNS to a previous configuration.

  • Method: POST
  • Path: /api/dns/v1/snapshots/{domain}/{snapshotId}/restore

DNS_getDNSRecordsV1

Retrieve DNS zone records for a specific domain.

Use this endpoint to view current DNS configuration for domain management.

  • Method: GET
  • Path: /api/dns/v1/zones/{domain}

DNS_updateDNSRecordsV1

Update DNS records for the selected domain.

Using overwrite = true will replace existing records with the provided ones. Otherwise existing records will be updated and new records will be added.

Use this endpoint to modify domain DNS configuration.

  • Method: PUT
  • Path: /api/dns/v1/zones/{domain}

DNS_deleteDNSRecordsV1

Delete DNS records for the selected domain.

To filter which records to delete, add the name of the record and type to the filter. Multiple filters can be provided with single request.

If you have multiple records with the same name and type, and you want to delete only part of them, refer to the Update zone records endpoint.

Use this endpoint to remove specific DNS records from domains.

  • Method: DELETE
  • Path: /api/dns/v1/zones/{domain}

DNS_resetDNSRecordsV1

Reset DNS zone to the default records.

Use this endpoint to restore domain DNS to original configuration.

  • Method: POST
  • Path: /api/dns/v1/zones/{domain}/reset

DNS_validateDNSRecordsV1

Validate DNS records prior to update for the selected domain.

If the validation is successful, the response will contain 200 Success code. If there is validation error, the response will fail with 422 Validation error code.

Use this endpoint to verify DNS record validity before applying changes.

  • Method: POST
  • Path: /api/dns/v1/zones/{domain}/validate

hostinger-domains-mcp

v2_getDomainVerificationsDIRECT

Retrieve a list of pending and completed domain verifications.

  • Method: GET
  • Path: /api/v2/direct/verifications/active

domains_checkDomainAvailabilityV1

Check availability of domain names across multiple TLDs.

Multiple TLDs can be checked at once. If you want alternative domains with response, provide only one TLD and set with_alternatives to true. TLDs should be provided without leading dot (e.g. com, net, org).

Endpoint has rate limit of 10 requests per minute.

Use this endpoint to verify domain availability before purchase.

  • Method: POST
  • Path: /api/domains/v1/availability

domains_getDomainForwardingV1

Retrieve domain forwarding data.

Use this endpoint to view current redirect configuration for domains.

  • Method: GET
  • Path: /api/domains/v1/forwarding/{domain}

domains_deleteDomainForwardingV1

Delete domain forwarding data.

Use this endpoint to remove redirect configuration from domains.

  • Method: DELETE
  • Path: /api/domains/v1/forwarding/{domain}

domains_createDomainForwardingV1

Create domain forwarding configuration.

Use this endpoint to set up domain redirects to other URLs.

  • Method: POST
  • Path: /api/domains/v1/forwarding

domains_enableDomainLockV1

Enable domain lock for the domain.

When domain lock is enabled, the domain cannot be transferred to another registrar without first disabling the lock.

Use this endpoint to secure domains against unauthorized transfers.

  • Method: PUT
  • Path: /api/domains/v1/portfolio/{domain}/domain-lock

domains_disableDomainLockV1

Disable domain lock for the domain.

Domain lock needs to be disabled before transferring the domain to another registrar.

Use this endpoint to prepare domains for transfer to other registrars.

  • Method: DELETE
  • Path: /api/domains/v1/portfolio/{domain}/domain-lock

domains_getDomainDetailsV1

Retrieve detailed information for specified domain.

Use this endpoint to view comprehensive domain configuration and status.

  • Method: GET
  • Path: /api/domains/v1/portfolio/{domain}

domains_getDomainListV1

Retrieve all domains associated with your account.

Use this endpoint to view user's domain portfolio.

  • Method: GET
  • Path: /api/domains/v1/portfolio

domains_purchaseNewDomainV1

Purchase and register a new domain name.

If registration fails, login to hPanel and check domain registration status.

If no payment method is provided, your default payment method will be used automatically.

If no WHOIS information is provided, default contact information for that TLD will be used. Before making request, ensure WHOIS information for desired TLD exists in your account.

Some TLDs require additional_details to be provided and these will be validated before completing purchase.

Use this endpoint to register new domains for users.

  • Method: POST
  • Path: /api/domains/v1/portfolio

domains_enablePrivacyProtectionV1

Enable privacy protection for the domain.

When privacy protection is enabled, domain owner's personal information is hidden from public WHOIS database.

Use this endpoint to protect domain owner's personal information from public view.

  • Method: PUT
  • Path: /api/domains/v1/portfolio/{domain}/privacy-protection

domains_disablePrivacyProtectionV1

Disable privacy protection for the domain.

When privacy protection is disabled, domain owner's personal information is visible in public WHOIS database.

Use this endpoint to make domain owner's information publicly visible.

  • Method: DELETE
  • Path: /api/domains/v1/portfolio/{domain}/privacy-protection

domains_getDomainRenewalInformationV1

Retrieve renewal information for a specified domain, including its status and current expiration date.

Use this endpoint to build renewal automation and expiry monitoring for a single domain.

  • Method: GET
  • Path: /api/domains/v1/portfolio/{domain}/renewal

domains_updateDomainNameserversV1

Set nameservers for a specified domain.

Be aware, that improper nameserver configuration can lead to the domain being unresolvable or unavailable.

Use this endpoint to configure custom DNS hosting for domains.

  • Method: PUT
  • Path: /api/domains/v1/portfolio/{domain}/nameservers

domains_getWHOISProfileV1

Retrieve a WHOIS contact profile.

Use this endpoint to view domain registration contact information.

  • Method: GET
  • Path: /api/domains/v1/whois/{whoisId}

domains_deleteWHOISProfileV1

Delete WHOIS contact profile.

Use this endpoint to remove unused contact profiles from account.

  • Method: DELETE
  • Path: /api/domains/v1/whois/{whoisId}

domains_getWHOISProfileListV1

Retrieve WHOIS contact profiles.

Use this endpoint to view available contact profiles for domain registration.

  • Method: GET
  • Path: /api/domains/v1/whois

domains_createWHOISProfileV1

Create WHOIS contact profile.

Use this endpoint to add new contact information for domain registration.

  • Method: POST
  • Path: /api/domains/v1/whois

domains_getWHOISProfileUsageV1

Retrieve domain list where provided WHOIS contact profile is used.

Use this endpoint to view which domains use specific contact profiles.

  • Method: GET
  • Path: /api/domains/v1/whois/{whoisId}/usage

hostinger-ecommerce-mcp

ecommerce_getCustomStorefrontSetupInstructionsV1

Retrieve step-by-step setup instructions, formatted as Markdown, for connecting a custom sales channel to your store and keeping your catalog, orders, shipping and payments in sync through the Ecommerce API.

  • Method: GET
  • Path: /api/ecommerce/v1/miscellaneous/custom-storefront-instructions

ecommerce_enableManualPaymentMethodV1

Enable a manual payment method so the store can accept orders without an online payment provider.

  • Method: POST
  • Path: /api/ecommerce/v1/stores/{store_id}/payment-methods/manual

ecommerce_createDigitalProductV1

Create a published digital product with a single variant and an optional external download link.

  • Method: POST
  • Path: /api/ecommerce/v1/stores/{store_id}/products/digital

ecommerce_createPhysicalProductV1

Create a published physical product with a single variant priced in the store currency.

  • Method: POST
  • Path: /api/ecommerce/v1/stores/{store_id}/products/physical

ecommerce_listSalesChannelsV1

List a store's active sales channels with their full metadata.

  • Method: GET
  • Path: /api/ecommerce/v1/stores/{store_id}/sales-channels

ecommerce_createCustomSalesChannelV1

Create a custom sales channel for a store. Build your own frontend and keep your catalog, orders, shipping and payments in sync through the Ecommerce API.

  • Method: POST
  • Path: /api/ecommerce/v1/stores/{store_id}/sales-channels

ecommerce_updateSalesChannelV1

Update a custom sales channel. The merchant-facing name and the public url (returned as the channel domain) can be changed. Pass null to clear a value.

  • Method: PATCH
  • Path: /api/ecommerce/v1/stores/{store_id}/sales-channels/{sales_channel_id}

ecommerce_setStoreShippingV1

Set the flat-rate shipping price for a store, creating the shipping zone if it does not exist yet.

  • Method: POST
  • Path: /api/ecommerce/v1/stores/{store_id}/shipping

ecommerce_deleteStoreV1

Soft-delete a store owned by your account.

The underlying store data is preserved; only the store is marked as deleted.

  • Method: DELETE
  • Path: /api/ecommerce/v1/stores/{store_id}

ecommerce_getStoresV1

Retrieve the stores associated with your account.

  • Method: GET
  • Path: /api/ecommerce/v1/stores

ecommerce_createStoreV1

Create a new store for your account.

A primary sales channel is created alongside the store.

  • Method: POST
  • Path: /api/ecommerce/v1/stores

ecommerce_getStoreMetadataV1

Get a store's readiness metadata: whether payment methods and shipping are configured, plus its default currency. Useful to verify prerequisites before building a storefront.

  • Method: GET
  • Path: /api/ecommerce/v1/stores/{store_id}/metadata

hostinger-horizons-mcp

horizons_createWebsiteV1

Create new Hostinger Horizons website from the given message.\n Use this tool when user asks you to create a website, landing page, blog or any other type of application.\n This tool initiates the website creation process and returns a website URL and ID. The generation happens asynchronously.\n After invoking this tool, your chat reply must be EXACTLY 1 sentence summarizing that Hostinger Horizons is now creating their website and it will be ready in a few minutes and you should provide the website URL to the user immediately Do not write code.\n\nTo edit afterwards, users must go to Hostinger Horizons interface in the provided website URL. If the tool call fails with an error, you should provide a clear explanation of the error and do not generate code yourself in the chat. \n TECHNOLOGY STACK CONSTRAINTS (STRICTLY ENFORCED):\n The environment is limited to the following technologies. You MUST NOT use, suggest, or implement any technology outside this list:\n \n

  • Language: JavaScript ONLY.

  • Languages like TypeScript, Rust, Python, Java, PHP, etc., are STRICTLY PROHIBITED.\n

  • Framework: React.\n

  • Navigation: React Router.\n

  • Styling: TailwindCSS.\n

  • Components: shadcn/ui (built with @radix-ui primitives).\n

  • Icons: Lucide React.\n

  • Animations: Framer Motion.\n \n BACKEND & DATA STORAGE:\n

  • Horizons integrated backend is the EXCLUSIVE solution for persistent data storage, authentication, and database needs.\n

  • Local databases (SQLite, MySQL, etc.) are STRICTLY PROHIBITED.\n

  • Third-party services (Firebase, AWS Amplify) are allowed ONLY if explicitly requested by the user.\n \n MAPS:\n

  • OpenStreetMap is the default provider.\n

  • Alternative providers (Google Maps, Mapbox) are allowed ONLY if explicitly requested by the user.\n

  • Method: POST

  • Path: /api/horizons/v1/websites

horizons_getWebsiteV1

Get a link for the user to edit their website in Hostinger Horizons interface.\n Use this tool when user wants to modify, edit or add new features to an existing website.\n Websites can only be edited in Hostinger Horizons interface in the provided website URL.

  • Method: GET
  • Path: /api/horizons/v1/websites/{websiteId}

hostinger-hosting-mcp

hosting_importWordpressWebsite

Import a WordPress website from an archive file to a hosting server. This tool uploads a website archive (zip, tar, tar.gz, etc.) and a database dump (.sql file) to deploy a complete WordPress website. The archive will be extracted on the server automatically. Note: This process may take a while for larger sites. After upload completion, files are being extracted and the site will be available in a few minutes. The username will be automatically resolved from the domain.

  • Method: custom
  • Path: custom

hosting_deployWordpressPlugin

Deploy a WordPress plugin from a directory to a hosting server. This tool uploads all plugin files and triggers plugin deployment.

  • Method: custom
  • Path: custom

hosting_deployWordpressTheme

Deploy a WordPress theme from a directory to a hosting server. This tool uploads all theme files and triggers theme deployment. The uploaded theme can optionally be activated after deployment.

  • Method: custom
  • Path: custom

hosting_deployJsApplication

Deploy a JavaScript application from an archive file to a hosting server. IMPORTANT: the archive must ONLY contain application source files, not the build output, skip node_modules directory; also exclude all files matched by .gitignore if the ignore file exists. The build process will be triggered automatically on the server after the archive is uploaded. After deployment, use the hosting_listJsDeployments tool to check deployment status and track build progress.

  • Method: custom
  • Path: custom

hosting_deployStaticWebsite

Deploy a static website from an archive file to a hosting server. IMPORTANT: This tool only works for static websites with no build process. The archive must contain pre-built static files (HTML, CSS, JavaScript, images, etc.) ready to be served. If the website has a package.json file or requires a build command, use hosting_deployJsApplication instead. The archive will be extracted and deployed directly without any build steps. The username will be automatically resolved from the domain.

  • Method: custom
  • Path: custom

hosting_listJsDeployments

List javascript application deployments for checking their status. Use this tool when customer asks for the status of the deployment. This tool retrieves a paginated list of Node.js application deployments for a domain with optional filtering by deployment states.

  • Method: custom
  • Path: custom

hosting_showJsDeploymentLogs

Retrieve logs for a specified JavaScript application deployment for debugging purposes in case of failure.

  • Method: custom
  • Path: custom

hosting_clearWebsiteCacheV1

Permanently clears all server-side cache for the website at once. Use it when content was updated and needs to be visible immediately, or after making major changes.

Also purges the Hostinger CDN cache when CDN is enabled on the website. For a WordPress installation living in a subdirectory, pass the directory query parameter to clear its cache.

  • Method: DELETE
  • Path: /api/hosting/v1/accounts/{username}/websites/{domain}/cache/clear

hosting_toggleCachelessModeV1

Turns development (cacheless) mode on or off, based on the enabled flag. When enabled, nothing is cached, effectively turning off all caching for the website; use it while actively developing, testing changes, debugging issues, or when real-time updates must be visible. Disable it after finishing development work to restore the performance benefits of caching.

  • Method: PATCH
  • Path: /api/hosting/v1/accounts/{username}/websites/{domain}/cacheless-mode/toggle

hosting_toggleWebsiteCacheV1

Turns server-side caching for the website on or off, based on the enabled flag. Enable it for faster page loads, reduced server load, and improved user experience; recommended for production websites. Disabling may impact performance; to temporarily bypass caching while developing or debugging, prefer toggling cacheless mode instead.

Does nothing if caching is already in the requested state.

  • Method: PATCH
  • Path: /api/hosting/v1/accounts/{username}/websites/{domain}/cache/toggle

hosting_listAccountCronJobsV1

Returns the list of cron jobs configured for the specified account, including their schedule and command.

  • Method: GET
  • Path: /api/hosting/v1/accounts/{username}/cron-jobs

hosting_createAccountCronJobV1

Creates a cron job for the specified account from a schedule expression and a command.

Returns the created cron job, including its uid, which is required to delete the cron job or fetch its output.

  • Method: POST
  • Path: /api/hosting/v1/accounts/{username}/cron-jobs

hosting_deleteAccountCronJobV1

Permanently deletes the cron job identified by its uid.

The uid is returned by the list cron jobs endpoint.

  • Method: DELETE
  • Path: /api/hosting/v1/accounts/{username}/cron-jobs/{uid}

hosting_getCronJobOutputV1

Returns the output captured from the last execution of the cron job identified by its uid.

The uid is returned by the list cron jobs endpoint.

  • Method: GET
  • Path: /api/hosting/v1/accounts/{username}/cron-jobs/{uid}/output

hosting_changeDatabasePasswordV1

Changes the password for the specified database user.

The database name must be the full name returned by the list databases endpoint. The password must also be updated in any website configuration that uses this database.

  • Method: PATCH
  • Path: /api/hosting/v1/accounts/{username}/databases/{name}/change-password

hosting_listAccountDatabasesV1

Returns a paginated list of databases for the specified account.

Use the domain and is_assigned filters to find databases assigned to a specific domain.

  • Method: GET
  • Path: /api/hosting/v1/accounts/{username}/databases

hosting_createAccountDatabaseV1

Creates a database with a database user and password for the specified account.

The database name and user are automatically prefixed with the account username when needed.

  • Method: POST
  • Path: /api/hosting/v1/accounts/{username}/databases

hosting_deleteAccountDatabaseV1

Permanently deletes a database and its remote connections.

The database name must be the full name returned by the list databases endpoint.

  • Method: DELETE
  • Path: /api/hosting/v1/accounts/{username}/databases/{name}

hosting_createAccountDatabaseRemoteConnectionV1

Allows a remote host to connect to the specified database.

Provide an IPv4/IPv6 address, or "%" to allow any host. The database name must be the full name returned by the list databases endpoint.

  • Method: POST
  • Path: /api/hosting/v1/accounts/{username}/databases/{name}/remote-connections

hosting_deleteAccountDatabaseRemoteConnectionV1

Permanently removes a remote-access rule, revoking the given host's remote access to the database.

Identify the rule with the required ip query parameter (the IPv4/IPv6 address, or "%", exactly as returned by the list remote connections endpoint). The database name must be the full name returned by the list databases endpoint.

  • Method: DELETE
  • Path: /api/hosting/v1/accounts/{username}/databases/{name}/remote-connections

hosting_listAccountDatabaseRemoteConnectionsV1

Returns the remote-access rules for the specified account: the remote hosts (IPv4/IPv6 addresses, or "%" for any host) allowed to connect to the account databases.

Use the domain filter to only return rules for databases assigned to a specific domain.

  • Method: GET
  • Path: /api/hosting/v1/accounts/{username}/databases/remote-connections

hosting_repairDatabaseV1

Repairs corrupted database tables asynchronously.

Use when database errors, crashes, or corruption are reported. The database name must be the full name returned by the list databases endpoint.

  • Method: PATCH
  • Path: /api/hosting/v1/accounts/{username}/databases/{name}/repair

hosting_getPhpMyAdminLinkV1

Returns a direct sign-on link to phpMyAdmin for the specified database.

Use this when a visual database interface is needed for SQL queries, imports, exports, or table management. The database name must be the full name returned by the list databases endpoint.

  • Method: GET
  • Path: /api/hosting/v1/accounts/{username}/databases/{name}/phpmyadmin-link

hosting_listAvailableDatacentersV1

Retrieve a list of datacenters available for setting up hosting plans based on available datacenter capacity and hosting plan of your order. The first item in the list is the best match for your specific order requirements.

  • Method: GET
  • Path: /api/hosting/v1/datacenters

hosting_generateAFreeSubdomainV1

Generate a unique free subdomain that can be used for hosting services without purchasing custom domains. Free subdomains allow you to start using hosting services immediately and you can always connect a custom domain to your site later.

  • Method: POST
  • Path: /api/hosting/v1/domains/free-subdomains

hosting_listWebsiteParkedDomainsV1

Retrieve all parked or alias domains created under the selected website.

Use this endpoint to inspect parked domain configuration for a specific website, including the parent domain and root directory assigned to each parked domain.

  • Method: GET
  • Path: /api/hosting/v1/accounts/{username}/websites/{domain}/parked-domains

hosting_createWebsiteParkedDomainV1

Create a parked or alias domain for the selected website.

Provide a domain name or IP address to park on the website so it serves the same content as the parent domain.

  • Method: POST
  • Path: /api/hosting/v1/accounts/{username}/websites/{domain}/parked-domains

hosting_delet