On this page
There are two ways to run the Hostinger API MCP server. The quick way needs
no install: run claude mcp add --transport http hostinger https://mcp.hostinger.com
and sign in with OAuth. The local way is npm install -g @hostinger/mcp
(Node.js 24 or later) plus an API token from hPanel. TrustedMCP grades it B.
Hosted or local: which should you run?
Both come from Hostinger's official api-mcp-server repo (MIT). Version 3.39.2 shipped on 2026-11-12.
Hosted (mcp.hostinger.com) |
Local (@hostinger/mcp) |
|
|---|---|---|
| Install | Nothing | Node.js 24+, then npm |
| Sign-in | OAuth in your browser | API token, or the same OAuth sign-in |
| Transport | HTTPS (Streamable HTTP) | stdio by default, optional --http |
| Limit it to one area (DNS, VPS) | Not documented | Yes, with a scoped command |
| Best for | Trying it in Claude Code, Codex or Cursor | Scripts, CI, or narrowing what it can touch |
Pick the hosted server if you just want to try it. Pick the local package if a script or CI job needs a token, or you want the agent to reach only DNS or only your VPS.
Run the Hostinger API MCP server hosted (OAuth)
These commands come from Hostinger's README.
Claude Code:
claude mcp add --transport http hostinger https://mcp.hostinger.com
A browser window opens. Approve the sign-in, and the server is ready in your session. (New to this? See Claude Code MCP setup.)
Codex:
codex mcp add hostinger --url https://mcp.hostinger.com
codex mcp login hostinger
Other clients (Cursor, VS Code and so on): add https://mcp.hostinger.com
as a remote Streamable HTTP server and finish the OAuth prompt. Hostinger's
manual configuration page
shows the generic form:
{
"mcpServers": {
"hostinger": {
"url": "https://mcp.hostinger.com"
}
}
}
Hostinger calls this setup the Hostinger Connector and says it is free to use. You still need a Hostinger plan for whatever you want to manage.
Run the Hostinger API MCP server locally with npm
-
Install Node.js 24 or later. That is what the README asks for.
-
Install the package globally:
npm install -g @hostinger/mcp -
Create an API token in hPanel: open the API page and generate a new token. Give it an expiry date. The token is shown once, so copy it then. (You can skip the token and sign in with OAuth instead; see below.)
-
Find two absolute paths. From your home folder, run
node -p process.execPath(your Node binary) andnpm root -g(the folder that holds@hostinger/mcp). -
Add the server to your client's config with those paths. This is the README's example:
{
"mcpServers": {
"hostinger-api": {
"command": "/absolute/path/to/node",
"args": ["/absolute/path/to/global/node_modules/@hostinger/mcp/src/servers/all.js"],
"env": {
"DEBUG": "false",
"HOSTINGER_API_TOKEN": "YOUR API TOKEN"
}
}
}
}
Why absolute paths and not npx? Clients start the server inside your
project folder. There, npx puts the project's node_modules/.bin first on
your PATH, and a version manager can switch to the project's Node. The README
warns: "Any of these lets a cloned repository run its own code with your
Hostinger credentials." So point at the Node binary and the script directly.
OAuth instead of a token. Leave HOSTINGER_API_TOKEN out and the local
server signs you in through the browser on the first call. It stores the tokens
in ~/.config/hostinger-mcp/credentials.json (macOS and Linux) or
%APPDATA%\hostinger-mcp\credentials.json (Windows). hostinger-api-mcp --login
signs in right away, and hostinger-api-mcp --logout revokes the stored
tokens. If both are set, the token wins.
To update later, run npm update -g @hostinger/mcp. For keeping tokens out of
shared config files, see MCP API keys in config.
If you followed Hostinger's older tutorial
Hostinger's tutorial "How to run your own Hostinger API MCP server" (last
updated 2026-09-29) installs hostinger-api-mcp on Node.js 20, runs it as a
bare hostinger-api-mcp command and puts the token in APITOKEN.
That setup still runs. The hostinger-api-mcp package is still published from
the same repo (also 3.39.2), and the code still reads APITOKEN as an old
alias. But the README has moved on:
- package
@hostinger/mcpinstead ofhostinger-api-mcp HOSTINGER_API_TOKENinstead ofAPITOKEN(the README says the similarAPI_TOKEN"will be removed in a future version")- Node.js 24 or later
- absolute paths to Node and the script, never a bare command or
npx
Switch to the new names the next time you edit your config.
API token or OAuth: what you are giving the agent
Neither route lets you limit access to one service:
- API token: Hostinger's API docs say "Tokens inherit the permissions of the user who created them and can be set to expire." There are no per-token scopes. You delete a token on the same API page, and Hostinger says revoked tokens "stop working immediately".
- Hosted OAuth: the server's own metadata (its
/.well-known/oauth-protected-resourcefile) lists one scope,mcp:use. So this grant is all or nothing too.
Either way, the agent can do what you can do in hPanel, including buying things. Three ways to narrow it:
- Set an expiry date on the token, and delete it when the job is done.
- Use a scoped command (next section), so the agent only reaches one area.
- Keep tool approval on and read each call before you allow it (see the risky operations).
More on how MCP sign-in works: MCP authentication.
Limit what it can touch with a scoped command
The npm package installs one main command and 13 smaller ones. Each smaller one only finds and runs the operations in its own group. Counts from the README on 2026-11-12:
| Command | Operations |
|---|---|
hostinger-api-mcp |
all 414 |
hostinger-vps-mcp |
68 |
hostinger-hosting-mcp |
59 |
hostinger-domains-mcp |
43 |
hostinger-wordpress-mcp |
41 |
hostinger-mail-mcp |
39 |
hostinger-billing-mcp |
10 |
hostinger-dns-mcp |
9 |
The others are agency-hosting (43), reach (71), ecommerce (30), horizons (7), gpu (5) and agent-readiness (4).
If an agent only needs to fix DNS records, run the DNS command. In the JSON
config above, change src/servers/all.js to src/servers/dns.js (that is the
file the hostinger-dns-mcp command runs). It can't buy a VPS, because those
operations aren't in its list.
One catch: the token itself still has full access. The limit lives in the server, not the token, so don't reuse that token anywhere else.
Tools that change DNS, domains, VPS and billing
Every command exposes the same three tools:
searchfinds operations by keyword. It is marked read-only.executeruns one operation, such asdns_records_update.multi-executeruns up to 20 operations in order and stops at the first failure.
The server marks execute and multi-execute as destructive (see
MCP tool annotations), because one tool can run
anything in the list. That has a catch. If your client asks before each
execute call and you click "always allow", you have allowed every operation
at once, purchases included. Approve each call, and read the operation name
and params first.
These operations from the README deserve a second look:
DNS
dns_records_updatewithoverwrite = true"will replace existing records with the provided ones".dns_records_resetresets the zone "to the default records".dns_records_deletedeletes the records that match a name and type.- If a change goes wrong,
dns_snapshots_listanddns_snapshots_restorelet you go back to an earlier version of the zone.
Domains
domains_portfolio_update-nameserverspoints the domain at other name servers.domains_portfolio_disable-lockanddomains_portfolio_authorization-codeare the two steps before a domain can move to another registrar.domains_move_start-outgoingstarts moving a domain to another Hostinger account.domains_portfolio_purchasebuys a domain. "If no payment method is provided, your default payment method will be used automatically."
VPS
vps_virtual-machines_recreatereinstalls the operating system. "Snapshots, if there are any, will be deleted."vps_virtual-machines_set-root-password,vps_virtual-machines_stop,vps_firewall_deactivate,vps_backups_restoreandvps_snapshots_restoreall change a running server.vps_virtual-machines_purchasebuys a new VPS, again with your default payment method.
Billing
billing_orders_create-purchaseplaces an order "for any Hostinger product".billing_payment-methods_deleteremoves a saved card.billing_subscriptions_disable-auto-renewalturns off renewal, which can let a domain or plan run out.
Website deploys on the hosting side carry their own warning in the README: "this
overwrites the website's existing contents and cannot be undone". The good news
is that the deploy tools refuse to upload files from your home folder,
credential folders such as .ssh and .aws, or system folders, because the
model picks the path.
Running it over HTTP (--http)
The local server can also listen over Streamable HTTP with
hostinger-api-mcp --http (default 127.0.0.1:8100). This mode needs
HOSTINGER_API_TOKEN, because OAuth sign-in doesn't work in it.
Be careful with it. We read the code (startHttp in src/core/runtime.ts).
It is plain HTTP, it doesn't check who is calling, and every request runs with
the token in the server's environment. The README's client example sends an
Authorization header, but the server doesn't check it. So anything that can
reach the port can use your Hostinger account.
- Keep the default host,
127.0.0.1. - Don't use the README's
--host 0.0.0.0example on a shared network, unless an HTTPS proxy with its own sign-in sits in front. - If a remote client needs access, use the hosted server instead.
Background: MCP Streamable HTTP.
Is the Hostinger MCP server safe? Our grade
TrustedMCP grades the Hostinger listing B (see how we score servers). It is an assessment from public signals, not an audit.
- Auth (lost points): the hosted server uses OAuth with PKCE, but one scope covers the whole account, and API tokens have no scopes.
- Maintenance (full marks): 12 people committed in the 90 days to 2026-11-12, and new releases ship most days.
- Known CVEs (full marks): no advisories in the repo, the GitHub advisory database or OSV.
- Transport (biggest deduction): the hosted server is HTTPS and the
default stdio mode is fine, but the local
--httpmode is plain HTTP with no check on callers. The only shell-out we found opens your browser for OAuth, with a fixed command and no shell.
Our advice: use the hosted server with OAuth on your own laptop. For scripts,
use a scoped command and a token with an expiry date. In both cases, keep
approval on for every execute, and never give it a production account you
aren't ready to see changed. For the bigger picture, see
MCP security best practices. Other
hosting servers we grade: Cloudflare and
Railway.
Need an MCP server for your own hosting or cloud platform, with scoped tokens built in? Tell us about it.
Frequently asked questions
Is there an official Hostinger MCP server?
Yes. Hostinger maintains hostinger/api-mcp-server (MIT) on GitHub, publishes
it on npm as @hostinger/mcp, and runs a hosted copy at
https://mcp.hostinger.com.
How do I run the Hostinger API MCP server?
The fastest way is the hosted server: run
claude mcp add --transport http hostinger https://mcp.hostinger.com and sign
in. To run it yourself, install Node.js 24 or later, run
npm install -g @hostinger/mcp, set HOSTINGER_API_TOKEN, and point your
client at Node and src/servers/all.js by absolute path.
Do I need a Hostinger API token?
Not for the hosted server, which uses OAuth. The local server works with a
token or with the same OAuth sign-in. Only the local --http mode needs a
token.
Where do I get a Hostinger API token?
In hPanel, open the API page and generate a new token. Copy it straight away, because it is shown once. Set an expiry date, and delete the token on the same page when you no longer need it.
Can I make the Hostinger MCP server read-only?
We found no read-only switch in the README. The closest you can get is a
scoped command (such as hostinger-dns-mcp) plus approving every execute
call yourself. Only search is read-only.
Can the Hostinger MCP server spend money?
Yes. It can buy domains, VPS plans and other Hostinger products. If no payment method is given, Hostinger charges your default one. Keep tool approval on.
Is hostinger-api-mcp the same as @hostinger/mcp?
Yes. Both npm packages are published from the same repo at the same version
(3.39.2 on 2026-11-12). The README now uses @hostinger/mcp.
How do I add the Hostinger MCP server to Claude Code?
Run claude mcp add --transport http hostinger https://mcp.hostinger.com. A
browser window opens for the OAuth sign-in, and the server is ready in your
session. The same address works as a remote Streamable HTTP server in Cursor
and VS Code.
Is the Hostinger MCP server safe?
TrustedMCP grades it B, an assessment from public signals rather than an
audit. Maintenance and known CVEs score full marks. Points are lost because API
tokens and the OAuth scope cover the whole account, and the local --http mode
is plain HTTP that doesn't check who is calling. Keep tool approval on for every
execute call.
Which Hostinger plan does the MCP server need?
The server can only manage what your account already holds. A new, empty account gives the agent nothing to work on. Choose the plan by the job you want to hand over:
| You want the agent to manage | Get | Matching scoped command |
|---|---|---|
| DNS records, nameservers, renewals | A domain | hostinger-dns-mcp, hostinger-domains-mcp |
| Websites, WordPress, mailboxes | Web hosting | hostinger-hosting-mcp, hostinger-wordpress-mcp, hostinger-mail-mcp |
| A Linux server: restarts, snapshots, firewall | A VPS | hostinger-vps-mcp |
Once the plan is active, create the API token or sign in with OAuth as shown
above. Start with the scoped command for that plan, not the full
hostinger-api-mcp.
These are referral links. If you buy through them, TrustedMCP may earn a reward. That has no effect on the B grade, which we score from public signals only.