리셀러 API 및 MCP (화이트라벨)
EQVPS 위에 자신의 VPS 브랜드를 구축하세요: 나의 요금제·가격·고객. 동일한 MCP 엔드포인트의 30개 리셀러 도구, 리셀러 토큰(rk_)으로 인증.
인증: Partners 콘솔(API / MCP 페이지)에서 리셀러 토큰(rk_…)을 받아 Authorization: Bearer rk_… 로 전송하세요. 단일 MCP 엔드포인트를 토큰으로 역할 필터링 — 리셀러 토큰은 27개 reseller_* 도구를 노출합니다.
일반 흐름
요금제를 만들고, 고객을 추가하고, 그 고객용 VM을 주문하세요; 자신의 브랜드로 접속 정보를 전달합니다.
// Reseller token (rk_...) from the Partners cabinet -> Authorization: Bearer rk_...
// One MCP endpoint, role-filtered: a reseller token exposes the 30 reseller_* tools.
reseller_create_plan({ name, cores, ram_gb, disk_gb, ipv4, ipv6, locations, markup_price }) // ipv4 0-4, ipv6 0-1, at least one
reseller_add_client({ email }) -> { client_id }
reseller_order_for_client({ plan_id, client_id, os_id? }) // os_id: see list_plans catalog
reseller_vm_details({ service_id }) -> { access, password } // deliver to your clientos_id는 선택 사항 — 생략하면 지역 기본 OS가 설치됩니다. 특정 OS는 공개 list_plans 카탈로그의 os_id를 사용하세요; 지역별로 올바른 이미지로 해석됩니다.
운영체제 및 os_id
14개의 Linux 이미지가 제공됩니다(아래). reseller_order_for_client에 os_id를 전달하세요 — 공개 list_plans 카탈로그에서 가져옵니다. 참고: available_os는 지역마다 다른 id를 보일 수 있습니다; list_plans의 os_id는 요금제 지역에 맞는 올바른 이미지로 해석됩니다. os_id를 생략하면 지역 기본 OS가 사용됩니다.
VM 상태
active — 실행 중. provisioning — 생성 중(주문 직후의 짧은 비동기 구간). suspended — 일시중지(예: 고객을 정지했거나 미납); reseller_unsuspend_client로 재활성화. cancelled — 종료(VM 삭제됨).
reseller_list_plansList your white-label plans.reseller_create_planCreate a Linux plan (vCPU/RAM/NVMe + IPv4 only, IPv4 + IPv6 or IPv6 only + your markup + location).reseller_edit_planEdit a plan's spec or markup.reseller_archive_planArchive a plan (hidden from ordering).reseller_restore_planRestore an archived plan.reseller_list_clientsList your end-clients.reseller_add_clientAdd an end-client (returns client_id).reseller_edit_clientEdit an end-client.reseller_suspend_clientSuspend an end-client.reseller_unsuspend_clientUnsuspend an end-client.reseller_order_for_clientOrder a VM for a client by plan_id + client_id. Spends your wholesale balance.reseller_list_vmsList client VMs (your plan name + status).reseller_service_statusProvisioning status of client VMs (active/provisioning/suspended).reseller_vm_detailsVM details: IP/hostname/root password (white-label delivery). Reveals password once.reseller_vm_powerStart/stop/reboot a client VM.reseller_vm_set_hostnameSet a client VM hostname.reseller_vm_reset_passwordReset a client VM root password (returns a new one).reseller_vm_metricsCPU/RAM/network/disk over time.reseller_vm_reinstallReinstall the OS on a client VM (destructive — wipes all data). Pick a new os_id from reseller_list_os.reseller_vm_cancelTerminate a client VM.reseller_list_osList available OS images (os_id + name) for order/reinstall. Resolves per plan location.reseller_check_balanceYour wholesale prepaid balance.reseller_renewRenew a client VM for N months (1–24) — charges wholesale x N from your balance, extends expiry.reseller_set_autorenewToggle auto-renew per VM (default ON): the system renews from your balance before expiry.reseller_change_planUpgrade a client VM to another of your plans (prorated wholesale difference).reseller_create_ticketOpen a support ticket (optional service_id).reseller_list_ticketsList your tickets.reseller_get_ticketRead a ticket thread.reseller_reply_ticketReply on a ticket.reseller_close_ticketClose a ticket.Connect any agent or tool
One MCP endpoint — mcp.eqvps.com/mcp — authenticated with your reseller token. Plug it into whatever you already use.
# Claude Code - add the reseller MCP server (token: Partners cabinet -> API)
claude mcp add --transport http eqvps-reseller https://mcp.eqvps.com/mcp \
--header "Authorization: Bearer rk_YOUR_RESELLER_TOKEN"// Claude Desktop / Cursor / Windsurf - mcp.json
{
"mcpServers": {
"eqvps-reseller": {
"type": "http",
"url": "https://mcp.eqvps.com/mcp",
"headers": { "Authorization": "Bearer rk_YOUR_RESELLER_TOKEN" }
}
}
}# LangChain / LangGraph (Python) - langchain-mcp-adapters
from langchain_mcp_adapters.client import MultiServerMCPClient
client = MultiServerMCPClient({"eqvps": {"transport": "streamable_http",
"url": "https://mcp.eqvps.com/mcp",
"headers": {"Authorization": "Bearer rk_YOUR_RESELLER_TOKEN"}}})
tools = await client.get_tools() # 30 reseller_* tools# Raw MCP (JSON-RPC) - n8n HTTP, Zapier/Make, cURL, any language
curl -X POST https://mcp.eqvps.com/mcp \
-H "Authorization: Bearer rk_YOUR_RESELLER_TOKEN" -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{
"name":"reseller_order_for_client","arguments":{"client_id":123,"plan_id":45}}}'
# List tools first: {"jsonrpc":"2.0","id":1,"method":"tools/list"}Ready-to-use agent prompts
Add a client buyer@example.com, then order a VPS for them on the plan they need in Germany. When it is active, give me the SSH host, port and the ready-to-paste command.
List all my reseller VMs with their status and expiry; flag any expiring within 7 days.
Enable auto-renew on every active VPS I resell so they renew from my wholesale balance before they expire.
Renew the VPS for client buyer@example.com for 3 more months from my wholesale balance.
Auto-renew
Client servers renew without manual work. reseller_set_autorenew toggles it per VM (ON by default); a daily job renews anything expiring within 3 days from your wholesale balance. Renew now for N periods with reseller_renew (months 1-24). On a short balance you get one alert and the normal grace window — never a silent loss.
Sandbox testing (dry-run)
Pass test: true to reseller_order_for_client (or POST /api/reseller/orders with {"test":true}) for a dry-run: you get a mock response whose structure is identical to a real order, but no VM is created and no balance is charged. Use it to verify your API/MCP integration end-to-end before going live.
Client email notifications
By default EQVPS emails the account on provision/suspend/terminate/password/reinstall. In the reseller cabinet you can turn “Notify clients by email” off to handle client notifications yourself (white-label) — provisioning and renewals still work, just silently.
댓글
아직 댓글이 없습니다. 첫 번째가 되세요.