helipod-mcp 0.5.3 → 0.5.5

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/dist/http.js CHANGED
@@ -36214,7 +36214,7 @@ var containerTools = [
36214
36214
  ];
36215
36215
 
36216
36216
  // src/tools/vps.ts
36217
- var vpsId = exports_external.string().describe("VPS id");
36217
+ var vpsId = exports_external.string().describe("VPS id from list_vps (not the name or hostname)");
36218
36218
  var password = exports_external.string().min(12).max(30).describe("12-30 characters with upper and lower case letters, a digit and one of ! @ # $ % ^ *");
36219
36219
  var period = exports_external.enum(["monthly", "3month", "6month", "yearly"]);
36220
36220
  var pointId = exports_external.string().describe("Restore point id (from list_vps_restore_points)");
@@ -36232,7 +36232,7 @@ var vpsTools = [
36232
36232
  name: "list_vps",
36233
36233
  title: "List VPS",
36234
36234
  kind: "read",
36235
- description: "Servers this key can reach, with status and public IP.",
36235
+ description: "Every server this key can reach (all kinds), with status, providerCode (1 = shares a public address, 2/3 = own IP) and access: the host and SSH port to connect to.",
36236
36236
  input: { status: exports_external.string().optional().describe("e.g. running, stopped"), projectId: exports_external.string().uuid().optional() },
36237
36237
  run: (a, api2) => api2.api("GET", "/vps", { query: { status: a.status, projectId: a.projectId } })
36238
36238
  }),
@@ -36240,7 +36240,7 @@ var vpsTools = [
36240
36240
  name: "get_vps",
36241
36241
  title: "Get VPS",
36242
36242
  kind: "read",
36243
- description: "One server: status, IP, size, plan, expiry, last job. Poll it after an action until status is running, stopped, terminated or error.",
36243
+ description: "One server: status, access (host and SSH port), providerCode, size, plan, expiry, last job. Poll it after an action until status is running, stopped, terminated or error.",
36244
36244
  input: { vpsId },
36245
36245
  run: (a, api2) => api2.api("GET", `/vps/${a.vpsId}`)
36246
36246
  }),
@@ -36288,7 +36288,7 @@ var vpsTools = [
36288
36288
  name: "get_vps_credentials",
36289
36289
  title: "Get VPS login",
36290
36290
  kind: "read",
36291
- description: "Login details: host, user (root, or Administrator on Windows), port, protocol (ssh or rdp) and password. The response contains the root password.",
36291
+ description: "Login details: host, user (root, or Administrator on Windows), port, protocol (ssh or rdp) and password. The response contains the root password. Only servers with providerCode 2 keep it (others: 409 FEATURE_NOT_AVAILABLE; the password is the one set at create or reset).",
36292
36292
  input: { vpsId },
36293
36293
  run: (a, api2) => api2.api("GET", `/vps/${a.vpsId}/credentials`)
36294
36294
  }),
@@ -36320,7 +36320,7 @@ var vpsTools = [
36320
36320
  name: "upgrade_vps",
36321
36321
  title: "Upgrade VPS plan",
36322
36322
  kind: "write",
36323
- description: "Move a server to a larger plan in the same family and region. COSTS MONEY (the difference for the days left) and restarts the server. planId must be one listed by get_vps_upgrade_options, which also gives the price in IDR; the server restarts during the upgrade.",
36323
+ description: "Move a server to a larger plan in the same family and region. COSTS MONEY (the difference for the days left) and restarts the server. planId must be one listed by get_vps_upgrade_options, which also gives the price in IDR; the server restarts during the upgrade. Servers with providerCode 2 only.",
36324
36324
  input: { vpsId, planId: exports_external.string() },
36325
36325
  run: (a, api2) => api2.api("POST", `/vps/${a.vpsId}/upgrade`, { body: { planId: a.planId } })
36326
36326
  }),
