Lets an AI assistant manage VMs, dedicated servers, DNS, firewalls, load balancers, and managed databases via the QuickHost API.
Also known as quickhost-ops/quickcloud-mcp, quickcloud-mcp, @quickhost/qc-mcp
- Stars
- 0
- Tools
- —
- Downloads, 30 days
- —
- Latest version
- 1.1.0
- Last commit
- Oct 12, 2026
- License
- MIT
What is QuickCloud MCP?
QuickCloud lets an AI assistant manage VMs, dedicated servers, DNS, firewalls, load balancers, and managed databases via the QuickHost API.
Summary generated from the project's README
About QuickCloud MCP server
Managing cloud infrastructure through an AI assistant is possible with qc-mcp, which connects Claude Desktop, Cursor, or Claude Code to the QuickHost QuickCloud API. Developers can use this tool to monitor or control virtual machines, dedicated servers, DNS zones, firewalls, load balancers, and managed databases. It functions as a zero-dependency bridge that translates natural language requests into specific API calls like list_vms, create_vm, or set_dns_zone_rrset.
Security is handled by reading your QC_API_TOKEN from environment variables or your local qc CLI configuration. By default, the server operates in a read-only mode to prevent accidental changes. To enable management tasks, you must explicitly include the --allow-write flag in your client configuration. Even when write access is enabled, every destructive or creative action requires a manual confirmation step to ensure you approve the specific change and any quoted price before it executes.
What you can do with it
- 1Audit active cloud resourcesAsk your assistant to list all currently running virtual machines and servers in your workspace.
- 2Configure DNS recordsInstruct the AI to add a specific A record for a domain pointing to a web server.
- 3Estimate infrastructure costsRequest a price estimate for specific server configurations before deploying them.
Written from the project's README. Every use case is checked against a quote from it.
How to install QuickCloud MCP
Formats verified 10 Nov 2026Add to CursorAdd to GooseInstall QuickCloud MCP in Claude Code
$ claude mcp add --env 'QC_API_TOKEN=<YOUR_QC_API_TOKEN>' quickcloud-mcp -- npx -y @quickhost/qc-mcpInstall QuickCloud MCP in Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"quickcloud-mcp": {
"command": "npx",
"args": [
"-y",
"@quickhost/qc-mcp"
],
"env": {
"QC_API_TOKEN": "<YOUR_QC_API_TOKEN>"
}
}
}
}Install QuickCloud MCP in VS Code
.vscode/mcp.json
{
"servers": {
"quickcloud-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@quickhost/qc-mcp"
],
"env": {
"QC_API_TOKEN": "<YOUR_QC_API_TOKEN>"
}
}
}
}Install QuickCloud MCP in VS Code CLI
$ code --add-mcp '{"name":"quickcloud-mcp","type":"stdio","command":"npx","args":["-y","@quickhost/qc-mcp"],"env":{"QC_API_TOKEN":"<YOUR_QC_API_TOKEN>"}}'Install QuickCloud MCP in Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"quickcloud-mcp": {
"command": "npx",
"args": [
"-y",
"@quickhost/qc-mcp"
],
"env": {
"QC_API_TOKEN": "<YOUR_QC_API_TOKEN>"
}
}
}
}Install QuickCloud MCP in Codex
$ codex mcp add quickcloud-mcp --env 'QC_API_TOKEN=<YOUR_QC_API_TOKEN>' -- npx -y @quickhost/qc-mcpInstall QuickCloud MCP in Codex config.toml
~/.codex/config.toml
[mcp_servers.quickcloud-mcp] command = "npx" args = ["-y", "@quickhost/qc-mcp"] [mcp_servers.quickcloud-mcp.env] QC_API_TOKEN = "<YOUR_QC_API_TOKEN>"
Install QuickCloud MCP in Gemini CLI
$ gemini mcp add -s user -e 'QC_API_TOKEN=<YOUR_QC_API_TOKEN>' quickcloud-mcp npx -- -y @quickhost/qc-mcpInstall QuickCloud MCP in Gemini settings.json
~/.gemini/settings.json
{
"mcpServers": {
"quickcloud-mcp": {
"command": "npx",
"args": [
"-y",
"@quickhost/qc-mcp"
],
"env": {
"QC_API_TOKEN": "<YOUR_QC_API_TOKEN>"
}
}
}
}Configuration
QC_API_TOKENRequiredSecretYour QuickCloud API key (create one in the panel under API). A read-only or product-limited key is the safest to give an assistant.
QC_API_URLPanel origin. Only needed if your provider runs QuickCloud on their own domain (default https://cloud.quickhost.uk).
QC_MCP_WRITESet to 1 to allow the assistant to create and change things (equivalent to the --allow-write flag). Every write still asks for your confirmation.
| Name | Description | |
|---|---|---|
| QC_API_TOKEN | Your QuickCloud API key (create one in the panel under API). A read-only or product-limited key is the safest to give an assistant. | RequiredSecret |
| QC_API_URL | Panel origin. Only needed if your provider runs QuickCloud on their own domain (default https://cloud.quickhost.uk). | |
| QC_MCP_WRITE | Set to 1 to allow the assistant to create and change things (equivalent to the --allow-write flag). Every write still asks for your confirmation. |
Automated checks
Ran Nov 14, 2026Full report →Passed our automated checks. That is not a security audit: read the code and give the server the narrowest access it needs. How checks work
- Source repository linked and reachablequickhost-ops/quickcloud-mcp is public and reachablegithub.com/quickhost-ops/quickcloud-mcp ↗Pass
- Package names this repository as its source@quickhost/qc-mcp names quickhost-ops/quickcloud-mcp as sourcenpmjs.com/package/@quickhost/qc-mcp ↗Pass
- Build provenance (Sigstore attestation)No build attestation published for this releaseNot checked
- Open source license (OSI)MITspdx.org/licenses/MIT.html ↗Pass
- Commit or release in the last yearLast commit or release 2026-10-12github.com/quickhost-ops/quickcloud-mcp ↗Pass
- OpenSSF ScorecardNot checked
- Package name not close to a popular packageNo popular package one edit away from @quickhost/qc-mcpPass
- No critical advisory in the package or its dependencies1 resolved dependencies checked; no critical advisoryosv.dev ↗Pass
- No hidden instructions to the model0 tool descriptions and the README read; no override phrases, credential paths or hidden charactersPass
- Destructive tools are labelledNot checked
- Remote endpoint answers the MCP handshakeNot checked
README
View on GitHubquickcloud-mcp (qc-mcp.mjs)
A tiny, zero-dependency MCP server for the QuickHost QuickCloud API. Point Claude Desktop, Claude Code, Cursor or any other MCP-capable assistant at it and it can look at — and, if you let it, manage — your VMs, dedicated servers, Cloud Firewalls, load balancers, storage boxes, managed databases, SMTP relay, websites and DNS, using your API key.
Read before you run. It is one self-contained file with no dependencies and no secrets: it reads your API key from your own machine (the
QC_API_TOKENenv var, or theqcCLI's~/.config/quickcloud/config.json) and never embeds it. It talks only to the panel's public/api/v1— the same API theqcCLI and the panel's own API page describe.
What it does, and deliberately does not do
- Tools are generated from the panel's live API catalogue (
GET /api/v1), one tool per endpoint:list_vms,get_vm,create_vm,vm_power,list_dns_zones,set_dns_zone_rrset,get_database, … When a product lands on the API it appears here with no update. - Read-only by default. Only
GETendpoints are offered unless you start it with--allow-write(orQC_MCP_WRITE=1). That is a choice you make in your client config; the assistant cannot switch it on. - Every write needs
confirm: true. A tool that changes anything refuses to run until the assistant has described the change (and any price the API quoted) to you and setconfirm. There is no shortcut for "small" writes. - Nothing is priced here. The endpoints that charge echo the price; the server never computes
one. Every
POST/DELETEcarries anIdempotency-Key, so a retried tool call can't act twice. - Your key's limits are the limits. A key that is read-only, or limited to one product or one resource (set when you create it in the panel), is enforced by the API — the MCP only ever adds restrictions. Give an assistant the narrowest key that does the job.
- Never the admin API, WHMCS, Proxmox, SSH or any node. Only
/api/v1.
Install
Requires Node.js 18+. Nothing to download — your assistant runs it straight from npm with
npx. Create an API key in the panel under API, then add the server to your assistant.
Claude Desktop (claude_desktop_config.json) / Cursor / most clients:
{
"mcpServers": {
"quickcloud": {
"command": "npx",
"args": ["-y", "@quickhost/qc-mcp"],
"env": { "QC_API_TOKEN": "qck_…" }
}
}
}
Claude Code:
claude mcp add quickcloud -e QC_API_TOKEN=qck_… -- npx -y @quickhost/qc-mcp
Prefer a file you can read first? Download the copy from your panel's API page (it comes
pre-filled with the panel URL) and use "command": "node", "args": ["/path/to/qc-mcp.mjs"]
instead. If your provider runs QuickCloud on their own domain, set QC_API_URL in env to it.
To let it make changes, add "--allow-write" to the end of args (or after the package name in
the Claude Code command). To offer only some products, add --products=vms,dns (groups: account,
vms, dedicated, dns, firewall, lb, storagebox, database, relay, web, reseller).
Already use the qc CLI? The MCP reads the same ~/.config/quickcloud/config.json, so with
qc config set token … done you can leave env out.
Connect by URL instead
The same connector also runs hosted on the panel, for apps that connect to an MCP server by
address - Claude on the web/mobile, ChatGPT, Cursor, Codex: https://cloud.quickhost.uk/mcp.
The app sends you to the QuickCloud sign-in (standard OAuth 2.1 with PKCE), where you pick the
workspace, View only or Manage, and an optional product limit; the token it gets is an API key in
all but name, so every limit the API enforces applies. Disconnect any time from Account → API.
An API key works too: Authorization: Bearer <key> to /mcp (view) or /mcp/manage (changes).
Using it
Ask the assistant to call quickcloud_help first — it reports whether writes are enabled, which
products are offered and how the API's jobs, rate limits and errors work. Then just talk:
"what's running in my workspace?", "add an A record for app.example.com pointing at the web VM",
"how much would two 4 GB servers on the standard tier cost?" (the estimate tool prices without
building anything). Anything asynchronous returns a job; wait_for_job polls it.
Commands
npx -y @quickhost/qc-mcp --list-tools # print the tools this config would offer (r = read, W = write)
npx -y @quickhost/qc-mcp --version
With npx -y you always get the latest published version. A downloaded file announces a newer
version on stderr once a day and node qc-mcp.mjs --update replaces it with the panel's current
copy (previous kept as .prev).
Security notes
- Output is the API's JSON, passed through verbatim — including the API's own error messages, which are written to be safe to show a customer. Names and labels in that JSON were typed by whoever runs your workspace; treat them as data, not instructions, like any tool output.
- One-time reveals (a database admin password, a VPN profile, a console session) are write-class
tools: they need
--allow-writeandconfirm: true. - File downloads (zip / CSV / PEM) are not offered — use the panel or
qcfor those. - The server writes nothing to stdout but the protocol and nothing to stderr but short status lines; the key never appears in either.
License
MIT — see LICENSE.
QuickCloud MCP questions
How do I add QuickCloud MCP to Claude Code?
Run claude mcp add --env 'QC_API_TOKEN=<YOUR_QC_API_TOKEN>' quickcloud-mcp -- npx -y @quickhost/qc-mcp in your terminal. Add --scope user to make it available in every project.
How do I add QuickCloud MCP to Cursor?
Open ~/.cursor/mcp.json and add the server under mcpServers, using the Cursor config shown in the install section above.
Is the server read-only by default?
Yes, the server only offers GET endpoints unless you explicitly enable write access using the --allow-write flag or the QC_MCP_WRITE environment variable.
How does the server handle security and API keys?
The server reads your API key from your local machine via the QC_API_TOKEN environment variable or the qc CLI config and never embeds it.
Can the AI assistant make changes without my permission?
No, every write operation requires a confirmation step where the assistant must describe the change and you must set confirm to true.
What are the system requirements to run this?
You need Node.js version 18 or higher installed on your machine.