分销商 API 与 MCP(白标)
在 EQVPS 上打造你自己的 VPS 品牌:你的套餐、价格、客户。同一 MCP 端点上的 30 个分销工具,使用分销商令牌(rk_)鉴权。
鉴权:在 Partners 后台(API / MCP 页)获取分销商令牌(rk_…),以 Authorization: Bearer rk_… 发送。单一 MCP 端点,按令牌进行角色过滤——分销商令牌暴露 27 个 reseller_* 工具。
典型流程
创建套餐、添加客户、为其下单;以你自己的品牌交付访问。
// 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 可选——不填则使用该地区的默认系统。若需指定系统,请使用公开 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 则使用该地区的默认系统。
虚拟机状态
active — 运行中。provisioning — 创建中(下单后短暂的异步窗口)。suspended — 已暂停(例如你暂停了客户,或欠费);用 reseller_unsuspend_client 恢复。cancelled — 已终止(虚拟机已删除)。
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.
评论
暂无评论。来做第一个吧。