@@ -36328,7 +36328,7 @@ var vpsTools = [
36328
36328
  name: "get_vps_upgrade_options",
36329
36329
  title: "VPS upgrade options",
36330
36330
  kind: "read",
36331
- description: "Plans this server can move to (same family and region) with the price to pay now for the days left (IDR). upgrade_vps accepts only a planId from this list.",
36331
+ description: "Plans this server can move to (same family and region) with the price to pay now for the days left (IDR). upgrade_vps accepts only a planId from this list. Servers with providerCode 2 only.",
36332
36332
  input: { vpsId },
36333
36333
  run: (a, api2) => api2.api("GET", `/vps/${a.vpsId}/upgrade-options`)
36334
36334
  }),
@@ -36361,7 +36361,7 @@ var vpsTools = [
36361
36361
  name: "list_firewall_rules",
36362
36362
  title: "List firewall rules",
36363
36363
  kind: "read",
36364
- description: "Inbound firewall rules of a server.",
36364
+ description: "Inbound firewall rules of a server. Servers with their own IP only (providerCode 2 or 3); shared-address servers use port forwards.",
36365
36365
  input: { vpsId },
36366
36366
  run: (a, api2) => api2.api("GET", `/vps/${a.vpsId}/firewall`)
36367
36367
  }),
@@ -36458,7 +36458,7 @@ var vpsTools = [
36458
36458
  name: "list_snapshots",
36459
36459
  title: "List snapshots",
36460
36460
  kind: "read",
36461
- description: "Disk snapshots of a server.",
36461
+ description: "Disk snapshots of a server. Servers with their own IP only (providerCode 2 or 3).",
36462
36462
  input: { vpsId },
36463
36463
  run: (a, api2) => api2.api("GET", `/vps/${a.vpsId}/snapshots`)
36464
36464
  }),
@@ -37981,7 +37981,7 @@ var generalTools = [
37981
37981
  ];
37982
37982
 
37983
37983
  // src/server.ts
