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:
POSTonly (GET returns 405) - Headers:
Authorization: Bearer YOUR_API_KEYContent-Type: application/jsonAccept: 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 |