API Documentation

Model Context Protocol (MCP)

The Sitequest MCP endpoint lets AI assistants like GitHub Copilot, Claude, or other MCP-compatible clients interact with your infrastructure directly.

Overview

MCP (Model Context Protocol) is an open standard that allows AI applications to securely connect to external tools and data sources. Sitequest implements a stateless Streamable HTTP MCP server.

  • Endpoint: POST https://hosting.site.quest/mcp
  • Protocol version: 2025-03-26
  • Transport: Streamable HTTP (stateless, JSON responses)
  • Authentication: Same API keys as the REST API

Available Tools

Tool Required Scope Description
list_vms vps:read List all VPS instances with status, specs, and usage metrics
get_vm vps:read Get detailed VPS info including live config and status
get_vm_monitoring vps:read CPU/memory/ping history and downtime stats
get_vm_traffic vps:read Current-month bandwidth usage and daily traffic log
vm_power vps:manage Start, stop, or restart a VPS
vm_reinstall_os vps:manage Reinstall the operating system (destructive, requires confirm)
vm_mount_iso vps:manage Mount or unmount an ISO image
vm_reset_password vps:manage Generate a new root password (destructive, requires confirm)
rename_vm vps:manage Update the display name of a VPS
list_backups vps:manage List all backups for a VPS
create_backup vps:manage Create a new backup (requires confirm)
restore_backup vps:manage Restore a VPS from a backup (destructive, requires confirm)
delete_backup vps:manage Delete a backup (destructive, requires confirm)
get_firewall vps:manage Get firewall status and rules
manage_firewall vps:manage Add/remove rules, enable/disable firewall
exec_command vps:manage Execute a one-shot SSH command on a VPS
list_files vps:manage List directory contents via SFTP
read_file vps:manage Read file content via SFTP
write_file vps:manage Write file content via SFTP
create_vm vps:provision Create a new VPS (creates order + charges mandate)
delete_vm vps:provision Delete a VPS at the provider (destructive, requires confirm)
upgrade_vm vps:provision Upgrade VPS resources (CPU, RAM, disk, etc.)
list_domains domains:read List all domains with registration status and DNS record count
get_domain domains:read Get detailed domain info including DNS records and registrar data
list_dns_records domains:read List DNS records for a domain
add_dns_record domains:manage Create a DNS record
edit_dns_record domains:manage Update an existing DNS record
delete_dns_record domains:manage Remove a DNS record
set_nameservers domains:manage Update domain nameservers
set_transfer_lock domains:manage Enable or disable transfer lock
set_whois_privacy domains:manage Enable or disable WHOIS privacy
set_dnssec domains:manage Enable or disable DNSSEC
get_authcode domains:manage Get the domain auth code (transfer key)
register_domain domains:provision Register a new domain (creates order + charges mandate)
transfer_domain domains:provision Transfer a domain to Sitequest (creates order + charges mandate)
cancel_domain domains:provision Cancel a domain at the registrar (destructive, requires confirm)
get_order_status vps:provision or domains:provision Get order status by ID or token

Setup for VS Code / GitHub Copilot

Create a .vscode/mcp.json file in your workspace:

{
  "servers": {
    "sitequest": {
      "type": "http",
      "url": "https://hosting.site.quest/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

Replace YOUR_API_KEY with an API key that has the scopes you need (e.g. vps:read, domains:read).

After saving the file, VS Code will detect the MCP server automatically. You can then ask Copilot questions like:

  • "List my VPS instances"
  • "What domains do I have?"
  • "Show me the details for server X"

Setup for Other MCP Clients

Any MCP client that supports the Streamable HTTP transport can connect. Configure:

  • URL: https://hosting.site.quest/mcp
  • Method: POST only (GET returns 405)
  • Headers:
    • Authorization: Bearer YOUR_API_KEY
    • Content-Type: application/json
    • Accept: application/json, text/event-stream

Manual JSON-RPC Example

Initialize:

curl -X POST https://hosting.site.quest/mcp \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "initialize",
    "params": {
      "protocolVersion": "2025-03-26",
      "capabilities": {},
      "clientInfo": { "name": "my-client", "version": "1.0" }
    }
  }'

List available tools:

curl -X POST https://hosting.site.quest/mcp \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc": "2.0", "id": 2, "method": "tools/list"}'

Call a tool:

curl -X POST https://hosting.site.quest/mcp \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{
    "jsonrpc": "2.0",
    "id": 3,
    "method": "tools/call",
    "params": {
      "name": "list_vms",
      "arguments": {}
    }
  }'

Authentication

MCP uses the same API key system as the REST API. See Authorization for details on creating keys and managing scopes.

Rate Limiting

MCP requests share the same rate limit as the REST API: 60 requests per minute per API key. Rate limit headers are included in every response.

Differences from REST API

Feature REST API MCP
Protocol HTTP REST JSON-RPC 2.0 over HTTP
Methods Standard HTTP verbs POST only
Response format { "data": ... } JSON-RPC result/error
Sessions Stateless Stateless (no SSE streaming)
Use case Direct integration AI assistant integration