37984
- var VERSION = "0.5.3";
37984
+ var VERSION = "0.5.4";
37985
37985
  var INSTRUCTIONS = `Helipod is a cloud platform (Indonesia): containers, managed Postgres databases, VPS, domains, email and an AI gateway, billed from a prepaid wallet in Rupiah.
37986
37986
  - Start with list_projects to find projects and environment ids. Account tools (get_wallet, invoices, statements, notifications, get_project_activity, support tickets) cover the account; AI tools (list_ai_models, get_ai_overview, get_ai_usage, AI keys, top-ups) cover the AI gateway.
37987
37987
  - Anything that costs money (create/deploy/scale services, resize volumes, upgrade a database plan, create/renew/upgrade VPS, VPS backups, register/renew/transfer domains, email plans and inbox add-ons, AI top-ups and auto top-up): call it with dryRun=true first (or the price lookup when it has no dry run), tell the user the cost in IDR and the wallet balance after, and wait for an explicit yes before the real call. Never treat silence or an earlier general OK as a yes.
package/dist/index.js CHANGED
@@ -35359,7 +35359,7 @@ var containerTools = [
35359
35359
  ];
35360
35360
 
35361
35361
  // src/tools/vps.ts
35362
- var vpsId = exports_external.string().describe("VPS id");
35362
+ var vpsId = exports_external.string().describe("VPS id from list_vps (not the name or hostname)");
35363
35363
  var password = exports_external.string().min(12).max(30).describe("12-30 characters with upper and lower case letters, a digit and one of ! @ # $ % ^ *");
35364
35364
  var period = exports_external.enum(["monthly", "3month", "6month", "yearly"]);
35365
35365
  var pointId = exports_external.string().describe("Restore point id (from list_vps_restore_points)");
@@ -35377,7 +35377,7 @@ var vpsTools = [
35377
35377
  name: "list_vps",
35378
35378
  title: "List VPS",
35379
35379
  kind: "read",
35380
- description: "Servers this key can reach, with status and public IP.",
35380
+ description: "Every server this key can reach (all kinds), with status, providerCode (1 = shares a public address, 2/3 = own IP) and access: the host and SSH port to connect to.",
35381
35381
  input: { status: exports_external.string().optional().describe("e.g. running, stopped"), projectId: exports_external.string().uuid().optional() },
35382
35382
  run: (a, api2) => api2.api("GET", "/vps", { query: { status: a.status, projectId: a.projectId } })
35383
35383
  }),
@@ -35385,7 +35385,7 @@ var vpsTools = [
35385
35385
  name: "get_vps",
35386
35386
  title: "Get VPS",
35387
35387
  kind: "read",
35388
- description: "One server: status, IP, size, plan, expiry, last job. Poll it after an action until status is running, stopped, terminated or error.",
35388
+ description: "One server: status, access (host and SSH port), providerCode, size, plan, expiry, last job. Poll it after an action until status is running, stopped, terminated or error.",
35389
35389
  input: { vpsId },
35390
35390
  run: (a, api2) => api2.api("GET", `/vps/${a.vpsId}`)
35391
35391
  }),
@@ -35433,7 +35433,7 @@ var vpsTools = [
35433
35433
  name: "get_vps_credentials",
35434
35434
  title: "Get VPS login",
35435
35435
  kind: "read",
35436
- description: "Login details: host, user (root, or Administrator on Windows), port, protocol (ssh or rdp) and password. The response contains the root password.",
35436
+ description: "Login details: host, user (root, or Administrator on Windows), port, protocol (ssh or rdp) and password. The response contains the root password. Only servers with providerCode 2 keep it (others: 409 FEATURE_NOT_AVAILABLE; the password is the one set at create or reset).",
35437
35437
  input: { vpsId },
35438
35438
  run: (a, api2) => api2.api("GET", `/vps/${a.vpsId}/credentials`)
35439
35439
  }),
@@ -35465,7 +35465,7 @@ var vpsTools = [
35465
35465
  name: "upgrade_vps",
35466
35466
  title: "Upgrade VPS plan",
35467
35467
  kind: "write",
35468
- description: "Move a server to a larger plan in the same family and region. COSTS MONEY (the difference for the days left) and restarts the server. planId must be one listed by get_vps_upgrade_options, which also gives the price in IDR; the server restarts during the upgrade.",
35468
+ description: "Move a server to a larger plan in the same family and region. COSTS MONEY (the difference for the days left) and restarts the server. planId must be one listed by get_vps_upgrade_options, which also gives the price in IDR; the server restarts during the upgrade. Servers with providerCode 2 only.",
35469
35469
  input: { vpsId, planId: exports_external.string() },
35470
35470
  run: (a, api2) => api2.api("POST", `/vps/${a.vpsId}/upgrade`, { body: { planId: a.planId } })
35471
35471
  }),
@@ -35473,7 +35473,7 @@ var vpsTools = [
35473
35473
  name: "get_vps_upgrade_options",
35474
35474
  title: "VPS upgrade options",
35475
35475
  kind: "read",
35476
- description: "Plans this server can move to (same family and region) with the price to pay now for the days left (IDR). upgrade_vps accepts only a planId from this list.",
35476
+ description: "Plans this server can move to (same family and region) with the price to pay now for the days left (IDR). upgrade_vps accepts only a planId from this list. Servers with providerCode 2 only.",
35477
35477
  input: { vpsId },
35478
35478
  run: (a, api2) => api2.api("GET", `/vps/${a.vpsId}/upgrade-options`)
35479
35479
  }),
@@ -35506,7 +35506,7 @@ var vpsTools = [
35506
35506
  name: "list_firewall_rules",
35507
35507
  title: "List firewall rules",
35508
35508
  kind: "read",
35509
- description: "Inbound firewall rules of a server.",
35509
+ description: "Inbound firewall rules of a server. Servers with their own IP only (providerCode 2 or 3); shared-address servers use port forwards.",
35510
35510
  input: { vpsId },
35511
35511
  run: (a, api2) => api2.api("GET", `/vps/${a.vpsId}/firewall`)
35512
35512
  }),
@@ -35603,7 +35603,7 @@ var vpsTools = [
35603
35603
  name: "list_snapshots",
35604
35604
  title: "List snapshots",
35605
35605
  kind: "read",
35606
- description: "Disk snapshots of a server.",
35606
+ description: "Disk snapshots of a server. Servers with their own IP only (providerCode 2 or 3).",
35607
35607
  input: { vpsId },
35608
35608
  run: (a, api2) => api2.api("GET", `/vps/${a.vpsId}/snapshots`)
35609
35609
  }),
@@ -37126,7 +37126,7 @@ var generalTools = [
37126
37126
  ];
37127
37127
 
37128
37128
  // src/server.ts
37129
- var VERSION = "0.5.3";
37129
+ var VERSION = "0.5.4";
37130
37130
  var INSTRUCTIONS = `Helipod is a cloud platform (Indonesia): containers, managed Postgres databases, VPS, domains, email and an AI gateway, billed from a prepaid wallet in Rupiah.
