vpsnet-mcp 2.3.2 → 2.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/build/index.js +1 -1
- package/build/remote-policy.js +2 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -295,7 +295,7 @@ This MCP server manages your VPS infrastructure through the VPSnet.com API, incl
|
|
|
295
295
|
|
|
296
296
|
1. AI reads the local machine's public key (`~/.ssh/id_rsa.pub`)
|
|
297
297
|
2. Uploads it to VPSnet.com via `create_ssh_key`
|
|
298
|
-
3. Deploys it to a VPS via `deploy_ssh_key` (or passes it when ordering with `order_service`)
|
|
298
|
+
3. Deploys it to a VPS via `deploy_ssh_key` with explicit `vm:exec` permission for remote OAuth (or passes it when ordering with `order_service`)
|
|
299
299
|
4. Connects directly: `ssh root@<vps_ip>`
|
|
300
300
|
|
|
301
301
|
Most AI coding environments (Claude Code, Cline, Cursor, Codex) have built-in terminal access, so the AI can SSH into your VPS immediately after deploying a key — no extra tools needed.
|
|
@@ -672,7 +672,7 @@ everything else.
|
|
|
672
672
|
| `change_title` | Change service display title | `services:manage` | free |
|
|
673
673
|
| `toggle_ipv6` | Enable or disable IPv6 | `services:manage` | free |
|
|
674
674
|
| `toggle_extra_settings` | Toggle ppp, fuse, tuntap, or nfs | `services:manage` | free |
|
|
675
|
-
| `deploy_ssh_key` | Deploy an SSH key to a VPS | `services:manage` | free |
|
|
675
|
+
| `deploy_ssh_key` | Deploy an SSH key to a VPS; remote OAuth also requires `vm:exec` | `services:manage` | free |
|
|
676
676
|
|
|
677
677
|
### OS Reinstall
|
|
678
678
|
| Tool | Description | Scope | Paid |
|
package/build/index.js
CHANGED
|
@@ -1661,7 +1661,7 @@ export function createVpsnetServer(options = {}) {
|
|
|
1661
1661
|
return { content: [{ type: "text", text: formatJson(data) }] };
|
|
1662
1662
|
});
|
|
1663
1663
|
server.registerTool("deploy_ssh_key", {
|
|
1664
|
-
description: "Deploy an SSH key to VPS. Returns a noty UUID; follow it with wait_for_event. ASYNC — wait 15-30 seconds after deploying before attempting SSH. Use list_ssh_keys to get available key IDs. To add your own key first: read ~/.ssh/id_rsa.pub from local machine, then create_ssh_key, then deploy it here.
|
|
1664
|
+
description: "Deploy an SSH key to VPS. Returns a noty UUID; follow it with wait_for_event. ASYNC — wait 15-30 seconds after deploying before attempting SSH. Use list_ssh_keys to get available key IDs. To add your own key first: read ~/.ssh/id_rsa.pub from local machine, then create_ssh_key, then deploy it here. Remote OAuth requires vm:exec; direct API-key use requires services:manage and a full-access key.",
|
|
1665
1665
|
inputSchema: {
|
|
1666
1666
|
orderNo: serviceOrderNoSchema,
|
|
1667
1667
|
ssh_key: positiveIdSchema.describe("SSH key ID from list_ssh_keys"),
|
package/build/remote-policy.js
CHANGED
|
@@ -22,7 +22,7 @@ export const orderScopes = ["orders:read", "orders:servers", "orders:domains"];
|
|
|
22
22
|
export const orderInstructions = remoteInstructions.replace("This connector does not purchase capacity, change payment settings or run model inference.", "This VPSnet connection can purchase permanent VPS servers and register domains from the customer’s VPSnet balance when purchase permissions are enabled. Use the existing connection; its owner can change purchase permissions in the VPSnet panel without reconnecting. Quote first, show the final gross EUR amount and period, and confirm only after explicit approval. Domain registration may be non-refundable. Daily and monthly limits cover this connection across token refresh. Never use a new key to retry an uncertain payment; inspect get_purchase_result. Payment settings and saved-card charges are not exposed.");
|
|
23
23
|
export const supportedScopes = ["services:read", "services:manage", "applications:read", "applications:manage", "networking:read", "networking:manage", "functions:read", "functions:manage", "functions:invoke", "vm:diagnostics", "vm:files:read", "vm:files:write", "vm:exec", "services:reinstall", "services:restore", "services:rescue", "dns:read", "dns:write", "dnssec:manage", "domains:read", "domains:manage", "certificates:read", "certificates:manage", "ssh_keys:read", "ssh_keys:manage"];
|
|
24
24
|
const readServices = ["get_service_rescue", "get_guest_agent_status", "get_plan_options", "get_plan_resources", "calculate_plan_change", "get_period_options", "list_restore_points", "list_restore_file_points", "browse_restore_files", "get_restore_file_browse", "list_services", "get_service", "get_service_graphs", "get_service_history", "get_hostname", "get_title", "get_rdns", "get_os_options", "get_backup_status", "get_backup_history", "list_snapshots", "list_firecracker_snapshots", "get_firecracker_backup_status", "get_firecracker_backup_history"];
|
|
25
|
-
const manageServices = ["suspend_service", "resume_service", "flush_iptables", "toggle_ipv6", "toggle_extra_settings", "
|
|
25
|
+
const manageServices = ["suspend_service", "resume_service", "flush_iptables", "toggle_ipv6", "toggle_extra_settings", "reinstall_os", "rollback_snapshot", "delete_snapshot", "rollback_firecracker_snapshot", "delete_firecracker_snapshot", "start_service", "stop_service", "restart_service", "change_hostname", "reset_hostname", "change_title", "change_rdns", "clear_rdns"];
|
|
26
26
|
const readApps = ["list_application_registry_credentials", "get_application_data_restore", "list_application_catalog", "list_service_applications", "get_application_installation", "get_application_events", "get_application_health", "get_application_logs", "list_application_recipes", "list_application_recipe_revisions", "export_application_recipe", "discover_service_containers", "get_application_compose_adoption"];
|
|
27
27
|
const manageApps = ["configure_application_resource_thresholds", "validate_application_recipe", "create_application_recipe", "create_application_recipe_revision", "install_application_recipe", "prepare_application_compose_adoption", "confirm_application_compose_adoption", "install_application", "configure_application_access", "manage_application", "cancel_application_action"];
|
|
28
28
|
const permissions = new Map([
|
|
@@ -97,6 +97,7 @@ const permissions = new Map([
|
|
|
97
97
|
["get_ssh_key", "ssh_keys:read"],
|
|
98
98
|
["create_ssh_key", "ssh_keys:manage"],
|
|
99
99
|
["delete_ssh_key", "ssh_keys:manage"],
|
|
100
|
+
["deploy_ssh_key", "vm:exec"],
|
|
100
101
|
["enter_service_rescue", "services:rescue"],
|
|
101
102
|
["exit_service_rescue", "services:rescue"],
|
|
102
103
|
["get_system_status", "authenticated"],
|