mcpField
Q
qc-mcp

qc-mcp

Local
quickcloud.ukCloud & Infra0Updated 2w ago

About qc-mcp

qc-mcp is a zero-dependency MCP server for QuickCloud users who want an AI assistant to inspect or manage hosting resources. It generates tools from the live API catalogue and defaults to read-only access, with explicit confirmation required for writes.

Key features

  1. 01Live API-generated tools
  2. 02Read-only access by default
  3. 03Confirmed writes with idempotency keys
  4. 04Product-level tool filtering
  5. 05API key and qc CLI configuration support

Use cases

  1. 01Inspect VMs, DNS, databases, or firewalls
  2. 02Manage hosting resources after enabling writes
  3. 03Estimate costs before creating resources

MCP support

Exposes QuickCloud API endpoints as tools to MCP clients. It can run locally or be reached as a hosted server; writes require explicit enabling and confirmation.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"uk-quickcloud-qc": {
"command": "npx",
"args": [
"-y",
"@quickhost/qc-mcp"
],
"env": {
"QC_API_TOKEN": "<QC_API_TOKEN>",
"QC_API_URL": "<QC_API_URL>",
"QC_MCP_WRITE": "<QC_MCP_WRITE>"
}
}
}
}
Run commandnpx -y @quickhost/qc-mcp
Environment variables to set
QC_API_TOKENSecretYour 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.

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@quickhost/qc-mcp1.1.0

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

quickcloud-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_TOKEN env var, or the qc CLI's ~/.config/quickcloud/config.json) and never embeds it. It talks only to the panel's public /api/v1 — the same API the qc CLI 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 GET endpoints are offered unless you start it with --allow-write (or QC_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 set confirm. 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/DELETE carries an Idempotency-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-write and confirm: true.
  • File downloads (zip / CSV / PEM) are not offered — use the panel or qc for 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.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.