37131
37131
  - Start with list_projects to find projects and environment ids. Account tools (get_wallet, invoices, statements, notifications, get_project_activity, support tickets) cover the account; AI tools (list_ai_models, get_ai_overview, get_ai_usage, AI keys, top-ups) cover the AI gateway.
37132
37132
  - Anything that costs money (create/deploy/scale services, resize volumes, upgrade a database plan, create/renew/upgrade VPS, VPS backups, register/renew/transfer domains, email plans and inbox add-ons, AI top-ups and auto top-up): call it with dryRun=true first (or the price lookup when it has no dry run), tell the user the cost in IDR and the wallet balance after, and wait for an explicit yes before the real call. Never treat silence or an earlier general OK as a yes.
package/dist/stdio.js CHANGED
@@ -35466,7 +35466,7 @@ var containerTools = [
35466
35466
  ];
35467
35467
 
35468
35468
  // src/tools/vps.ts
35469
- var vpsId = exports_external.string().describe("VPS id");
35469
+ var vpsId = exports_external.string().describe("VPS id from list_vps (not the name or hostname)");
35470
35470
  var password = exports_external.string().min(12).max(30).describe("12-30 characters with upper and lower case letters, a digit and one of ! @ # $ % ^ *");
35471
35471
  var period = exports_external.enum(["monthly", "3month", "6month", "yearly"]);
35472
35472
  var pointId = exports_external.string().describe("Restore point id (from list_vps_restore_points)");
@@ -35484,7 +35484,7 @@ var vpsTools = [
35484
35484
  name: "list_vps",
35485
35485
  title: "List VPS",
35486
35486
  kind: "read",
35487
- description: "Servers this key can reach, with status and public IP.",
35487
+ description: "Every server this key can reach (all kinds), with status, providerCode (1 = shares a public address, 2/3 = own IP) and access: the host and SSH port to connect to.",
35488
35488
  input: { status: exports_external.string().optional().describe("e.g. running, stopped"), projectId: exports_external.string().uuid().optional() },
35489
35489
  run: (a, api2) => api2.api("GET", "/vps", { query: { status: a.status, projectId: a.projectId } })
35490
35490
  }),
@@ -35492,7 +35492,7 @@ var vpsTools = [
35492
35492
  name: "get_vps",
35493
35493
  title: "Get VPS",
35494
35494
  kind: "read",
35495
- description: "One server: status, IP, size, plan, expiry, last job. Poll it after an action until status is running, stopped, terminated or error.",
35495
+ description: "One server: status, access (host and SSH port), providerCode, size, plan, expiry, last job. Poll it after an action until status is running, stopped, terminated or error.",
35496
35496
  input: { vpsId },
35497
35497
  run: (a, api2) => api2.api("GET", `/vps/${a.vpsId}`)
35498
35498
  }),
@@ -35540,7 +35540,7 @@ var vpsTools = [
35540
35540
  name: "get_vps_credentials",
35541
35541
  title: "Get VPS login",
35542
35542
  kind: "read",
35543
- description: "Login details: host, user (root, or Administrator on Windows), port, protocol (ssh or rdp) and password. The response contains the root password.",
35543
+ description: "Login details: host, user (root, or Administrator on Windows), port, protocol (ssh or rdp) and password. The response contains the root password. Only servers with providerCode 2 keep it (others: 409 FEATURE_NOT_AVAILABLE; the password is the one set at create or reset).",
35544
35544
  input: { vpsId },
35545
35545
  run: (a, api2) => api2.api("GET", `/vps/${a.vpsId}/credentials`)
35546
35546
  }),
