{
  "markdown": "# impreza-mcp\n\n[![smithery badge](https://smithery.ai/badge/imprezahost/impreza-mcp)](https://smithery.ai/servers/imprezahost/impreza-mcp)\n\n[Model Context Protocol](https://modelcontextprotocol.io) server for\n[Impreza Host](https://imprezahost.com). Lets AI coding tools (Claude\nCode, Cursor, Codex CLI, Continue, Zed, ...) deploy customer-built\napps to managed Impreza VPSes without leaving the chat.\n\nWhen you say \"deploy this for me\" to Claude with this MCP server\nloaded, Claude calls `impreza_deploy_custom` directly — packages your\nproject, uploads it, builds + runs on your Impreza VPS, and reports\nback the URL.\n\n## Status\n\n**Full surface live.** All 62 tools shipped — app deployment (14) plus\naccount + crypto balance, catalog + ordering, domains/DNS + registration,\ninvoices, VPS lifecycle with snapshots and backups, dedicated / bare-metal\nservers, plan upgrades, and Titan / Google Workspace mailboxes — with a setup\nwizard that generates ready-to-paste config snippets for 5 AI tools.\n\nThe local (`npx`) server and the hosted OAuth connector expose the **same 62\ntools**, so nothing is lost by picking either path.\n\n| Tool | Wraps |\n|------|-------|\n| **Apps & deployments** | |\n| `impreza_list_servers` | `GET /v1/platform/servers` |\n| `impreza_list_apps` | `GET /v1/platform/apps` |\n| `impreza_list_deployments` | `GET /v1/platform/deployments` + `/custom` (merged) |\n| `impreza_deploy_custom` | `POST /v1/platform/deployments/custom` (3 modes) |\n| `impreza_deploy_catalog_app` | `POST /v1/platform/deployments` |\n| `impreza_uninstall_deployment` | `POST .../uninstall` |\n| `impreza_get_logs` | `POST .../logs` (sync tail, last N lines) |\n| `impreza_restart_deployment` | `POST .../restart` |\n| `impreza_redeploy_deployment` | `POST .../custom/{id}/redeploy` (in-place rebuild, same domain) |\n| `impreza_add_onion` | `POST .../onion/add` |\n| `impreza_change_domain` | `POST .../domain` |\n| `impreza_git_webhook_status` | `GET .../custom/{id}/git-webhook` |\n| `impreza_git_webhook_connect` | `POST .../custom/{id}/git-webhook/connect` |\n| `impreza_git_webhook_disconnect` | `POST .../custom/{id}/git-webhook/disconnect` |\n| **Account & balance** | |\n| `impreza_account_info` | `GET /v1/account` |\n| `impreza_list_services` | `GET /v1/account/services` |\n| `impreza_topup` | `POST /v1/account/topup` — top up in BTC / XMR / USDT / TRX |\n| `impreza_topup_status` | `GET /v1/account/topup/{invoice_id}` |\n| `impreza_topup_payment` | `GET /v1/account/topup/{invoice_id}/payment` — crypto address + amount to pay |\n| **Catalog & ordering** | |\n| `impreza_list_products` | `GET /v1/products` — plans + pricing (filter `type=server` for VPS/dedicated) |\n| `impreza_order_vps` | `POST /v1/orders` — buy from balance; born deployable (`@agent`); 202 + poll `impreza_list_servers` |\n| **Domains & DNS** | |\n| `impreza_domain_check` | `GET /v1/domains/check` |\n| `impreza_domain_details` | `GET /v1/domains/{domain}` |\n| `impreza_list_dns` | `GET /v1/domains/{domain}/dns` |\n| `impreza_add_dns_record` | `POST /v1/domains/{domain}/dns` |\n| `impreza_update_dns_record` | `PUT /v1/domains/{domain}/dns` |\n| `impreza_delete_dns_record` | `DELETE /v1/domains/{domain}/dns` |\n| `impreza_set_nameservers` | `PUT /v1/domains/{domain}/nameservers` |\n| **VPS lifecycle** (Proxmox) | |\n| `impreza_vps_status` | `GET /v1/vps/proxmox/{id}/status` |\n| `impreza_vps_power` | `POST /v1/vps/proxmox/{id}/{start\\|shutdown\\|reboot\\|stop}` |\n| `impreza_vps_list_backups` | `GET /v1/vps/proxmox/{id}/backups` |\n| `impreza_vps_create_backup` | `POST /v1/vps/proxmox/{id}/backups` |\n| `impreza_vps_list_templates` | `GET /v1/vps/proxmox/{id}/templates` |\n| `impreza_vps_reinstall` | `POST /v1/vps/proxmox/{id}/reinstall` — destructive (wipes) |\n\n## Install + setup\n\n### Prerequisites\n\n  - Node ≥ 20\n  - An Impreza Host account with an API key + secret\n    (clientarea → API Keys; the IP of the machine running this MCP\n    server must be whitelisted under the key)\n\n### One-shot via `npx`\n\nNo global install needed — `npx impreza-mcp` works.\n\n### Or install globally\n\n```sh\nnpm install -g impreza-mcp\n```\n\n### Get a ready-to-paste config snippet\n\nThe fastest path: ask the binary itself.\n\n```sh\nnpx impreza-mcp setup --tool claude-code\n# also: cursor | continue | zed | codex-cli\n```\n\nThe wizard prints the JSON block to drop into your AI tool's MCP\nconfig + the exact file path + the post-config step (usually \"fully\nquit + re-open the AI tool\"). It does NOT write to disk — paste it\nyourself so you don't accidentally clobber an existing config with\nother MCP servers.\n\n### Or wire it in manually\n\n**Claude Code** — add to `~/Library/Application Support/Claude/claude_desktop_config.json`\n(macOS) or `%APPDATA%/Claude/claude_desktop_config.json` (Windows):\n\n```json\n{\n  \"mcpServers\": {\n    \"impreza\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"impreza-mcp\"],\n      \"env\": {\n        \"IMPREZA_API_KEY\": \"imp_...\",\n        \"IMPREZA_API_SECRET\": \"...\"\n      }\n    }\n  }\n}\n```\n\nRestart Claude Code. The tools appear under the MCP icon.\n\n**Cursor** — add to `~/.cursor/mcp.json` (same shape as above).\n\n**Continue** — add to `~/.continue/config.json`:\n\n```json\n{\n  \"experimental\": {\n    \"modelContextProtocolServers\": [\n      {\n        \"transport\": {\n          \"type\": \"stdio\",\n          \"command\": \"npx\",\n          \"args\": [\"-y\", \"impreza-mcp\"],\n          \"env\": {\n            \"IMPREZA_API_KEY\": \"imp_...\",\n            \"IMPREZA_API_SECRET\": \"...\"\n          }\n        }\n      }\n    ]\n  }\n}\n```\n\n**Zed** — add to your settings:\n\n```json\n{\n  \"context_servers\": {\n    \"impreza\": {\n      \"command\": {\n        \"path\": \"npx\",\n        \"args\": [\"-y\", \"impreza-mcp\"],\n        \"env\": {\n          \"IMPREZA_API_KEY\": \"imp_...\",\n          \"IMPREZA_API_SECRET\": \"...\"\n        }\n      }\n    }\n  }\n}\n```\n\n## Usage in chat\n\nAfter setup, talk to your AI naturally:\n\n> *\"List my Impreza servers.\"* → calls `impreza_list_servers`\n>\n> *\"Deploy this directory to my Impreza VPS, expose via .onion.\"* →\n> packages the cwd as a Dockerfile-mode custom deploy, uploads, deploys\n> with `onion=true`, reports the .onion address.\n>\n> *\"What apps are running on my agent?\"* → calls\n> `impreza_list_deployments` filtered to the right server.\n\n## Auth + security\n\n`IMPREZA_API_KEY` + `IMPREZA_API_SECRET` live in the AI tool's MCP\nconfig env — not in any file on disk owned by `impreza-mcp` itself.\nThe MCP server holds the secret only in memory and only attaches it\nas HTTP request headers.\n\nThe IP of the machine running this MCP server (almost always your\nlaptop) must be on the API key's whitelist. Manage the whitelist in\nyour Impreza clientarea.\n\n## Build\n\n```sh\nnpm install\nnpm run build\n# dist/server.js is the entry point\n```\n\n## License\n\nMIT — see `LICENSE`.\n",
  "bytes": 6720,
  "sha": "724da8cd2af7c3ed2a2925239c5ca4d9fe0c357b49d0baeba444d231a82d4622",
  "repo_slug": "imprezahost/impreza-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_imprezahost_impreza_mcp_a1594d3a/readme"
}