关于 VPSnet
VPSnet MCP 服务让客户通过 AI 助手管理 VPSnet 基础设施和账户服务。其任务型工具涵盖服务器生命周期、网络、域名、账单及托管应用,并由后端执行客户权限控制。
主要功能
- 01管理 VPS 生命周期和套餐
- 02配置 DNS、域名与证书
- 03安装并检查托管应用
- 04管理 SSH 密钥和备份
- 05查看账单与账户操作
适用场景
- 01重启或重装 VPS
- 02配置 DNS 记录或域名服务
- 03部署并排查托管应用
- 04查看发票或备份选项
MCP 相关
该服务通过本地 stdio/API 密钥和远程 OAuth 连接选项,向 MCP 客户端提供 VPSnet API 操作。任务型工具包含读取和变更操作,适用操作需遵循权限控制和确认要求。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://mcp.vpsnet.com/mcpclaude mcp add --transport http com-vpsnet-vpsnet https://mcp.vpsnet.com/mcp{"mcpServers":{"com-vpsnet-vpsnet":{"type":"http","url":"https://mcp.vpsnet.com/mcp"}}}在 Cursor 中打开{"servers":{"com-vpsnet-vpsnet":{"type":"http","url":"https://mcp.vpsnet.com/mcp"}}}在 VS Code 中打开{"mcpServers":{"com-vpsnet-vpsnet":{"type":"http","url":"https://mcp.vpsnet.com/mcp"}}}{"mcpServers":{"com-vpsnet-vpsnet":{"serverUrl":"https://mcp.vpsnet.com/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
vpsnet-mcp
用于管理 VPSnet.com 服务的 Model Context Protocol(MCP)服务。通过 VPSNet API,向 AI 助手提供 VPS 生命周期操作、托管应用、DNS 区域、域名注册和联系人、账单、API 密钥元数据、SSH 密钥配置及相关账户工具。
功能
- 280+ 个工具,涵盖 VPSNet 服务管理、托管应用、免费和付费 TLS 证书、Automatic SSL 订阅、DNS、域名、账单、API 密钥和账户操作
- 账户和个人资料管理
- VPS 生命周期管理(启动、停止、重启、重装操作系统)
- 套餐变更(可免费升级或降级;KVM/Firecracker 磁盘无法缩小)
- 服务反向 DNS(rDNS/PTR 记录)
- 正向 DNS 区域、记录、DNSSEC、模板、导入/导出和 DDNS 令牌
- 域名可用性、联系人、注册/转移/续费/恢复报价及付费确认
- 受发布限制的托管应用,支持安装、运行状况检查、事件和类型化生命周期操作
- SSH 密钥管理——部署密钥并直接访问服务器
- API 密钥元数据检查(密钥创建、变更和撤销仍仅限会话内操作)
- 备份、账单、发票
- 订购新的 VPS 实例
- 系统状态和定价
远程 OAuth 连接器
远程配置文件还包含受权限范围限制的 DNS、域名和证书管理、公共 SSH 密钥、服务器恢复及备份浏览功能。它使用与控制面板相同的客户 API;后端会对每个请求执行权限检查。
远程连接器使用 https://mcp.vpsnet.com/mcp,并通过
VPSnet 获取客户授权。请参阅远程 AI 连接,了解连接设置、
权限和支持的操作。
如需了解授权过期或被撤销,以及授权选项不可用时的处理方法,请参阅
重新连接和请求的权限。
可分发的插件 README、清单和技能均为英文。 请参阅目录发布准备情况,了解软件包验证和 发布者要求;请参阅支持的用例, 了解服务器、应用和网络场景。目录发布和提供商账户可用性与安装此源代码相互独立。
请参阅 AI 客户端设置,了解 Gemini CLI、Cursor、Kimi Code、Kiro、 Cline 及其他远程 OAuth 客户端。这些软件包共用相同的 VPSnet 端点和任务技能。npm 软件包提供本地 MCP 服务; 可安装的插件包也包含 AI 应用的清单和技能。
运行 python3 scripts/package-distribution.py,构建所有客户端包。
同一构建还会生成四个独立技能导入包,
供每次导入一个技能文件夹或 ZIP 的客户端使用。
输出包含校验和,并会标明每种格式。公开目录提交材料位于目录套件。
订购使用现有的 VPSnet 连接,并支持由客户控制的购买权限和支出限额。AI 会显示最终价格,并在从账户余额扣款前请求批准。可用性遵循应用的分发规则。
以下说明介绍现有的本地 stdio/API 密钥客户端。
前置条件
安装前,请确保满足以下条件:
-
Node.js 20 或更高版本
- 检查:
node --version - Linux/macOS:访问 nodejs.org 或使用包管理器
- Windows:运行
winget install OpenJS.NodeJS.LTS,或从 nodejs.org 下载 - 安装 Node.js 后,重启终端/编辑器
- 检查:
-
Claude Code(CLI 或 VS Code 扩展)用户:
- 全局安装 Claude Code CLI:
npm install -g @anthropic-ai/claude-code - 检查:
claude --version
- 全局安装 Claude Code CLI:
-
有效的 VPSnet.com 账户和 API 密钥(请参阅获取 API 密钥)
凭据配置路径
VPSNET_API_KEY 是首选的、按次启动使用的凭据,优先级高于文件。
如需使用基于文件的配置,请将 VPSNET_CONFIG_DIR 设为包含 .vpsnet-mcp-key 或 .mcp.json 的绝对目录路径。密钥文件的优先级高于该 JSON 文件中的 mcpServers.vpsnet.env.VPSNET_API_KEY。或者,可通过 VPSNET_API_KEY_FILE 指定一个绝对密钥文件路径;如果显式指定的文件无法读取或无效,启动将失败,而不会改用其他账户。
如果未设置 VPSNET_CONFIG_DIR,则只会从进程的启动目录(cwd)读取文件。
对于 node /path/to/vpsnet-mcp/build/index.js 和 npx vpsnet-mcp,行为相同:不会搜索包的安装/缓存目录及其父目录。如果编辑器或 MCP 客户端从其他工作目录启动,请显式设置该目录。请勿将凭据文件纳入版本控制。
VPSNET_API_URL 的优先级高于同一 .mcp.json 文件中的 URL;两种来源均适用现有的受信主机和 HTTPS 检查。
托管应用程序
托管应用程序、手动 SSH、DNS、API 以及其他部署方式都是并列的能力。本文档和工具列表中的排列顺序不代表推荐顺序。请选择最符合用户所需结果、目标支持情况、现有状态及明确约束的方式。目录中的应用条目只是可用的托管方式之一,不应成为覆盖有效手动或自定义部署请求的理由。目录中的应用以 Docker 容器形式运行在客户的服务器上,并使用类型化的安装和生命周期工具。
读取应用程序需要 applications:read。安装和生命周期变更需要 applications:manage 及幂等键;普通的应用程序生命周期变更不属于付费 API 密钥操作。CPU、RAM 和磁盘数值是配置建议,并非安装门槛:受支持的应用程序在下单时仍可选择,即使资源低于这些数值也可安装。产品、操作系统、架构和运行时兼容性仍是硬性要求。变更为异步操作,因此请使用 get_application_installation 和 get_application_events 验证。使用 get_application_health 检查最新的容器健康状况,使用 get_application_logs 查看近期、大小受限的排障日志;还可选择只限定到一个精确的 Compose 服务。日志检查最多接受 500 行和 131,072 字节。这两种只读范围的检查会创建短期检查任务,因此 API 密钥必须允许 POST 请求。
安装详情包含应用程序及各容器的 CPU、内存、网络、重启和存储历史记录(在 worker 提供相关数据时),且记录范围有限。容器仅通过 Compose 服务和序号标识。经明确确认后,使用 configure_application_resource_thresholds 替换可选的显示阈值。未提供的值会清除相应阈值;这些阈值仅用于突出显示测量值,不会限制资源、触发服务器操作或影响计费。经明确确认后设置 email_enabled,即可在达到阈值时向账户发送一封邮件,并在指标恢复时再发送一封;同一阈值持续超标期间,不会因重复测量而重复发送。
使用 configure_application_access 更改已安装应用的访问方式。先读取安装信息,并传入当前修订版本和新的幂等键。platform_https 会分配一个不透明的 VPSnet 主机名,并自动配置 DNS 和 HTTPS;private 不设公网监听器;public_http 通过服务器的公网 IP 使用 HTTP;managed_https 使用符合条件的 VPSnet 管理的 DNS 区域。external_https 记录现有的、由客户管理的 HTTPS 地址;VPSnet 不会配置或验证其 DNS、TLS 证书或反向代理。
managed_https 访问方式还可以列出 additional_addresses(每个端点最多 4 个,每个应用最多 8 个):这些是客户自有 VPSnet DNS 区域中的其他名称,每个名称都需包含 zone_id、name、action 和 approve_dns: true。name 为空或为 "@" 时表示该区域的裸域名,因此 example.com 可以与 www.example.com 并列。action 可以是 redirect(默认值;将请求以 301 重定向到主地址,并保留路径和查询参数)或 serve(打开同一应用)。添加或移除其他地址不会更改主地址。此列表代表完整的目标集合:若更改访问方式时省略 additional_addresses,已保存的地址就会被移除;如需保留,请再次传入这些地址。其他地址不支持用于任何其他访问方式,且 VPSnet 不会为此收费。
list_application_registry_credentials 只会公开私有注册表凭据的元数据。注册表令牌的创建和轮换特意不设为 MCP 工具:请使用 VPSnet 控制面板或直接调用 REST API,以避免令牌进入模型提示词或工具参数。元数据可以标识 Docker Hub、GHCR 或精确的自定义 HTTPS 注册表主机名。
客户配方是由客户拥有的 Compose 定义,与 VPSnet 目录蓝图分开管理。它们可以在目标工作节点上验证、保存为不可变修订版本、通过托管生命周期安装,并在不包含机密值的情况下导出。VPSnet 目录配方不可导出。容器发现范围受限且只读:它会报告客户和托管容器,但不会返回环境变量值或挂载信息,也不会接管或修改检测到的容器。受控接管是一个独立流程,包含准备、检查和明确确认,适用于符合条件的 Compose 项目。初始接管仅执行一次,但其确切的外部卷绑定会持续签入后续生命周期操作。只有在确认托管替代容器已完全接管后,恢复操作才会重启源容器;结果不确定时会默认拒绝操作。
仅当 get_application_installation 返回一个 type: "update" 的 available_actions 条目时,才可以执行不可变更新。获得用户明确确认后,使用准确的、已公布的 expected_blueprint_version 和 expected_upstream_version 调用 update_application,并提供新的幂等键。幂等键在客户端范围内全局唯一:只有重放完全相同的请求时才复用同一键,绝不可将其用于其他服务或操作。后端会选择并冻结符合条件的已发布版本;调用方无需提交镜像、标签或目标版本。
不会创建单独的应用备份。在受支持的 Firecracker 服务上,
list_application_restore_points 会返回不透明的、应用一致的整台虚拟机夜间还原点,且对应当前安装的确切修订版本。
查看还原点免费,但 API 密钥需要 applications:manage 权限、启用付费操作、applications:restore 付费权限范围,以及完整访问权限,因为响应中包含账户余额。
quote_application_data_restore 会锁定确切费用,但不会扣款。restore_application_data 需要使用返回的报价令牌、相同的幂等键,并明确确认付款和数据替换。付费 API 密钥还需要 applications:restore、启用付费操作,并设置每日/每月支出上限。
该操作仅替换由工作进程派生的已声明应用数据,不包括机密信息和无关的 Docker/服务端数据,并且需要预留回滚空间。轮询
get_application_data_restore;needs_attention 状态仍处于锁定状态,不得视为成功。这些工具不会接受或公开 PBS 凭据、归档名称、设备或文件系统路径。
安装列表和详情响应会包含按平台划分的 capabilities 区块——data_restore、console、compose_adoption、custom_projects 和 log_service_filter——以及单独的 access.capabilities.can_configure 标志。应以这些标志为准,判断安装支持哪些功能,而不是尝试执行操作后再查看失败结果。
卸载会永久删除受管理的容器、配置、已保存的凭据和应用数据;现有的服务端备份会予以保留。调用 uninstall_application 需要设置 acknowledge_data_loss=true,且只能在获得用户明确确认后设置。
MCP 接口面向任务设计,并非对每个 REST 路由逐一镜像。旧版 SMS 微支付和宏支付回调集成仍可通过文档所述的 REST API 和控制面板使用,但有意未作为 MCP 工具公开。公开的登录前订单和域名搜索路由同样提供了经过身份验证的 MCP 对应接口,供需要执行账户操作时使用。
TLS 证书与 Automatic SSL
证书产品并不限于托管应用。可移植的 DV、OV 和 EV 订单可安装在由客户控制的 Web 服务器、代理服务器、邮件服务器、负载均衡器、API 或其他支持 TLS 的系统上。Automatic SSL 订阅则会连接 VPSnet 或其他服务提供商上的兼容 ACME 客户端,并在付费期限内持续更新短期证书。
符合条件的账户还可以通过 get_free_certificate_eligibility → preflight_free_certificate → create_free_certificate 申请免费的可移植 DV 证书。对于 API 或助手部署,请在目标位置创建 CSR,并将其私钥保存在该位置;MCP 只接收公钥 CSR,之后也只返回公钥证书链。由 VPSnet 管理的密钥支持无人值守提前续期,但只能通过门户在双重验证后导出。免费证书、付费证书文件、付费 Automatic SSL 和应用 Managed HTTPS 是独立的产品及生命周期管理界面。
使用 list_certificate_catalog 区分 portable_certificate 与 acme_subscription 方案。Automatic SSL 的订阅流程为 quote_automatic_ssl_subscription → order_automatic_ssl_subscription,必须使用完全不变的请求、报价令牌、幂等键,并明确批准付款。使用 list_automatic_ssl_subscriptions 和 get_automatic_ssl_subscription 查看状态。添加其他名称时,使用 quote_automatic_ssl_domain → order_automatic_ssl_domain;对于基础名称/www 或通配符/基础名称规则已覆盖的名称,API 会阻止重复付款。在最后 30 天内,符合条件的下一期订阅可通过 quote_automatic_ssl_renewal → order_automatic_ssl_renewal 办理,只有在批准确切的欧元总额后,才会从账户余额中预付。取消订阅、移除域名以及修正同类型域名,分别使用 cancel_automatic_ssl_subscription、remove_automatic_ssl_domain 和 replace_automatic_ssl_domain;如状态不明确,应使用 refresh_automatic_ssl_subscription 进行核对,绝不能凭空发起第二次变更。私有 ACME 服务器和 EAB 凭据保存在受双重验证保护的客户门户中,API 密钥和 MCP 无法访问这些凭据,因此它们不会进入模型上下文。
恢复整个服务
request_restore 是一项付费且具有破坏性的操作:它会从账户余额中扣除恢复费用,并用备份时间点的数据覆盖整个服务磁盘,导致此后写入的所有内容丢失。这是确认操作,而非价格查询——如果请求正文中没有明确确认,API 会拒绝请求;如果价格在披露后发生变化,API 会直接拒绝扣款。
此操作界面没有用于收集确认的对话框,因此工具不会自行生成确认信息。acknowledge_data_replacement 和 acknowledge_restore_charge 都必须设为 true,且只有在用户确实批准替换磁盘并支付费用后才能设置——这与 uninstall_application 中的 acknowledge_data_loss 规则相同。省略任一字段都会导致架构错误,因此无人值守的调用方无法在未确认的情况下触发扣款:系统甚至不会生成报价。
expected_total_charged 是你从 get_restore_status 读取并向用户展示的含 VAT total_charged,必须原样传回。调用前不要重新读取该值:它应当是客户同意支付的金额,而刚获取的数字会与当前价格一致,从而彻底失去校验作用。如果价格发生变化,恢复操作会以 restoreQuoteChanged 为由被拒绝,并返回当前总额,且不会扣款;应告知用户新金额,重新获得批准后再试。
浏览备份中的内容
查看备份内容免费,而且与付费还原备份完全无关。list_restore_file_points、browse_restore_files 和
get_restore_file_browse 只读取备份的目录列表:不会向账户收费,不会覆盖磁盘,也不会将文件放回服务器。目前仅支持 Firecracker VPS。
浏览操作是异步的。browse_restore_files 会创建一个持久化任务并将工作排入队列,因此即使备份和正在运行的服务器都未改变,它的 MCP 注解仍为 readOnlyHint: false。它会返回一个处于待处理状态的浏览 ID;请轮询 get_restore_file_browse,直到 state 为 succeeded。只有在该状态下才会有条目;状态为 failed 的浏览结果会包含 errorCode,且不含列表,不得将其当作空目录呈现。
目录可能包含海量文件,因此服务器会根据工作节点的能力选择每页返回 200 或 1,000 个条目。当 result.nextOffset 不为 null 时,请使用相同的 sourceBrowseId 和 directoryEntryId 再次调用,并将该游标设为 offset。向前翻页时,请使用 result.pageSize,不要假定每页有 200 个条目。进入子目录时,请使用 type: "directory" 条目的不透明 id;不接受文件系统路径。条目类型为 file、directory、symlink 和 unsupported。
文件夹搜索(filter 参数)会匹配所列目录中的条目名称——不区分大小写的子字符串匹配;绝不匹配路径,也不递归搜索。该功能依赖旧节点未报告的一项工作节点能力,因此 list_restore_file_points 会返回 searchAvailable。发送筛选条件前,browse_restore_files 会检查该标志;如果不支持搜索,就会失败并返回 serviceFileBrowseSearchUnavailable,而不会悄悄返回未筛选的列表,让人误以为是搜索结果。这些节点仍可正常浏览。
将选定文件还原到服务器是付费操作,因此本处有意不提供此功能;请使用 VPSnet 控制面板。
SSH 访问工作流
此 MCP 服务通过 VPSnet.com API 管理您的 VPS 基础设施,包括 SSH 密钥配置。将 SSH 密钥部署到 VPS 后,AI 助手可以直接通过其环境中的终端连接(例如 Claude Code 的 Bash 工具或 Cline 的终端)。
典型流程:
- AI 读取本地计算机的公钥(
~/.ssh/id_rsa.pub) - 通过
create_ssh_key将其上传到 VPSnet.com - 使用明确授予远程 OAuth 所需
vm:exec权限的deploy_ssh_key将其部署到 VPS(或者在使用order_service下单时传入密钥) - 直接连接:
ssh root@<vps_ip>
大多数 AI 编码环境(Claude Code、Cline、Cursor、Codex)都内置了终端访问功能,因此部署密钥后,AI 可以立即通过 SSH 连接到您的 VPS,无需额外工具。
对于没有原生 SSH 访问功能的环境,可搭配 mcp-server-ssh,通过 MCP 工具直接连接服务器。
组合配置:
{
"mcpServers": {
"vpsnet": {
"command": "npx",
"args": ["-y", "vpsnet-mcp"],
"env": {
"VPSNET_API_KEY": "your_api_key_here"
}
},
"ssh": {
"command": "npx",
"args": ["-y", "mcp-server-ssh"]
}
}
}
开始使用
选择您的环境:
- Claude Code(命令行) — 基于终端的 AI 编码
- 适用于 VS Code 的 Claude Code — VS Code 扩展
- Claude Desktop — 桌面应用
- 搭配 GitHub Copilot 使用 VS Code — Copilot Agent 模式
- Cline / Cursor / Windsurf / Roo Code / Codex — 其他客户端
以下本地 stdio 示例采用多种 MCP 客户端支持的 mcpServers 配置格式。请使用客户端原生的配置架构;VS Code 的 .vscode/mcp.json 使用 servers。如需配置客户 OAuth 和托管连接器,请参阅 AI 客户端配置。
{
"mcpServers": {
"vpsnet": {
"command": "npx",
"args": ["-y", "vpsnet-mcp"],
"env": {
"VPSNET_API_KEY": "your_api_key_here",
"VPSNET_API_TIMEOUT_MS": "45000"
}
}
}
}
Claude Code
claude mcp add vpsnet -- npx -y vpsnet-mcp
运行前设置环境变量:
export VPSNET_API_KEY="your_api_key_here"
export VPSNET_API_TIMEOUT_MS="45000"
适用于 VS Code 的 Claude Code 扩展
> 本节适用于 **Claude Code VS Code 扩展**,不适用于 GitHub Copilot。如果你在 VS Code 中使用 GitHub Copilot,请改为查看 [VS Code 中的 GitHub Copilot](#vs-code-with-github-copilot) 一节。步骤 1: 全局安装 Claude Code CLI(扩展必需):
npm install -g @anthropic-ai/claude-code
步骤 2: 通过 CLI 添加 MCP 服务:
claude mcp add vpsnet -- npx -y vpsnet-mcp
步骤 3: 添加 API 密钥。编辑 ~/.claude.json(Windows 上为 C:\Users\<username>\.claude.json),找到 vpsnet 服务部分并添加 env 块:
"vpsnet": {
"type": "stdio",
"command": "npx",
"args": ["-y", "vpsnet-mcp"],
"env": {
"VPSNET_API_KEY": "your_api_key_here",
"VPSNET_API_URL": "https://api.vpsnet.com"
}
}
步骤 4: 完全重启 VS Code(Ctrl+Shift+P > “Reload Window”,或关闭后重新打开)。
步骤 5: 通过向 Claude 提问来验证:“获取我的 VPSnet 账户信息”
Windows 用户: 运行
claude mcp add命令时,请使用 PowerShell 或 CMD(而非 Git Bash)。
code --add-mcp命令不能用于 Claude Code 扩展——它仅适用于 VS Code Copilot。
Claude Desktop
请按照 MCP 安装指南操作,并使用上面的标准配置。
Cline
打开 Cline MCP 设置,并将以下内容添加到 cline_mcp_settings.json:
{
"mcpServers": {
"vpsnet": {
"type": "stdio",
"command": "npx",
"args": ["-y", "vpsnet-mcp"],
"env": {
"VPSNET_API_KEY": "your_api_key_here"
},
"disabled": false
}
}
}
Codex
使用 Codex CLI:
codex mcp add vpsnet --env VPSNET_API_KEY=your_api_key_here -- npx -y vpsnet-mcp
或者编辑 ~/.codex/config.toml:
[mcp_servers.vpsnet]
command = "npx"
args = ["-y", "vpsnet-mcp"]
[mcp_servers.vpsnet.env]
VPSNET_API_KEY = "your_api_key_here"
如果系统默认的 Node.js 版本低于 20(使用 nvm 时很常见——可通过 node --version 检查),请封装该命令,以便 nvm 加载正确的版本:
codex mcp add vpsnet --env VPSNET_API_KEY=your_api_key_here -- bash -lc 'source ~/.nvm/nvm.sh >/dev/null 2>&1 && nvm use --silent 20 && npx -y vpsnet-mcp'
注意: Codex 需要联网才能通过 npx 安装软件包。如果你在无法联网的受限沙盒中运行 Codex,npx 安装将会失败。
Cursor
前往 Cursor Settings > MCP > Add new MCP Server。选择命令类型,并输入命令 npx -y vpsnet-mcp。或者手动将以下内容添加到 .cursor/mcp.json:
{
"mcpServers": {
"vpsnet": {
"command": "npx",
"args": ["-y", "vpsnet-mcp"],
"env": {
"VPSNET_API_KEY": "your_api_key_here"
}
}
}
}
Roo Code
打开 Roo Code MCP 设置,并选择 Edit Global MCP(当前为
mcp_settings.json),或者选择 Edit Project MCP 来配置 .roo/mcp.json:
{
"mcpServers": {
"vpsnet": {
"type": "stdio",
"command": "npx",
"args": ["-y", "vpsnet-mcp"],
"env": {
"VPSNET_API_KEY": "your_api_key_here"
},
"disabled": false
}
}
}
VS Code 中的 GitHub Copilot
如需通过托管的客户 OAuth 连接,请运行 MCP: Add Server 并输入
https://mcp.vpsnet.com/mcp,或者将此 VS Code 原生配置合并到
.vscode/mcp.json 中,同时保留其他服务:
{
"servers": {
"vpsnet": {
"type": "http",
"url": "https://mcp.vpsnet.com/mcp"
}
}
}
按提示完成浏览器登录和授权流程。Copilot 的便携式工作区 .mcp.json 和用户级 ~/.copilot/mcp-config.json 使用顶层
mcpServers 对象。这些格式与 Claude Code 扩展的配置不同。
如需使用单独的本地 stdio 软件包和你自己的 VPSnet API 密钥,请使用 VS Code CLI 安装:
code --add-mcp '{"name":"vpsnet","command":"npx","args":["-y","vpsnet-mcp"],"env":{"VPSNET_API_KEY":"your_api_key_here"}}'
如需手动进行 VS Code 原生配置,请将该本地服务的 command、
args 和私有 env 放在 servers.vpsnet 下,而不要照搬通用的
mcpServers 包装对象。VS Code 的 MCP: Reset Cached Tools 可刷新过期的
工具目录。请参阅官方 MCP 配置。
本节适用于 VS Code 中 GitHub Copilot 的 Agent 模式。如需了解 Claude Code 扩展,请参阅 Claude Code for VS Code Extension 一节。
Windsurf / Devin Desktop
当前的 Windsurf 官方文档会重定向到 Devin Desktop。请选择你正在使用的 Agent:旧版 Cascade 和当前的 Devin Local Agent 使用不同的 MCP 设置路径。
对于 Devin Local,请使用 Devin CLI 添加并验证托管连接器:
devin mcp add vpsnet https://mcp.vpsnet.com/mcp
devin mcp login vpsnet --scopes services:read
对于旧版 Cascade,请打开面板中的 Actions → Open MCP config file,并在 mcpServers 下添加一个服务器,设置 serverUrl: "https://mcp.vpsnet.com/mcp"。完成 OAuth 流程。Cascade 的工具总数上限为 100 个,因此请检查已启用的工具。上面的本地 stdio 示例使用的是单独的 API 密钥连接。
请根据所用界面,参阅官方 Devin 本地 MCP 指南或旧版 Cascade 指南。客户端身份验证和 VPSnet 兼容性仍需在实际客户端版本上验证。
Windows 用户
- 使用 PowerShell 或 CMD(而非 Git Bash)运行
claude mcp add命令 - 配置文件位置:
C:\Users\<YourUsername>\.claude.json - 安装 Node.js:运行
winget install OpenJS.NodeJS.LTS,或从 nodejs.org 下载 - 安装 Node.js 后,重启终端和 VS Code
- Claude Code 扩展中的环境变量必须位于
.claude.json的env对象中,不能设置为系统环境变量
环境变量
| 变量 | 必需 | 描述 |
|---|---|---|
VPSNET_API_KEY | 是 | 你的 VPSnet.com API 密钥 |
VPSNET_API_URL | 否 | API 基础 URL(默认为 https://api.vpsnet.com);部署配置的任意 https://*.vpsnet.com 主机 |
VPSNET_AI_URL | 否 | 委派的 SSH 运行时;生产环境使用 https://ai.vpsnet.com。非生产环境必须使用经过批准的 API 源,后接 /ai-control。 |
VPSNET_AI_API_ORIGIN | 仅限非生产环境 SSH | 由运营方批准的 HTTPS VPSnet API 源;必须与 VPSNET_API_URL 完全一致。对于非生产环境部署,请私下设置这两个运行时变量。 |
VPSNET_API_TIMEOUT_MS | 否 | 每次请求的超时时间(默认值为 45000) |
请求由运行此服务的机器发出,而非浏览器。如果部署限制了来源地址访问,Web 服务器可能会针对被拦截的请求返回 HTML 403 页面;此时工具结果会明确指出这一点(non_api_response: true、http_status: 403),而不会转发该页面。每个错误结果都包含 http_status;429 还会包含 retry_after。
身份验证、范围和付费操作
每个请求都会携带 X-API-KEY 标头(VPSNET_API_KEY)。
- **使用管理密钥。**其访问级别为
full(读取和更改)或read(仅限 GET)。AI 范围密钥仅用于 VPSnet AI 助手推理, 在所有账户路由上都会被拒绝,因此这里的工具都无法使用此类密钥; 错误结果会携带auth_problem,说明原因和解决方法。 - **细粒度范围只会缩小密钥的权限。**范围列表为空的密钥保留其访问级别
所允许的全部权限;列出范围(例如
dns:read、services:manage)则会限制权限。X:manage包含X:read。网络管理是 例外:networking:read/networking:manage/networking:order绝不会 由full或read隐含授予,必须明确授权。 - **付费操作需要通过单独的门槛检查。**下表中标记为
Paid或Quote的 工具需要full访问级别的密钥、paid_operations_enabled、指定的付费范围 (vps:order、vds:order、ds:order、fc:order、domains:order、domains:renew、domains:transfer、certificates:order、applications:restore、services:restore、fn:invoke、networking:order)、已配置的每日和每月支出上限,以及稳定的idempotencyKey(使用相同的密钥重试结果不确定的请求,绝不要使用新的密钥)。 下单时先获取报价,再使用返回的quoteToken确认;确认前须向用户说明准确的 欧元总额。使用list_api_keys查看密钥的范围、付费范围、支出上限和速率限制。 - **速率限制。**请求按密钥进行速率限制(
list_api_keys中的rate_limit, 即每分钟请求数)。遇到 HTTP429时,应等待retry_after秒后再重试, 不要立即重试。 - API 密钥永远不能创建、更改或撤销 API 密钥,也不会获得管理员访问权限。
工具
下表为自动生成:编辑 scripts/tool-scopes.json(或工具注册信息)并运行
npm run docs:tools;如果内容不一致,npm test 会失败。
Scope 是工具所需的细粒度 API 密钥范围(none = 任意管理密钥;
a + b = 两者都需要;a or b = 根据对象而定,二选一)。Paid:
Paid: x 会扣除账户余额,并需要付费范围 x 以及上述门槛条件;
Quote: x 会生成报价但不扣费,不过仍受相同条件限制;
单独的 Paid 会使用 full 访问级别的密钥扣除余额,且不需要单独的付费范围;
Needs paid scope: x 表示读取余额或价格数据的操作;
Billed while kept 表示初始时段内免费,此后按量计费;其余情况均为
free。
账户
| 工具 | 描述 | 范围 | 付费 |
|---|---|---|---|
get_account | 获取账户信息(用户 ID、电子邮件、余额、增值税税率) | none | free |
get_profile | 获取用户个人资料详情(姓名、地址、公司) | account:read | free |
服务
| 工具 | 描述 | 范围 | 付费 |
|---|---|---|---|
list_services | 列出所有活跃的 VPS 服务 | services:read | free |
get_service | 读取服务详情和下一次就绪状态检查;将资源配置、来宾访问和应用健康状态分别处理 | services:read | free |
get_service_graphs | 获取一条图表序列:指标(cpu、ram、ssd、net、io、…)和时间范围(5m … 1y) | services:read | free |
get_event | 根据异步操作的 event ID 或 noty UUID 读取其状态 | services:read 或 account:read | free |
wait_for_event | 轮询异步操作,直至完成或出错(或超时) | services:read 或 account:read | free |
get_service_history | 获取服务的操作历史记录 | services:read | free |
托管应用
| 工具 | 描述 | 范围 | 付费 |
|---|---|---|---|
list_application_catalog | 列出与服务兼容的已发布应用 | applications:read | 免费 |
list_service_applications | 列出已安装的应用和待处理的结账选择 | applications:read | 免费 |
get_application_installation | 获取观测到的状态、运行状况、偏差、端点、组件、资源历史记录和阈值 | applications:read | 免费 |
get_application_events | 获取范围受限且对客户安全的安装事件 | applications:read | 免费 |
get_application_health | 运行并轮询新的容器运行状况检查 | applications:read | 免费 |
get_application_logs | 运行并轮询大小受限的近期日志检查 | applications:read | 免费 |
get_application_inspection | 当 get_application_health 或 get_application_logs 返回的精确持久化运行状况或日志检查仍处于待处理状态时,轮询该检查。 | applications:read | 免费 |
list_application_restore_points | 列出适用于确切应用修订版的夜间还原点 | applications:manage | 需要付费范围:applications:restore |
quote_application_data_restore | 冻结确切的选择性还原余额扣款,但不付款 | applications:manage | 报价:applications:restore |
restore_application_data | 付款并排队处理已确认的声明应用数据选择性替换 | applications:manage | 付费:applications:restore |
get_application_data_restore | 轮询一个与租户绑定的选择性数据还原 | applications:read | 免费 |
list_application_registry_credentials | 列出非机密的私有注册表凭据元数据 | applications:read | 免费 |
validate_application_recipe | 根据目标工作节点策略验证客户 Compose 配置 | applications:manage | 免费 |
get_application_recipe_validation | 当 validate_application_recipe 或待处理的配方创建/修订返回的精确持久化客户配方验证仍处于待处理状态时,轮询该验证。 | applications:read | 免费 |
list_application_recipes | 列出客户拥有的不可变配方项目 | applications:read | 免费 |
list_application_recipe_revisions | 列出客户配方的不可变修订版 | applications:read | 免费 |
create_application_recipe | 验证并保存新的客户配方,但不安装 | applications:manage | 免费 |
create_application_recipe_revision | 验证并保存后续的不可变客户配方修订版 | applications:manage | 免费 |
export_application_recipe | 仅导出客户拥有的配方,不含机密值 | applications:read | 免费 |
install_application_recipe | 安装确切的已验证客户配方修订版 | applications:manage | 免费 |
discover_service_containers | 发现范围受限的只读容器元数据 | applications:read | 免费 |
get_service_container_discovery | 当 discover_service_containers 返回的确切持久化服务容器发现仍处于待处理状态时,轮询该发现。 | applications:read | 免费 |
prepare_application_compose_adoption | 为一个已发现的 Compose 项目准备并轮询经过清理的候选项 | applications:manage | 免费 |
get_application_compose_adoption | 轮询一个与租户绑定的 Compose 接管候选项 | applications:read | 免费 |
confirm_application_compose_adoption | 在获得明确批准后,确认对确切来源的接管 | applications:manage | 免费 |
install_application | 将已确认且固定版本的托管安装加入队列 | applications:manage | 免费 |
configure_application_access | 将已确认的平台主机名、私有、公共 IP、托管 HTTPS 或客户管理的外部 HTTPS 访问更改加入队列 | applications:manage | 免费 |
configure_application_resource_thresholds | 替换已确认的非强制应用资源阈值,以及达到/恢复时的电子邮件偏好设置 | applications:manage | 免费 |
manage_application | 兼容旧客户端的工具;请使用下方的单项操作 | applications:manage | 免费 |
reconcile_application | 根据声明的配置协调应用 | applications:manage | 免费 |
repair_application | 修复应用运行时 | applications:manage | 免费 |
restart_application | 确认中断后重启应用 | applications:manage | 免费 |
start_application | 启动已停止的应用 | applications:manage | 免费 |
stop_application | 确认中断后停止应用 | applications:manage | 免费 |
uninstall_application | 在明确批准数据丢失后删除应用 | applications:manage | 免费 |
update_application | 在满足确切版本前置条件时应用符合条件的不可变更新 | applications:manage | 免费 |
rollback_application | 将 get_application_installation 以 type=rollback 公布的确切反向转换加入队列。 | applications:manage | 免费 |
cancel_application_action | 仅当后端将确切的最新排队操作标记为可取消时,取消该操作 | applications:manage | 免费 |
服务操作
| 工具 | 描述 | 权限范围 | 付费 |
|---|---|---|---|
start_service | 启动已停止的 VPS | services:manage | 免费 |
stop_service | 停止正在运行的 VPS | services:manage | 免费 |
restart_service | 重启 VPS | services:manage | 免费 |
console_service | 为正在运行的 VPS 请求带外控制台会话 | services:manage | 免费 |
suspend_service | 暂停正在运行的 Cloud VPS | services:manage | 免费 |
resume_service | 恢复已暂停的 Cloud VPS | services:manage | 免费 |
服务设置
| 工具 | 描述 | 权限范围 | 付费 |
|---|---|---|---|
get_hostname | 获取当前主机名以及自动主机名状态 | services:read | 免费 |
get_guest_nameservers | 获取服务器已保存的客户机 DNS 解析器配置:nsData.type 为 own(VPSnet 默认值)或 custom,包含 ns1-ns4 解析器 IP 地址。 | services:read | 免费 |
change_hostname | 更改 VPS 主机名 | services:manage | 免费 |
reset_hostname | 恢复 VPSnet 管理的自动主机名 | services:manage | 免费 |
set_guest_nameservers | 更改受支持 Linux 服务器内部的 DNS 解析器。 | services:manage | 免费 |
change_root_password | 更改 VPS root 密码 | services:manage | 免费 |
get_rdns | 获取当前 rDNS 记录 | services:read | 免费 |
change_rdns | 更改反向 DNS(PTR)记录 | services:manage | 免费 |
clear_rdns | 清除 PTR 覆盖并恢复自动值 | services:manage | 免费 |
flush_iptables | 清空 iptables 规则(在无法访问时很有用) | services:manage | 免费 |
get_title | 获取当前服务显示名称 | services:read | 免费 |
change_title | 更改服务显示名称 | services:manage | 免费 |
toggle_ipv6 | 启用或禁用 IPv6 | services:manage | 免费 |
toggle_extra_settings | 切换 ppp、fuse、tuntap 或 nfs | services:manage | 免费 |
deploy_ssh_key | 将 SSH 密钥部署到 VPS;远程 OAuth 还需要 vm:exec | services:manage | 免费 |
操作系统重装
| 工具 | 描述 | 权限范围 | 付费 |
|---|---|---|---|
get_os_options | 获取可用的操作系统模板 | services:read | 免费 |
reinstall_os | 重装 VPS 操作系统(会销毁现有数据)。Cloud/Firecracker VPS 还会删除现有快照;存在快照时必须明确设置 confirmSnapshotDelete,重装后这些快照无法用于回滚。返回 noty 接受事件;请通过服务历史跟踪完成状态。 | services:manage | 免费 |
套餐变更(免费)
| 工具 | 描述 | 权限范围 | 付费 |
|---|---|---|---|
get_plan_options | 获取可升级或降级的套餐;会缩小磁盘的 KVM/Firecracker 目标套餐不可用 | services:read | 免费 |
get_plan_resources | 获取套餐的可配置资源 | services:read | 免费 |
calculate_plan_change | 预览套餐变更:不收取费用,剩余价值会转换,因此升级会提前到期 | services:read | 免费 |
change_plan | 更改 VPS 套餐 | services:manage | 免费 |
续费与账单
| 工具 | 描述 | 权限范围 | 付费 |
|---|---|---|---|
get_period_options | 获取计费周期和自动续费选项 | services:read | 免费 |
set_auto_renew | 启用或禁用自动续费 | services:manage | 付费(未来续费) |
renew_service | 手动续费服务 | services:manage | 付费 |
list_invoices | 列出发票 | payments:read | 免费 |
get_invoice | 获取指定发票 | payments:read | 免费 |
list_payments | 列出付款历史记录 | payments:read | 免费 |
get_usage_statements | 在发票之外,单独列出按项目细分的计量用量账单 | payments:read | 免费 |
订购
| 工具 | 描述 | 范围 | 付费 |
|---|---|---|---|
get_order_plans | 获取明确选定的服务产品的可用套餐 | 无 | 免费 |
get_order_options | 获取套餐的可配置选项 | 无 | 免费 |
order_service | 为新 VPS 报价;客户批准后,确认确切总价和周期;也可通过 privateNetworkId 关联专用网络 | 无 | 付费:vps:order、vds:order、ds:order 或 fc:order(取决于产品) |
备份
| 工具 | 描述 | 范围 | 付费 |
|---|---|---|---|
get_backup_status | 获取备份状态和配置 | services:read | 免费 |
get_firecracker_backup_status | 获取 Firecracker VPS 的夜间异机备份状态,包括运行中的备份数量,以及最近保留的备份的一致性来源信息。 | services:read | 免费 |
get_backup_history | 获取备份历史记录 | services:read | 免费 |
get_firecracker_backup_history | 获取保留的 Firecracker VPS 夜间备份历史记录,包括失败或正在运行的尝试,以及一致性来源信息。 | services:read | 免费 |
create_backup | 在明确同意付费并提供稳定请求密钥后,检索历史 Container VPS 备份内容 | services:manage | 付费 |
恢复
| 工具 | 描述 | 范围 | 付费 |
|---|---|---|---|
get_restore_status | 获取保留期限、恢复价格以及正在进行的恢复任务 | services:read | 需要付费范围:services:restore |
list_restore_points | 列出整个服务的恢复点 | services:read | 免费 |
request_restore | **付费且具有破坏性:**从某个恢复点恢复整个服务磁盘 | services:read | 付费:services:restore |
list_restore_file_points | 列出可浏览的备份点,以及是否支持文件夹搜索(免费) | services:read | 免费 |
browse_restore_files | 排队创建备份目录列表任务,不恢复文件 | services:read | 免费 |
get_restore_file_browse | 轮询已排队的备份目录列表任务(免费,只读) | services:read | 免费 |
服务文件
Firecracker 服务需要更新后的 Guest Agent,Cloud VPS(KVM)则需要切换到 VDS 文件管理器;files:read / files:manage 是显式授权项(空权限列表不包含这些权限)。
| 工具 | 描述 | 范围 | 付费 |
|---|---|---|---|
get_service_file_capabilities | 检查文件管理器当前是否可以为某台服务提供文件操作,并返回原样的不可用原因、限制和传输模式 | files:read | 免费 |
list_service_files | 列出运行中服务内某个目录的一页内容 | files:read | 免费 |
stat_service_file | 描述一个条目,可选返回其 SHA-256 | files:read | 免费 |
read_service_file | 查看文本文件(最多 1 MiB)或图像(最多 4 MiB),也可读取任意文件的 1 MiB 窗口 | files:read | 免费 |
search_service_files | 在某个目录下按名称(子字符串或 glob)查找条目 | files:read | 免费 |
get_service_file_download_url | 生成绑定到调用方地址的单文件下载 URL | files:read | 免费 |
download_service_file | 将服务文件下载到 MCP 机器上的本地路径,检查文件大小并返回其 SHA-256 | files:read | 免费 |
get_service_file_operation | 轮询返回 202 的文件操作(Guest 响应慢、递归删除、解压) | files:read | 免费 |
create_service_directory | 创建目录,可选创建缺失的父目录 | files:manage | 免费 |
move_service_file | 重命名或移动一个条目(需要确认) | files:manage | 免费 |
delete_service_files | **有破坏性:**永久删除文件或目录(需要确认) | files:manage | 免费 |
write_service_file | 写入小型文件(最多 1 MiB),并使用比较并交换 | files:manage | 免费 |
upload_service_file | 通过一次调用上传本地文件或 Base64 内容:分块、可恢复传输、原子提交并检查 SHA-256 | files:manage | 免费 |
list_service_file_uploads | 列出服务尚未完成的上传 | files:manage | 免费 |
abort_service_file_upload | 中止一个尚未完成的上传并移除其暂存文件 | files:manage | 免费 |
extract_service_file_archive | Firecracker:将 zip/tar/tar.gz/.gz 压缩包解压到新目录 | files:manage | 免费 |
SSH 密钥
| 工具 | 描述 | 范围 | 付费 |
|---|---|---|---|
list_ssh_keys | 列出所有 SSH 密钥 | account:read | 免费 |
get_ssh_key | 获取指定的 SSH 密钥 | account:read | 免费 |
create_ssh_key | 添加新的 SSH 密钥 | account:manage | 免费 |
delete_ssh_key | 删除 SSH 密钥 | account:manage | 免费 |
API 密钥
| 工具 | 描述 | 范围 | 付费 |
|---|---|---|---|
list_api_keys | 显示用于验证此 MCP 连接的 API 密钥 | none | 免费 |
get_api_key | 获取一个有效密钥的非机密元数据 | none | 免费 |
get_api_key_activity | 获取调用方密钥在保留期限内的请求活动记录及记录的总数 | none | 免费 |
get_api_key_inference_usage | 获取调用方推理密钥的精确付费 VPSnet AI 用量及额度状态 | none | 免费 |
创建、更改和撤销 API 密钥需要通过浏览器/会话登录。使用 API 密钥进行身份验证的 MCP 连接无法执行这些操作。
免费 TLS 证书
| 工具 | 描述 | 权限范围 | 付费 |
|---|---|---|---|
get_free_certificate_eligibility | 检查账户资格、配额、密钥模式以及当前可用的公共 CA | certificates:read | 免费 |
preflight_free_certificate | 规划确切的名称、验证、交付、密钥保管方式和 CA,但不签发证书 | certificates:read | 免费 |
list_free_certificates | 列出自有的免费证书申请及其生命周期状态 | certificates:read | 免费 |
get_free_certificate | 获取一个自有申请、续订计划和安全时间线 | certificates:read | 免费 |
get_free_certificate_instruction | 查看自动 DNS 状态或所有必需的外部 DNS CNAME 记录 | certificates:read | 免费 |
create_free_certificate | 创建一个经明确批准且具幂等性的免费 DV 申请 | certificates:manage | 免费 |
download_free_certificate | 仅获取已签发的公开叶证书和证书链,绝不获取私钥 | certificates:read | 免费 |
manage_free_certificate | 兼容旧版客户端的工具;请使用下方的单项操作 | certificates:manage | 免费 |
renew_free_certificate | 为获授权的证书名称申请提前续订 | certificates:manage | 免费 |
revoke_free_certificate | 经明确批准后吊销自有证书 | certificates:manage | 免费 |
recheck_free_certificate | 重新检查待处理证书的验证状态 | certificates:manage | 免费 |
cancel_free_certificate | 取消符合条件的待处理证书申请 | certificates:manage | 免费 |
为便于通过 API 或助手安装到不同环境,请使用 customer_csr,并将私钥保留在生成 CSR 的位置。托管式申请可以无人值守地续订,但 MCP 无法导出其私钥。证书签发是异步的,且受配额限制:轮询 get_free_certificate,按照 get_free_certificate_instruction 中的说明操作,不要将已排队的申请视为已签发。
自动 SSL 订阅
| 工具 | 描述 | 范围 | 付费 |
|---|---|---|---|
list_automatic_ssl_subscriptions | 列出客户拥有的自动 SSL 订阅,不显示 ACME 凭据 | certificates:read | 免费 |
get_automatic_ssl_subscription | 获取一项自有订阅、其域名集合、续订状态和就绪情况 | certificates:read | 免费 |
quote_automatic_ssl_subscription | 以欧元为一组确切的域名报价,不收取费用 | certificates:read | 报价:certificates:order |
order_automatic_ssl_subscription | 确认并支付明确批准的订阅报价 | certificates:read | 付费:certificates:order |
list_automatic_ssl_actions | 列出客户可见的订阅和 DNS 名称变更 | certificates:read | 免费 |
refresh_automatic_ssl_subscription | 安排一次权威的只读状态刷新 | certificates:manage | 免费 |
quote_automatic_ssl_domain | 以欧元为一个额外的 DNS 名称报价,不收取费用 | certificates:read | 报价:certificates:order |
order_automatic_ssl_domain | 确认并支付明确批准的 DNS 名称报价 | certificates:read | 付费:certificates:order |
quote_automatic_ssl_renewal | 以欧元为下一个符合条件的订阅期限报价 | certificates:read | 报价:certificates:order |
order_automatic_ssl_renewal | 使用账户余额预付明确批准的下一个期限 | certificates:read | 付费:certificates:order |
manage_automatic_ssl_subscription | 兼容旧版客户端的工具;请使用下面的单项操作 | certificates:manage | 免费 |
cancel_automatic_ssl_subscription | 取消一项自有的自动 SSL 订阅 | certificates:manage | 免费 |
remove_automatic_ssl_domain | 从订阅中移除一个符合条件的 DNS 名称 | certificates:manage | 免费 |
replace_automatic_ssl_domain | 在更正期限内修正一个符合条件的 DNS 名称 | certificates:manage | 免费 |
自动 SSL 是一种可移植的付费 ACME 订阅。它可与 VPSnet 或其他提供商的兼容客户端配合使用,并非仅限于托管应用。私有 ACME 服务 URL 和 EAB 凭据仅会在受双重身份验证保护的客户门户中显示。它们有意不作为 MCP 工具或 API 密钥响应提供,因此助手无法将其复制到模型上下文中。
付费 TLS 证书
| 工具 | 描述 | 范围 | 付费 |
|---|---|---|---|
list_certificate_catalog | 列出已发布的 DV/OV/EV 产品及面向最终客户的 EUR 报价 | certificates:read | 免费 |
get_certificate_catalog_product | 获取一个已发布产品、其功能和当前报价 | certificates:read | 免费 |
list_certificates | 列出客户持有的付费证书订单及签发状态 | certificates:read | 免费 |
get_certificate | 获取一笔客户持有的付费证书订单 | certificates:read | 免费 |
quote_certificate | 为确切的证书或续订询价,不会扣费 | certificates:read | 询价:certificates:order |
order_certificate | 确认并支付已明确批准的证书报价 | certificates:read | 付费:certificates:order |
get_certificate_validation | 读取每个名称的验证状态及所有者可见的待处理挑战 | certificates:read | 免费 |
download_certificate | 下载已签发的公有叶证书和证书链;绝不返回私钥 | certificates:read | 免费 |
list_certificate_actions | 列出持久保存且客户可见的管理操作 | certificates:read | 免费 |
refresh_certificate | 安排只读的证书颁发机构状态协调 | certificates:manage | 免费 |
manage_certificate | 兼容旧客户端的工具;请使用下方的独立操作 | certificates:manage | 免费 |
cancel_certificate | 取消符合条件的待处理证书订单 | certificates:manage | 免费 |
recheck_certificate_validation | 重新检查证书验证 | certificates:manage | 免费 |
resend_certificate_validation | 获得批准后重新发送证书验证消息 | certificates:manage | 免费 |
change_certificate_validation | 更改一个证书名称的验证方法 | certificates:manage | 免费 |
reissue_certificate | 使用新的公有 CSR 请求为同一名称重新签发 | certificates:manage | 免费 |
付费证书是可移植的账户产品:客户可以将其安装在 Nginx、Apache、lighttpd、OpenLiteSpeed、HAProxy、Caddy、邮件、API、负载均衡器或其他 TLS 终端上。此类证书与附加到 VPSnet 托管应用的自动 HTTPS 相互独立。MCP 仅接受公有 PKCS#10 CSR;私钥必须由客户自行保管,且绝不能出现在工具参数或模型上下文中。报价响应包含以 EUR 计价的最终客户价格;下单需要明确批准,并使用相同的幂等键和短时有效的报价令牌。
域名
| 工具 | 描述 | 范围 | 付费 |
|---|---|---|---|
list_domains | 列出账户拥有的域名 | domains:read | 免费 |
get_domain | 获取一个自有域名及其待处理操作 | domains:read | 免费 |
list_domain_tlds | 列出当前已启用、可供订购的顶级域名 | domains:read | 免费 |
check_domain_availability | 检查域名是否可用,不下单 | domains:read | 免费 |
get_domain_ordering_status | 获取非机密的域名订购准备状态 | domains:read | 免费 |
set_domain_nameservers | 为自有域名排队提交名称服务器变更 | domains:manage | 免费 |
list_domain_glue_records | 列出同域名称服务器地址记录 | domains:read | 免费 |
create_domain_glue_record | 排队创建或更新名称服务器地址记录 | domains:manage | 免费 |
delete_domain_glue_record | 排队删除名称服务器地址记录 | domains:manage | 免费 |
get_domain_parent_ds | 列出父区域的 DNSSEC DS 记录 | domains:read | 免费 |
add_domain_parent_ds | 排队添加父区域 DS 记录 | domains:manage | 免费 |
delete_domain_parent_ds | 排队删除父区域 DS 记录 | domains:manage | 免费 |
list_domain_contacts | 列出账户拥有的域名联系人 | domains:read | 免费 |
create_domain_contact | 创建域名联系人 | domains:manage | 免费 |
update_domain_contact | 更新现有域名联系人 | domains:manage | 免费 |
delete_domain_contact | 删除未使用的域名联系人 | domains:manage | 免费 |
quote_domain_register | 获取域名注册报价,不收费 | domains:read | 报价:domains:order |
confirm_domain_register | 确认并支付确切的注册报价 | domains:manage | 付费:domains:order |
quote_domain_transfer | 获取域名转移报价,不收费 | domains:read | 报价:domains:transfer |
confirm_domain_transfer | 确认并支付确切的转移报价 | domains:manage | 付费:domains:transfer |
quote_domain_renew | 获取自有域名续费报价,不收费 | domains:read | 报价:domains:renew |
confirm_domain_renew | 确认并支付确切的续费报价 | domains:manage | 付费:domains:renew |
quote_domain_restore | 获取处于赎回期的域名恢复报价,不收费 | domains:read | 报价:domains:renew |
confirm_domain_restore | 确认并支付确切的恢复报价 | domains:manage | 付费:domains:renew |
set_domain_auto_renew | 为自有域名启用或停用自动续费 | domains:manage | 付费(未来续费) |
get_registrar_lock | 获取注册商转移锁定状态;更改只能在控制面板中进行 | domains:read | 免费 |
DNS
| 工具 | 描述 | 范围 | 付费 |
|---|---|---|---|
list_service_dns_options | 列出可用于 DNS 附加的自有区域和服务地址 | dns:read | 免费 |
attach_service_dns_record | 将自有区域中的名称指向一个服务地址 | dns:write | 免费 |
list_dns_zones | 列出账户拥有的正向 DNS 区域 | dns:read | 免费 |
create_dns_zone | 创建等待通过所有权 TXT 验证的原生或辅助区域 | dns:write | 免费 |
get_dns_zone | 获取所需记录及其 ID 和可恢复的所有权 TXT 值 | dns:read | 免费 |
reapply_dns_zone | 重试发布 apply_state 为 failed 的已发布 DNS 区域。 | dns:write | 免费 |
get_dns_zone_diagnostics | 检查委派、SOA、DNSSEC 和记录规范性 | dns:read | 免费 |
export_dns_zone | 将原生区域导出为 BIND 样式区域文件 | dns:read | 免费 |
import_dns_zone | 将受限的 BIND 样式记录导入原生区域 | dns:write | 免费 |
list_dns_templates | 列出后端定义的 DNS 记录模板 | dns:read | 免费 |
apply_dns_template | 预览或应用一个 DNS 记录模板 | dns:write | 免费 |
delete_dns_zone | 删除正向 DNS 区域 | dns:write | 免费 |
verify_dns_zone | 验证所有权并发布待处理或验证已过期的区域 | dns:write | 免费 |
reissue_dns_zone_verification | 检查可恢复值后,为待处理或验证已过期的区域轮换所有权 TXT | dns:write | 免费 |
get_dnssec | 获取 DNSSEC 状态及公开的 DNSKEY/DS 材料 | dns:read | 免费 |
set_dnssec | 启用或安全地禁用 DNSSEC 签名 | dnssec:manage | 免费 |
upsert_dns_record | 添加名称/类型/内容元组;若元组相同,则更新 TTL/注释并重新启用记录 | dns:write | 免费 |
update_dns_record | 按确切记录 ID 替换一条现有非系统 DNS 记录的内容 | dns:write | 免费 |
delete_dns_record | 删除一条正向 DNS 所需状态记录 | dns:write | 免费 |
get_dns_service_status | 获取托管 DNS 集群状态和已发布端点 | dns:read | 免费 |
get_dns_zone_history | 获取近期区域和记录变更历史 | dns:read | 免费 |
list_ddns_tokens | 列出非机密的 DDNS 和 ACME 令牌元数据 | dns:read | 免费 |
create_ddns_token | 创建权限范围受限的 DDNS 或 ACME 更新令牌 | dns:write | 免费 |
revoke_ddns_token | 撤销 DDNS 或 ACME 更新令牌 | dns:write | 免费 |
快照
| 工具 | 描述 | 范围 | 付费 |
|---|---|---|---|
list_snapshots | 列出 Cloud VPS 磁盘快照和计费政策 | services:read | 免费 |
create_snapshot | 创建 Cloud VPS 磁盘快照 | services:manage | 保留期间计费 |
rollback_snapshot | 将 Cloud VPS 破坏性回滚至某个快照 | services:manage | 免费 |
delete_snapshot | 删除 Cloud VPS 磁盘快照并停止其保留计费 | services:manage | 免费 |
list_firecracker_snapshots | 列出临时 Firecracker VPS 快照和过期时间 | services:read | 免费 |
create_firecracker_snapshot | 创建临时 Firecracker VPS 快照 | services:manage | 保留期间计费 |
rollback_firecracker_snapshot | 将 Firecracker VPS 破坏性回滚至某个快照 | services:manage | 免费 |
delete_firecracker_snapshot | 删除 Firecracker VPS 快照并停止其保留计费 | services:manage | 免费 |
服务救援
| 工具 | 描述 | 范围 | 付费 |
|---|---|---|---|
get_service_rescue | 获取救援功能和当前持久化救援会话 | services:read | 免费 |
enter_service_rescue | 将符合条件的服务重启至已公布的救援镜像 | services:rescue | 免费 |
exit_service_rescue | 恢复救援前完全相同的启动配置和状态 | services:rescue | 免费 |
Firecracker Functions
| 工具 | 描述 | 范围 | 付费 |
|---|---|---|---|
list_functions | 列出按用量计费的 Firecracker Functions | services:read | 免费 |
list_function_history | 读取账户范围内分页显示的 Firecracker Function 调用历史记录。 | services:read | 免费 |
get_function | 获取一个函数,包括完整性状态,以及可读取的受保护值 | services:read | 免费 |
create_function | 创建 Firecracker Function | services:manage | 免费 |
update_function | 更新函数;无法读取的受保护值需要明确批准后才能替换 | services:manage | 免费 |
delete_function | 删除 Firecracker Function | services:manage | 免费 |
invoke_function | 调用函数,并按 CPU 和内存用量计量;使用一个稳定的 Idempotency-Key 可防止完全相同的重试重复运行或重复计费 | services:manage | 付费:fn:invoke |
list_function_invocations | 列出函数调用及其状态、持续时间和费用 | services:read | 免费 |
get_function_invocation | 获取一次调用的输出、日志和用量费用 | services:read | 免费 |
按需服务器
| 工具 | 描述 | 范围 | 付费 |
|---|---|---|---|
get_temp_vm_options | 获取启动状态、配置方案、兼容性定价参数,以及确切的存储/网络政策 | services:read | 免费 |
quote_temp_vm | 查看已禁用的报价操作及其即将推出的响应 | services:manage | 已禁用(即将推出) |
list_temp_vms | 列出账户的按需服务器会话和当前选项 | services:read | 免费 |
create_temp_vm | 查看已禁用的创建操作;产品即将推出期间不会发生付款或资源分配 | services:manage | 已禁用(即将推出) |
get_temp_vm | 获取一个归租户所有的按需服务器会话 | services:read | 免费 |
delete_temp_vm | 在明确确认数据丢失后永久删除按需服务器;不会发起客户退款 | services:manage | 免费 |
在验证按需服务器生命周期期间,客户下单功能已禁用。当前选项说明不包含自动备份和快照,并且会限制通过 TCP 端口 25、2525、465 和 587 建立出站连接。现有会话仍可通过 list/get/delete 访问,以便进行清理。已禁用的兼容性架构中的固定 TTL 和预付费字段并不代表产品上线承诺;启用下单前,必须统一发布灵活时长和按用量计费的约定。
Guest Agent
| 工具 | 描述 | 范围 | 付费 |
|---|---|---|---|
get_guest_agent_status | 读取 Cloud VPS 或 Firecracker 上的 Guest Agent 可用性;这不代表应用已就绪 | services:read | 免费 |
历史记录
| 工具 | 描述 | 范围 | 付费 |
|---|---|---|---|
get_login_history | 获取账户登录历史记录 | account:read | 免费 |
get_management_history | 获取管理/活动历史记录 | account:read | 免费 |
公共
| 工具 | 描述 | 范围 | 付费 |
|---|---|---|---|
get_pricing | 获取公开定价 | 无 | 免费 |
get_system_status | 获取 VPSnet.com 系统状态 | 无 | 免费 |
get_faq | 获取常见问题 | 无 | 免费 |
SDN 网络
必须明确授予网络权限:networking:read 或
networking:manage;普通的 full/read 默认权限不包含这些权限。
先查看 capabilities,再读取确切的自有资源及其代次。
后端会强制执行租户所有权、可用性和服务器 2FA 锁定规则。
已接受、已付款和就绪是不同的状态;请轮询对应的操作或资源。
DNS 更改通过网络的 settings.dns_change 进行轮询。
新的私有/公有负载均衡器、VPN 和公有地址使用明确的
报价 → 通用结账 → 订单状态流程。报价工具始终会发送
prepare_after_payment=true:付款前不会进行任何资源配置。
展示报价中的准确 EUR gross_amount,获取批准后,将相同的
idempotencyKey、quote_id 和 quoteToken 传递给
order_network_product。
API 密钥还需要完整访问权限、已启用付费操作、
networking:order 权限以及支出限额。读取 get_network_payment_methods,
并选择 system=balance;API 密钥不允许使用非余额结账。
如果无法确定是否已确认,请使用原报价 ID 和密钥进行恢复。
对于 status=paid_pending、billing_state=captured 且
reason_code=network_product_ip_inventory_wait 的 SDN 订单,公有 IP
库存不足期间,款项会保留。使用相同的订单 ID 轮询
get_network_product_order;库存恢复后,后端会自动继续处理。
不要创建其他订单、再次扣款或手动重试。
如果状态为 manual_review 或
network_product_stock_reconciliation_required,则需要运营人员审核;这并不授权自动重试。
普通 VPS 订单会通过
get_service.stateProcess.waitingReason=public_ip_inventory 呈现此等待状态(也会同步显示在旧版
stateProccess 字段中)。轮询同一服务,不要重新下单。
stateProcess.attention=true 表示需要运营人员处理。付款成功或创建请求已接受,并不代表服务器已就绪。
公有负载均衡器层级 alb_proxy_3/alb_proxy_5 使用请求类型
proxy_lb;私有层级 nlb 使用 private_lb。可用性和价格以实时产品目录为准。
旧版未付款的设备创建端点不能替代结账流程。
获取设备配置是一次性的管理操作,尽管其 HTTP 方法是 GET。在 MCP 外部生成密钥对,只提交 X25519 公钥,保存返回的密文封装数据,并在对话外解密。此类工具不会请求或解密私钥及明文 WireGuard 配置。响应不确定时,绝不要自动重复获取操作。
当前版本的后端不支持客户网络重命名、现有端口的固定 IP 编辑、设备重试或原生站点到站点 API。固定 DHCP 地址在附加时选择;移除并重新创建附加项需要单独批准,且不属于原位编辑。旧版未付款的负载均衡器/VPN 创建路由、旧版付款前库存购买,以及通过 API 密钥启用自动续费,均不会开放。现有公有地址绑定管理仍然可用;新公有地址使用账户所有权和通用结账流程。工具出现在列表中,并不意味着后端功能开关已启用。
| 工具 | 描述 | 范围 | 付费 |
|---|---|---|---|
get_network_payment_methods | 读取支付方式元数据,不启动支付 | 无 | 免费 |
get_networking_capabilities | 读取账户的网络功能可用性、配额、创建选项和符合条件的下单时附件 | networking:read | 免费 |
get_networking_features | 读取当前网络功能门控、DNS 选项和支持的合约扩展。 | networking:read | 免费 |
get_networking_overview | 读取自有网络、配额和操作快照 | networking:read | 免费 |
get_networking_topology | 读取包含网络范围身份信息的账户拓扑 | networking:read | 免费 |
list_networking_operations | 读取近期网络操作和 operations_has_more | networking:read | 免费 |
get_networking_operation | 读取已接受的网络或端口操作 | networking:read | 免费 |
list_private_networks | 列出自有私有网络,包括正在等待验证清理后删除的网络。 | networking:read | 免费 |
get_private_network | 读取一个自有网络,包括 DHCP 保留项、DNS 变更进度、代次和 project_id。 | networking:read | 免费 |
create_private_network | 创建私有网络意图 | networking:manage | 免费 |
delete_private_network | 请求删除空网络 | networking:manage | 免费 |
retry_private_network | 仅重试当前失败的网络操作;保留其当前代次 | networking:manage | 免费 |
set_private_network_dns | 原地更改 DHCP DNS 服务器 | networking:manage | 免费 |
set_private_network_names | 替换完整的内部 DNS 区域标签和别名列表 | networking:manage | 免费 |
list_private_network_ports | 读取自有网络端口、其固定 DHCP 地址、代次和附件状态 | networking:read | 免费 |
list_service_private_ports | 读取一个自有服务订单号对应的私有端口和订单附件恢复状态。 | networking:read | 免费 |
list_network_attachment_candidates | 读取可附加的服务及各自的 attachment_mode | networking:read | 免费 |
attach_private_network_port | 附加自有服务;省略 ipv4 可自动分配,或传入固定的可用地址 | networking:manage | 免费 |
detach_private_network_port | 分离自有服务器端口 | networking:manage | 免费 |
retry_private_network_port | 使用 PORT 代次和任何必要的重启批准,重试当前失败的端口操作。 | networking:manage | 免费 |
get_network_vpn_summary | 读取网络的 VPN 摘要,包括如实报告不存在的情况;已连接位置由网关管理 | networking:read | 免费 |
get_network_routed_egress | 读取此网络的 NAT/互联网访问、公网地址和资格状态。 | networking:read | 免费 |
set_network_routed_egress | 请求对自有网络进行当前支持的 NAT 转换;后端可能拒绝模式变更 | networking:manage | 免费 |
get_security_group_capabilities | 读取安全组可用性,以及是否可以更改网络默认策略。 | networking:read | 免费 |
list_network_security_groups | 列出自有项目中的安全组 | networking:read | 免费 |
create_network_security_group | 创建命名的允许规则集 | networking:manage | 免费 |
update_network_security_group | 按预期修订版本替换完整的安全组名称和规则列表 | networking:manage | 免费 |
delete_network_security_group | 按预期修订版本删除未被引用的客户安全组;被引用的安全组将被拒绝删除。 | networking:manage | 免费 |
clone_network_security_group | 将自有安全组克隆为新名称;使用源安全组的当前修订版本。 | networking:manage | 免费 |
get_network_security_policy | 读取默认策略、已分配的安全组和策略应用状态 | networking:read | 免费 |
set_network_default_security_policy | 更改未使用自定义安全组的服务器的允许/拒绝策略 | networking:manage | 免费 |
set_private_port_security_groups | 替换端口的完整客户安全组列表 | networking:manage | 免费 |
retry_network_security_policy | 使用当前期望状态重试失败的网络安全策略。 | networking:manage | 免费 |
retire_network_security_policy | 仅在其服务器端口全部移除后停用策略 | networking:manage | 免费 |
get_network_appliance_capabilities | 读取可用的负载均衡器提供商/层级、公网资格、VPN 功能和配额 | networking:read | 免费 |
list_network_appliances | 使用一个流游标读取自有负载均衡器和 VPN 网关。 | networking:read | 免费 |
get_network_appliance_billing | 读取当前客户可见的周期性设备账单项和货币。 | networking:read | 免费 |
get_network_appliance_operation | 轮询已接受的设备操作 | networking:read | 免费 |
list_network_load_balancers | 列出私有和公网负载均衡器,以及客户可见的健康/资格状态。 | networking:read | 免费 |
get_network_load_balancer | 读取一个自有负载均衡器、侦听器、成员、代次和健康状态 | networking:read | 免费 |
estimate_network_load_balancer | 读取此确切配置对应的负载均衡器技术估价 | networking:read | 免费 |
delete_network_load_balancer | 请求按当前代次拆除设备;这不是退款,也不会取消已付费周期 | networking:manage | 免费 |
add_network_load_balancer_member | 将已附加的私有服务器地址添加到所选侦听器;后端会验证其是否属于此网络。 | networking:manage | 免费 |
remove_network_load_balancer_member | 使用负载均衡器代次将成员移出轮询。 | networking:manage | 免费 |
add_network_load_balancer_listener | 使用当前提供的协议功能添加侦听器和可选的初始成员 | networking:manage | 免费 |
remove_network_load_balancer_listener | 移除侦听器及其成员;不允许删除最后一个侦听器。 | networking:manage | 免费 |
list_network_vpn_gateways | 列出自有 VPN 网关、其设备对端和安全状态 | networking:read | 免费 |
get_network_vpn_gateway | 读取一个自有 VPN 网关、其实时 rx/tx、最后握手时间和当前端点、授权候选项及站点选项 | networking:read | 免费 |
delete_network_vpn_gateway | 请求拆除自有 VPN 网关;所有设备都将失去连接 | networking:manage | 免费 |
attach_network_vpn_gateway | 仅当公布了独立附加功能时,将账户 VPN 附加到自有网络或迁移至该网络 | networking:manage | 免费 |
detach_network_vpn_gateway | 在支持时将账户 VPN 从其网络分离;其付费周期和设备保持不变,但网关会重新创建 | networking:manage | 免费 |
set_vpn_server_access | 在此功能可用时,为 VPN 选择 accept 或 groups_only,以控制其对已附加服务器的访问 | networking:manage | 免费 |
create_network_vpn_peer | 添加设备或已连接位置(站点到站点办公室路由器),并使用外部生成的一次性 PUBLIC reveal key | networking:manage | 免费 |
take_network_vpn_peer_config | 仅一次性读取设备的密封配置 | networking:manage | 免费 |
revoke_network_vpn_peer | 使用 VPN GATEWAY 代次撤销一个设备 | networking:manage | 免费 |
set_network_vpn_peer_grants | 在独立 VPN 可用时替换设备可访问的完整服务器列表 | networking:manage | 免费 |
get_network_vpn_egress_options | 读取支持的 VPN 互联网出口和资格状态 | networking:read | 免费 |
set_network_vpn_peer_egress | 为设备设置仅限私有网络、继承 NAT 或指定已公布出口的策略 | networking:manage | 免费 |
get_network_vpn_peer_history | 读取设备或已连接位置的流量和握手历史记录(24 h 原始数据、7 d、30 d、13 个月) | networking:read | 免费 |
set_network_vpn_site_options | 在连接到 VPN 的位置之间切换 hub-and-spoke 模式 | networking:manage | 免费 |
set_network_vpn_site_alert | 切换一个已连接位置的办公室离线电子邮件提醒 | networking:manage | 免费 |
set_network_site_route_mode | 为网络到已连接位置的路由选择 DHCP 路由或内部路由器 | networking:manage | 免费 |
list_network_products | 读取当前付费产品、实时层级名称、价格和购买功能;公网代理负载均衡器的 3/5 节点产品必须来自此目录。 | networking:read | 免费 |
list_network_product_periods | 读取自有产品周期、续订可用性和生命周期信息。 | networking:read | 免费 |
quote_network_product | 为网络产品创建用于 COMMON CHECKOUT 的准确付费报价 | networking:manage | 报价:networking:order |
quote_account_vpn | 在公布 vpn_account_order 时,为通用结账创建账户 VPN 报价 | networking:manage | 报价:networking:order |
order_network_product | 使用已批准的准确报价确认通用结账购买 | networking:manage | 付费:networking:order |
get_network_product_order | 读取自有通用结账订单的支付和履行状态 | networking:read | 免费 |
find_network_product_order | 使用原始 quote_id 找回状态不确定的结账;order=null 表示未找到订单,不代表可以使用新的支付密钥。 | networking:read | 免费 |
quote_network_product_renewal | 为网络产品的下一个付费月报价;不收费 | networking:manage | 报价:networking:order |
renew_network_product | 从账户余额支付先前明确披露的确切续订费用 | networking:manage | 付费:networking:order |
disable_network_product_auto_renew | 禁用自动续订 | networking:manage | 免费 |
quote_vpn_period_renewal | 按 VPN 实际付费范围为其下一个月报价;不收费 | networking:manage | 报价:networking:order |
renew_vpn_period | 使用确切报价和原始密钥,从账户余额支付 VPN 已批准的下个月续订费用。 | networking:manage | 付费:networking:order |
disable_vpn_auto_renew | 禁用 VPN 自动续订;当前付费周期仍然有效 | networking:manage | 免费 |
list_network_public_addresses | 读取自有付费公网地址、账户限制、目标支持情况和购买可用性。 | networking:read | 免费 |
get_network_public_address | 读取一个自有公网地址、附件和付费周期状态。 | networking:read | 免费 |
quote_network_public_address | 为通用结账报价一个新的付费公网地址;不收费 | networking:manage | 报价:networking:order |
attach_public_address_to_network | 将已付费地址附加或迁移到自有网络的 NAT | networking:manage | 免费 |
attach_public_address_to_server | 将自有的已付费公网地址附加或迁移到符合条件、没有公网 IP 的服务器私有端口 | networking:manage | 免费 |
detach_network_public_address | 将自有公网地址从当前目标分离;在付费周期内仍归你所有 | networking:manage | 免费 |
quote_public_address_renewal | 报价续订地址的下个月费用,不收费;确认时使用返回的报价和此密钥。 | networking:manage | 报价:networking:order |
renew_network_public_address | 使用准确的报价 ID/令牌和原始密钥,从余额中支付已批准的地址续订费用。 | networking:manage | 付费:networking:order |
disable_public_address_auto_renew | 禁用地址自动续订;所有权持续至 paid_until | networking:manage | 免费 |
get_network_public_binding | 读取一个现有自有公网绑定的代次、状态和分配地址 | networking:read | 免费 |
bind_network_public_ip | 在支持时,将已预留的浮动公网绑定到自有私有端口 | networking:manage | 免费 |
move_network_public_ip | 将已准备好的浮动公网绑定迁移到另一个自有私有端口;请确认旧目标会中断。 | networking:manage | 免费 |
configure_network_public_forwarding | 配置现有预留转发绑定的 TCP/UDP 侦听器 | networking:manage | 免费 |
delete_network_public_binding | 请求按其代次删除现有绑定 | networking:manage | 免费 |
操作示例
每个示例都包含对助手的请求,以及它调用的工具。
订购 VPS(先报价,再确认)
订购最便宜的 Cloud VPS,安装 Debian 并使用我的 SSH 密钥,从余额支付。
- 调用
get_order_plans查询产品,然后调用get_order_options查询所选方案的选项 (OS、周期、资源 ID),并调用list_ssh_keys获取密钥 ID。 - 调用
order_service,并传入plan、os、period、resources、sshKey(或rootPassword,不能同时传入两者)、payment: { payment: 1, successUrl: '', cancelUrl: '' }和稳定的idempotencyKey。首次调用会返回报价,但不会扣款。 API 密钥需要具备vps:order(或vds:order、ds:order、fc:order)权限和消费上限。 - 显示准确的欧元总价(含税)和计费周期。客户批准后,使用返回的
quoteToken、expected_total_eur和acknowledge_charge: true,重试参数和密钥均未更改的订单。 如果结果未知,请在控制面板中检查原始尝试;不要创建新的密钥来重试。 - 轮询
get_service,查询返回的订单号;付款已接受不代表服务器已就绪。
网络服务(先报价,再订购)
在我的网络中添加一个私有负载均衡器,并从余额支付。
- 调用
get_networking_capabilities、list_network_products和get_network_payment_methods(选择system=balance的支付方式)。 - 调用
quote_network_product,传入kind(private_lb、proxy_lb或vpn_gateway)、tier和idempotencyKey;显示报价中的欧元gross_amount。 - 获得批准后,调用
order_network_product,传入相同的idempotencyKey、quote_id、quoteToken、余额payment和acknowledge_charge: true。 如果结果不确定,请使用原始quote_id调用find_network_product_order, 然后轮询get_network_product_order。绝不要重复购买。
DNS 记录插入或更新
将 www.example.com 指向 203.0.113.10,TTL 设为 5 分钟。
- 调用
list_dns_zones查找zone_id,然后调用get_dns_zone检查 现有记录及其 ID(需要dns:read)。 - 要添加 A 记录值,请调用
upsert_dns_record,并传入zone_id、name: "www"、type: "A"、content: "203.0.113.10"、ttl: 300(需要dns:write)。 不同的内容会新增一条记录,并保留现有值。若名称、类型和内容三元组相同,则会更新 TTL 和注释, 并在记录已禁用时重新启用它。要替换现有值,请使用其准确的record_id调用update_dns_record,并传入所需的名称、类型、内容和 TTL。 - 调用
get_dns_zone读取并确认所需记录,或调用get_dns_zone_history查看变更。
对于正在等待验证、但其所有权 TXT 值已丢失的区域,请先读取
get_dns_zone.zone.verification.record.value。仅当该值为 null、无法恢复,或客户要求轮换时,才使用
reissue_dns_zone_verification。该工具同时支持 pending_verification 和
verification_expired;旧值将不再被接受。请在 zone.verification.next_step 指定的位置更新 TXT
记录,然后调用 verify_dns_zone。仅重新签发不会验证该区域,也不会重置其状态。
订购付费证书
为 example.com 购买一张一年期 DV 证书;CSR 由我自行生成。
- 调用
list_certificate_catalog和get_certificate_catalog_product,选择 产品并查看其当前欧元报价。 - 调用
quote_certificate,传入product_id、offer_id、offer_generation、common_name(以及任何alternative_names)、公开的 PKCS#10csr、 自有联系人 ID 和idempotencyKey(需要certificates:order权限、付费操作权限和消费上限)。 绝不要发送私钥。 - 用户批准准确总价后,调用
order_certificate,传入相同的请求和idempotencyKey、quote_token、payment,以及acknowledge_exact_quote_and_payment: true。 - 调用
get_certificate_validation(例如通过upsert_dns_record发布验证质询), 证书签发后调用download_certificate。
获取 API 密钥
- 登录 vpsnet.com
- 前往 Account > API Keys
- 点击 Create API Key
- 为密钥命名并复制密钥
密钥只会显示一次,请妥善保管。
故障排除
Claude Code VS Code 扩展中未显示 MCP 工具
- 安装 Claude Code CLI:
npm install -g @anthropic-ai/claude-code - 验证:
claude --version应显示版本号 - 通过 CLI 添加服务:
claude mcp add vpsnet -- npx -y vpsnet-mcp - 完全重启 VS Code(不要只重新加载窗口)
- 检查
~/.claude.json中的配置是否正确
claude: command not found
全局安装 Claude Code CLI:
npm install -g @anthropic-ai/claude-code
确认 PATH 包含 npm 全局软件包。在 Windows 上,安装后请重启终端。
环境变量不起作用
对于 Claude Code 扩展,环境变量必须放在 .claude.json 中的 env 对象内,而不能是系统环境变量:
"vpsnet": {
"type": "stdio",
"command": "npx",
"args": ["-y", "vpsnet-mcp"],
"env": {
"VPSNET_API_KEY": "your_actual_key_here"
}
}
API 密钥错误
此服务需要管理 API 密钥。下方列出的每种故障都会由工具通过 auth_problem 对象报告原因和解决方法,因此请查看该对象,而不要根据 HTTP 状态码猜测。
工具故障会携带 isError: true,同时保留 API 错误详情和恢复指引。对于结果未知的变更操作,必须先检查结果,再进行下一次尝试。服务订单号必须从 list_services 复制;支持 ASCII 字母、数字和连字符,包括带有多个订单后缀的订单号。格式错误或过长的 URL 标识符会在发送 API 请求前被拒绝。
| 你看到的内容 | 含义 | 解决方法 |
|---|---|---|
aiScopedApiKeyCannotManageAccount (403) | 此密钥是 AI 范围密钥。此类密钥仅用于 VPSnet AI 助手推理,因此会被整个账户 API 明确拒绝。授予权限范围也无法改变这一点,因为限制针对的是密钥类型。 | 创建另一个范围为 full 的密钥(仅执行 GET 操作时可用 read),并在此处使用。AI 范围密钥请继续用于推理。 |
apiKeyRejected (401) | 密钥认证完全失败。API 对所有原因都会返回相同的 401,因此原因可能是:密钥不存在、已撤销、已过期、格式错误,或来源 IP 不在密钥的 IP 允许列表中。 | 检查密钥是否有效且完整复制,并确认任何 IP 允许列表都包含此服务发起请求时使用的地址。 |
readOnlyApiKeyCannotWrite (401) | 使用只读范围密钥执行了写入操作;只读密钥仅限 GET 操作。 | 使用完整范围密钥,或仅使用只读工具。 |
apiKeyScopeMissing (403) | 密钥通过了认证,但缺少 requiredScope 中列出的细粒度权限范围。 | 在 Account > API Keys 中添加该权限范围。 |
apiKeyForbidden (403) | 此端点完全不接受 API 密钥。API 密钥不会授予管理员权限。 | 使用已登录会话访问控制面板。 |
- 确认密钥正确(以
vpsnet_开头,后接 43 个字符) - 密钥创建时只会显示一次;如果丢失,请创建新密钥
- 检查密钥是否已过期(Account > API Keys)
deploy_ssh_key 成功,但 SSH 仍然失败
- 所有 VPSnet.com 服务器都使用
root作为 SSH 用户名 - 密钥部署是异步的;部署后请等待 15-30 秒再尝试 SSH 连接
fetch is not defined 或意外错误
此服务需要 Node.js 20+。如果默认的 node 版本较旧(使用 nvm 的环境中很常见),可以:
- 将 Node 20+ 设为默认版本:
nvm alias default 20 - 或使用 Codex 部分中展示的 nvm 封装脚本
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。