Websupport MCP server
io.github.tydung26/websupport-mcp·v0.1.1·1 starsManage a Websupport account: DNS, FTP, hosting, databases, mailboxes, VPS and invoices.
1 stars39 downloads/wk
Reviews
Write oneNobody has reviewed Websupport yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Websupport tools (50, 15 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
ws_auth_checkVerify that the configured Websupport API key and secret authenticate successfully. Returns {verified: true} on success. Use this first when diagnosing 401 errors.
ws_db_createwrite actionCreate a database on a hosting service. …
ws_db_deletewrite actionPermanently delete a database and everything stored in it. The data is destroyed immediately and cannot be recovered from this API — restore from your own backup or it is gone. Any application still pointing at this database will start failing.
ws_db_getGet one database by id, including its name, type and connection details.
ws_db_listList the databases on a hosting service.
ws_db_statsUsage statistics for one database. `kind` selects the series: size (storage used) or cpu (query load).
ws_db_updatewrite actionUpdate a database. Only the supplied fields are sent. …
ws_db_users_listList the database users on a hosting service.
ws_dns_record_createwrite actionCreate a DNS record in a service zone. The API returns 204 with no body, so this tool re-lists the record it just wrote and returns that — `record` is null if the re-list found nothing.
ws_dns_record_deletewrite actionPermanently delete a DNS record by id. The record and its resolution are lost immediately and cannot be recovered — recreate it manually if deleted in error.
ws_dns_record_listList DNS records in a service zone, with paging and server-side filtering. Returns the API pagination envelope unflattened.
ws_dns_record_updatewrite actionUpdate a DNS record by id. Only the supplied fields are sent. The API returns 204 with no body.
ws_dns_zone_getGet the DNS zone attached to a service.
ws_domain_assignAssign a domain to a hosting service, optionally installing WordPress. Unlike the other v2 mutations this one returns a body rather than 204.
ws_dyndns_updatewrite actionBest-effort Dynamic DNS update via the standard /nic/update endpoint. Returns the raw text response, not JSON. This endpoint authenticates differently from the rest of the API (no date header) and its behaviour with a Standard API key is unverified — prefer ws_dns_record_update for reliable record changes.
ws_ftp_account_createwrite actionCreate an FTP account. The API returns 204 with no body, so this tool re-lists by login and returns the created account — without its password, which the API never echoes back.
ws_ftp_account_deletewrite actionPermanently delete an FTP account. Any client or deployment pipeline authenticating with these credentials loses access immediately. The account cannot be restored — it must be recreated with a new password.
ws_ftp_account_getGet one FTP account by id. The password is never returned.
ws_ftp_account_listList FTP accounts on a hosting service. Passwords are never returned — the API response schema has no password field.
ws_ftp_account_updatewrite actionUpdate an FTP account by id. Only the supplied fields are sent. Supplying `password` rotates it. The API returns 204 with no body.
ws_hosting_getGet one hosting service by id or uuid, including its package, limits and current usage.
ws_hosting_listList the hosting services on the account.
ws_hosting_statsUsage statistics for a hosting service. `kind` selects the series: size (disk usage), domain (per-domain traffic), or ftp (FTP activity).
ws_hosting_vhost_getGet one virtual host by id, including its document root and domain configuration.
ws_hosting_vhost_listList the virtual hosts (domains) served by a hosting service.
ws_invoice_getGet one invoice by id, including line items, totals and payment status. Use ws_invoice_pdf for the document itself.
ws_invoice_listList the account's invoices with their amounts, dates and payment status. Paying an invoice is deliberately out of scope for this server.
ws_invoice_pdfFetch an invoice as a PDF. `base64` returns the document encoded for a caller that will decode and save it. `binary` reports the size and type only — raw PDF bytes are never inlined into a tool result, because they would flood the conversation without being usable.
ws_mail_statsMail storage statistics for a hosting service. Supply `domain` to scope the figures to one domain; omit it for the whole service.
ws_mailbox_createwrite actionCreate a mailbox on a domain. Note the domain-rooted path: the domain id comes from ws_hosting_vhost_list. …
ws_mailbox_deletewrite actionPermanently delete a mailbox and every message stored in it. Mail already delivered is destroyed and cannot be recovered, and messages sent to the address afterwards will bounce.
ws_mailbox_getGet one mailbox by id, including its address, quota and forwarding configuration.
ws_mailbox_listList the mailboxes on a hosting service.
ws_mailbox_updatewrite actionUpdate a mailbox. This endpoint takes POST rather than PUT — a documented v1 quirk, not a mistake. …
ws_service_getGet one service by id, including its type, status and expiry. Use ws_service_list first to find the id.
ws_service_listList the account's services (hosting, domains, VPS and so on). Returns the v1 envelope {items, pager}. Service ids from here are the candidates for the v2 tools' `service` argument.
ws_service_set_auto_extendTurn automatic renewal on or off for a service. Switching it off means the service will expire at the end of its current term unless renewed manually — for a domain or hosting package that eventually means it stops working. Only the autoExtend flag is sent; no other service property is touched.
ws_user_getGet the account record: id, contact details, billing profiles, market and currency. SENSITIVE — the response includes the billing address, email address, phone number, and a verifyUrl containing a live account-verification key. Do not echo the full response to the user or store it; read the specific field needed.
ws_vps_getGet one VPS by id or name, including its specification, IP addresses and power state.
ws_vps_hard_rebootForce a VPS to power-cycle without letting the guest shut down. Equivalent to pulling the power cable: writes still in flight are lost and filesystems or databases can be left corrupted. Use ws_vps_reboot unless the machine is already unresponsive.
ws_vps_listList the VPS instances on the account.
ws_vps_rebootGracefully reboot a VPS. The guest operating system is asked to shut down cleanly first, so running services stop in an orderly way. The machine is unreachable while it restarts.
ws_vps_snapshot_createwrite actionTake a snapshot of a VPS disk, so its current state can be restored later. Snapshots consume storage against the account.
ws_vps_snapshot_deletewrite actionPermanently delete a VPS snapshot. The recovery point is destroyed and the disk state it held can no longer be restored. The running VPS is unaffected.
ws_vps_snapshot_listList the snapshots taken of a VPS, with their names and creation times.
ws_vps_snapshot_restoreOverwrite the VPS disk with the named snapshot. All data written since that snapshot was taken is permanently lost — databases, uploads, logs and configuration changes alike. There is no undo. Take a fresh snapshot first if the current state matters at all.
ws_vps_statsUsage statistics for a VPS. `kind` selects the series: cpu (processor load) or traffic (network transfer).
ws_vps_vncGet VNC console access details for a VPS. SENSITIVE — the response may carry a one-time console URL or session credential that grants direct machine access. Hand it to the user who asked for it and nothing else: do not log it, do not repeat it in a summary, and treat it as expiring.
ws_zone_getGet one DNS zone by domain name.
ws_zone_listList the DNS zones on the account. For the records inside a zone use the v2 tool ws_dns_record_list — v1 record CRUD is deprecated and deliberately not exposed.
Public scan report
scanner v0.1.10 · 2026-10-31 · same rubric, same numbers if you re-run it
- Code scan2 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitystatic API keys via environment variables6/15
- Maintenancelast push 0 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
How Websupport compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 83/100
- higher than 65% of 48,255 servers
- Tools
- 50
- the typical server has 7
- Tools that change things
- 30%
- typical: 0%. Fewer write tools means less an agent can break
- GitHub stars
- 1
- more than 65% of 28,688 servers
- Downloads a week
- 39
- more than 30% of 12,191 servers with a package
What its tools let an agent do: 35 read · 15 change
Install Websupport in Claude Code, Cursor or VS Code
Runs npx -y websupport-mcp on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add websupport-mcp -- npx -y websupport-mcp
What the publisher says
From the Websupport repository's README, as published. We do not edit it. Read it on GitHub
websupport-mcp
An MCP server (TypeScript, ESM, stdio) wrapping the Websupport REST API v1 + v2 — DNS, FTP, hosting, databases, mailboxes, VPS and invoices — exposed as MCP tools with signed HMAC-SHA1 authentication.
Status: early. All 50 tools are implemented and published, but most have been verified only as far as reaching the API — routes, signing and error handling are proven; response shapes largely are not. Read docs/verification-matrix.md before relying on any tool, and see IMPLEMENTATION_PLAN.md for progress.
Risk tiers
Tools are registered in three tiers, and the tier gates registration — a read-only deployment never sees a write tool in tools/list at all, so it costs no client context and offers no affordance.
A tool is destructive when it destroys state you cannot cheaply recreate — not merely because it writes. A graceful VPS reboot is write; a hard power-cycle is destructive, because it can corrupt in-flight writes. Taking a snapshot is write; restoring one is destructive, because it discards everything since.
The two opt-ins are independent: WEBSUPPORTALLOWDESTRUCTIVE=1 alone does not unlock write tools, and vice versa.
The confirm: true argument, not MCP elicitation, is the safety boundary. Protocol negotiation may settle well below the revision that supports elicitation — this server's SDK currently tops out at 2025-11-25 — and a gate that disappears against an older client is not a gate.
Install
Requires Node >= 22. Nothing to install ahead of time — npx fetches the package on first run.
Add this to your MCP client's configuration:
{
"mcpServers": {
"websupport": {
"command": "npx",
"args": ["-y", "websupport-mcp"],
"env": {
"WEBSUPPORT_API_KEY": "…",
"WEBSUPPORT_API_SECRET": "…"
}
}
}
}That gives you the 30 read-only tools. Nothing in that configuration can change your account.
To allow changes, add only the opt-ins you need — see Risk tiers above:
"env": {
"WEBSUPPORT_API_KEY": "…",
"WEBSUPPORT_API_SECRET": "…",
"WEBSUPPORT_ALLOW_WRITE": "1",
"WEBSUPPORT_ALLOW_DESTRUCTIVE": "1"
}Ready-made configurations for each combination live in examples/mcp-config/. Pin a version with websupport-mcp@0.1.1 in place of websupport-mcp.
Once it is wired up, ask your client to run wsauthcheck. It returns {"verified": true} when the credentials work, which is the quickest way to separate a bad key from anything else.
Docker
A Dockerfile is included, for hosts that run containers rather than npx and for registry build sandboxes:
docker build -t websupport-mcp .
docker run -i --rm -e WEBSUPPORT_API_KEY -e WEBSUPPORT_API_SECRET websupport-mcp-i is not optional — the transport is stdio. No credentials are baked into the image; pass them per run.
From a local checkout
For development, or to run unreleased changes:
npm install
npm run buildThen point command at node and args at the built entrypoint (/dist/index.js) instead of npx.
Credentials
Generate a Standard API access pair in WebAdmin (Security → API keys). A DynDNS-only pair authenticates against /nic/update and nothing else.
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Websupport: common questions
- Is Websupport MCP server safe?
- Mostly: it is graded B (83/100). Read the Websupport safety report
- How do I install Websupport?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Websupport need an API key?
- Yes. The registry entry asks for
WEBSUPPORT_API_SECRET. - Is Websupport maintained?
- The last commit was 4 days ago (2026-10-31). The latest release is v0.1.1.
- How does Websupport compare with other MCP servers?
- safety score 83/100 (higher than 65% of 48,255 servers); tools 50 (the typical server has 7); tools that change things 30% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.