@@ -35572,7 +35572,7 @@ var vpsTools = [
35572
35572
  name: "upgrade_vps",
35573
35573
  title: "Upgrade VPS plan",
35574
35574
  kind: "write",
35575
- description: "Move a server to a larger plan in the same family and region. COSTS MONEY (the difference for the days left) and restarts the server. planId must be one listed by get_vps_upgrade_options, which also gives the price in IDR; the server restarts during the upgrade.",
35575
+ description: "Move a server to a larger plan in the same family and region. COSTS MONEY (the difference for the days left) and restarts the server. planId must be one listed by get_vps_upgrade_options, which also gives the price in IDR; the server restarts during the upgrade. Servers with providerCode 2 only.",
35576
35576
  input: { vpsId, planId: exports_external.string() },
35577
35577
  run: (a, api2) => api2.api("POST", `/vps/${a.vpsId}/upgrade`, { body: { planId: a.planId } })
35578
35578
  }),
@@ -35580,7 +35580,7 @@ var vpsTools = [
35580
35580
  name: "get_vps_upgrade_options",
35581
35581
  title: "VPS upgrade options",
35582
35582
  kind: "read",
35583
- description: "Plans this server can move to (same family and region) with the price to pay now for the days left (IDR). upgrade_vps accepts only a planId from this list.",
35583
+ description: "Plans this server can move to (same family and region) with the price to pay now for the days left (IDR). upgrade_vps accepts only a planId from this list. Servers with providerCode 2 only.",
35584
35584
  input: { vpsId },
35585
35585
  run: (a, api2) => api2.api("GET", `/vps/${a.vpsId}/upgrade-options`)
35586
35586
  }),
@@ -35613,7 +35613,7 @@ var vpsTools = [
35613
35613
  name: "list_firewall_rules",
35614
35614
  title: "List firewall rules",
35615
35615
  kind: "read",
35616
- description: "Inbound firewall rules of a server.",
35616
+ description: "Inbound firewall rules of a server. Servers with their own IP only (providerCode 2 or 3); shared-address servers use port forwards.",
35617
35617
  input: { vpsId },
35618
35618
  run: (a, api2) => api2.api("GET", `/vps/${a.vpsId}/firewall`)
35619
35619
  }),
@@ -35710,7 +35710,7 @@ var vpsTools = [
35710
35710
  name: "list_snapshots",
35711
35711
  title: "List snapshots",
35712
35712
  kind: "read",
35713
- description: "Disk snapshots of a server.",
35713
+ description: "Disk snapshots of a server. Servers with their own IP only (providerCode 2 or 3).",
35714
35714
  input: { vpsId },
35715
35715
  run: (a, api2) => api2.api("GET", `/vps/${a.vpsId}/snapshots`)
35716
35716
  }),
@@ -37233,7 +37233,7 @@ var generalTools = [
37233
37233
  ];
37234
37234
 
37235
37235
  // src/server.ts
37236
- var VERSION = "0.5.3";
37236
+ var VERSION = "0.5.4";
37237
37237
  var INSTRUCTIONS = `Helipod is a cloud platform (Indonesia): containers, managed Postgres databases, VPS, domains, email and an AI gateway, billed from a prepaid wallet in Rupiah.
37238
37238
  - Start with list_projects to find projects and environment ids. Account tools (get_wallet, invoices, statements, notifications, get_project_activity, support tickets) cover the account; AI tools (list_ai_models, get_ai_overview, get_ai_usage, AI keys, top-ups) cover the AI gateway.
37239
37239
  - Anything that costs money (create/deploy/scale services, resize volumes, upgrade a database plan, create/renew/upgrade VPS, VPS backups, register/renew/transfer domains, email plans and inbox add-ons, AI top-ups and auto top-up): call it with dryRun=true first (or the price lookup when it has no dry run), tell the user the cost in IDR and the wallet balance after, and wait for an explicit yes before the real call. Never treat silence or an earlier general OK as a yes.
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "helipod-mcp",
3
- "version": "0.5.3",
3
+ "mcpName": "io.helipod/helipod",
4
+ "version": "0.5.5",
4
5
  "description": "MCP server for Helipod: containers, databases, VPS, domains and email from Claude Code, Codex, Cursor and other AI tools.",
5
6
  "type": "module",
6
7
  "bin": {