@nirvana-labs/nirvana-mcp 1.19.0 → 1.20.0

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.
Files changed (138) hide show
  1. package/README.md +15 -12
  2. package/package.json +2 -2
  3. package/server.js +1 -1
  4. package/server.mjs +1 -1
  5. package/src/server.ts +1 -1
  6. package/src/tools/index.ts +18 -12
  7. package/src/tools/{connect/flux/update-connect-flux.ts → networking/connect/connections/create-connect-networking-connections.ts} +71 -13
  8. package/src/tools/networking/connect/connections/delete-connect-networking-connections.ts +49 -0
  9. package/src/tools/networking/connect/connections/get-connect-networking-connections.ts +49 -0
  10. package/src/tools/networking/connect/connections/list-connect-networking-connections.ts +46 -0
  11. package/src/tools/networking/connect/connections/update-connect-networking-connections.ts +58 -0
  12. package/src/tools/{connect/flux/routes/list-flux-connect-routes.ts → networking/connect/routes/list-connect-networking-routes.ts} +6 -6
  13. package/src/tools/rpc-nodes/flex/create-rpc-nodes-flex.ts +61 -0
  14. package/src/tools/rpc-nodes/flex/delete-rpc-nodes-flex.ts +40 -0
  15. package/src/tools/rpc-nodes/flex/update-rpc-nodes-flex.ts +56 -0
  16. package/tools/index.d.mts.map +1 -1
  17. package/tools/index.d.ts.map +1 -1
  18. package/tools/index.js +18 -12
  19. package/tools/index.js.map +1 -1
  20. package/tools/index.mjs +18 -12
  21. package/tools/index.mjs.map +1 -1
  22. package/tools/networking/connect/connections/create-connect-networking-connections.d.mts +45 -0
  23. package/tools/networking/connect/connections/create-connect-networking-connections.d.mts.map +1 -0
  24. package/tools/networking/connect/connections/create-connect-networking-connections.d.ts +45 -0
  25. package/tools/networking/connect/connections/create-connect-networking-connections.d.ts.map +1 -0
  26. package/tools/{connect/flux/create-connect-flux.js → networking/connect/connections/create-connect-networking-connections.js} +15 -15
  27. package/tools/networking/connect/connections/create-connect-networking-connections.js.map +1 -0
  28. package/tools/{connect/flux/create-connect-flux.mjs → networking/connect/connections/create-connect-networking-connections.mjs} +15 -15
  29. package/tools/networking/connect/connections/create-connect-networking-connections.mjs.map +1 -0
  30. package/tools/networking/connect/connections/delete-connect-networking-connections.d.mts +45 -0
  31. package/tools/networking/connect/connections/delete-connect-networking-connections.d.mts.map +1 -0
  32. package/tools/networking/connect/connections/delete-connect-networking-connections.d.ts +45 -0
  33. package/tools/networking/connect/connections/delete-connect-networking-connections.d.ts.map +1 -0
  34. package/tools/networking/connect/connections/delete-connect-networking-connections.js +42 -0
  35. package/tools/networking/connect/connections/delete-connect-networking-connections.js.map +1 -0
  36. package/tools/networking/connect/connections/delete-connect-networking-connections.mjs +38 -0
  37. package/tools/networking/connect/connections/delete-connect-networking-connections.mjs.map +1 -0
  38. package/tools/networking/connect/connections/get-connect-networking-connections.d.mts +45 -0
  39. package/tools/networking/connect/connections/get-connect-networking-connections.d.mts.map +1 -0
  40. package/tools/networking/connect/connections/get-connect-networking-connections.d.ts +45 -0
  41. package/tools/networking/connect/connections/get-connect-networking-connections.d.ts.map +1 -0
  42. package/tools/networking/connect/connections/get-connect-networking-connections.js +42 -0
  43. package/tools/networking/connect/connections/get-connect-networking-connections.js.map +1 -0
  44. package/tools/networking/connect/connections/get-connect-networking-connections.mjs +38 -0
  45. package/tools/networking/connect/connections/get-connect-networking-connections.mjs.map +1 -0
  46. package/tools/networking/connect/connections/list-connect-networking-connections.d.mts +45 -0
  47. package/tools/networking/connect/connections/list-connect-networking-connections.d.mts.map +1 -0
  48. package/tools/networking/connect/connections/list-connect-networking-connections.d.ts +45 -0
  49. package/tools/networking/connect/connections/list-connect-networking-connections.d.ts.map +1 -0
  50. package/tools/networking/connect/connections/list-connect-networking-connections.js +39 -0
  51. package/tools/networking/connect/connections/list-connect-networking-connections.js.map +1 -0
  52. package/tools/networking/connect/connections/list-connect-networking-connections.mjs +35 -0
  53. package/tools/networking/connect/connections/list-connect-networking-connections.mjs.map +1 -0
  54. package/tools/networking/connect/connections/update-connect-networking-connections.d.mts +45 -0
  55. package/tools/networking/connect/connections/update-connect-networking-connections.d.mts.map +1 -0
  56. package/tools/networking/connect/connections/update-connect-networking-connections.d.ts +45 -0
  57. package/tools/networking/connect/connections/update-connect-networking-connections.d.ts.map +1 -0
  58. package/tools/networking/connect/connections/update-connect-networking-connections.js +51 -0
  59. package/tools/networking/connect/connections/update-connect-networking-connections.js.map +1 -0
  60. package/tools/networking/connect/connections/update-connect-networking-connections.mjs +47 -0
  61. package/tools/networking/connect/connections/update-connect-networking-connections.mjs.map +1 -0
  62. package/tools/networking/connect/routes/list-connect-networking-routes.d.mts +45 -0
  63. package/tools/networking/connect/routes/list-connect-networking-routes.d.mts.map +1 -0
  64. package/tools/networking/connect/routes/list-connect-networking-routes.d.ts +45 -0
  65. package/tools/networking/connect/routes/list-connect-networking-routes.d.ts.map +1 -0
  66. package/tools/{connect/flux/routes/list-flux-connect-routes.js → networking/connect/routes/list-connect-networking-routes.js} +7 -7
  67. package/tools/networking/connect/routes/list-connect-networking-routes.js.map +1 -0
  68. package/tools/networking/connect/routes/list-connect-networking-routes.mjs +35 -0
  69. package/tools/networking/connect/routes/list-connect-networking-routes.mjs.map +1 -0
  70. package/tools/{connect/flux/delete-connect-flux.d.mts → rpc-nodes/flex/create-rpc-nodes-flex.d.mts} +1 -1
  71. package/tools/rpc-nodes/flex/create-rpc-nodes-flex.d.mts.map +1 -0
  72. package/tools/{connect/flux/delete-connect-flux.d.ts → rpc-nodes/flex/create-rpc-nodes-flex.d.ts} +1 -1
  73. package/tools/rpc-nodes/flex/create-rpc-nodes-flex.d.ts.map +1 -0
  74. package/tools/rpc-nodes/flex/create-rpc-nodes-flex.js +56 -0
  75. package/tools/rpc-nodes/flex/create-rpc-nodes-flex.js.map +1 -0
  76. package/tools/rpc-nodes/flex/create-rpc-nodes-flex.mjs +52 -0
  77. package/tools/rpc-nodes/flex/create-rpc-nodes-flex.mjs.map +1 -0
  78. package/tools/rpc-nodes/flex/delete-rpc-nodes-flex.d.mts +45 -0
  79. package/tools/rpc-nodes/flex/delete-rpc-nodes-flex.d.mts.map +1 -0
  80. package/tools/{connect/flux/create-connect-flux.d.mts → rpc-nodes/flex/delete-rpc-nodes-flex.d.ts} +1 -1
  81. package/tools/rpc-nodes/flex/delete-rpc-nodes-flex.d.ts.map +1 -0
  82. package/tools/rpc-nodes/flex/delete-rpc-nodes-flex.js +37 -0
  83. package/tools/rpc-nodes/flex/delete-rpc-nodes-flex.js.map +1 -0
  84. package/tools/rpc-nodes/flex/delete-rpc-nodes-flex.mjs +33 -0
  85. package/tools/rpc-nodes/flex/delete-rpc-nodes-flex.mjs.map +1 -0
  86. package/tools/rpc-nodes/flex/update-rpc-nodes-flex.d.mts +45 -0
  87. package/tools/rpc-nodes/flex/update-rpc-nodes-flex.d.mts.map +1 -0
  88. package/tools/{connect/flux/create-connect-flux.d.ts → rpc-nodes/flex/update-rpc-nodes-flex.d.ts} +1 -1
  89. package/tools/rpc-nodes/flex/update-rpc-nodes-flex.d.ts.map +1 -0
  90. package/tools/rpc-nodes/flex/update-rpc-nodes-flex.js +51 -0
  91. package/tools/rpc-nodes/flex/update-rpc-nodes-flex.js.map +1 -0
  92. package/tools/rpc-nodes/flex/update-rpc-nodes-flex.mjs +47 -0
  93. package/tools/rpc-nodes/flex/update-rpc-nodes-flex.mjs.map +1 -0
  94. package/src/tools/connect/flux/create-connect-flux.ts +0 -112
  95. package/src/tools/connect/flux/delete-connect-flux.ts +0 -47
  96. package/src/tools/connect/flux/get-connect-flux.ts +0 -47
  97. package/src/tools/connect/flux/list-connect-flux.ts +0 -44
  98. package/tools/connect/flux/create-connect-flux.d.mts.map +0 -1
  99. package/tools/connect/flux/create-connect-flux.d.ts.map +0 -1
  100. package/tools/connect/flux/create-connect-flux.js.map +0 -1
  101. package/tools/connect/flux/create-connect-flux.mjs.map +0 -1
  102. package/tools/connect/flux/delete-connect-flux.d.mts.map +0 -1
  103. package/tools/connect/flux/delete-connect-flux.d.ts.map +0 -1
  104. package/tools/connect/flux/delete-connect-flux.js +0 -42
  105. package/tools/connect/flux/delete-connect-flux.js.map +0 -1
  106. package/tools/connect/flux/delete-connect-flux.mjs +0 -38
  107. package/tools/connect/flux/delete-connect-flux.mjs.map +0 -1
  108. package/tools/connect/flux/get-connect-flux.d.mts +0 -45
  109. package/tools/connect/flux/get-connect-flux.d.mts.map +0 -1
  110. package/tools/connect/flux/get-connect-flux.d.ts +0 -45
  111. package/tools/connect/flux/get-connect-flux.d.ts.map +0 -1
  112. package/tools/connect/flux/get-connect-flux.js +0 -42
  113. package/tools/connect/flux/get-connect-flux.js.map +0 -1
  114. package/tools/connect/flux/get-connect-flux.mjs +0 -38
  115. package/tools/connect/flux/get-connect-flux.mjs.map +0 -1
  116. package/tools/connect/flux/list-connect-flux.d.mts +0 -45
  117. package/tools/connect/flux/list-connect-flux.d.mts.map +0 -1
  118. package/tools/connect/flux/list-connect-flux.d.ts +0 -45
  119. package/tools/connect/flux/list-connect-flux.d.ts.map +0 -1
  120. package/tools/connect/flux/list-connect-flux.js +0 -39
  121. package/tools/connect/flux/list-connect-flux.js.map +0 -1
  122. package/tools/connect/flux/list-connect-flux.mjs +0 -35
  123. package/tools/connect/flux/list-connect-flux.mjs.map +0 -1
  124. package/tools/connect/flux/routes/list-flux-connect-routes.d.mts +0 -45
  125. package/tools/connect/flux/routes/list-flux-connect-routes.d.mts.map +0 -1
  126. package/tools/connect/flux/routes/list-flux-connect-routes.d.ts +0 -45
  127. package/tools/connect/flux/routes/list-flux-connect-routes.d.ts.map +0 -1
  128. package/tools/connect/flux/routes/list-flux-connect-routes.js.map +0 -1
  129. package/tools/connect/flux/routes/list-flux-connect-routes.mjs +0 -35
  130. package/tools/connect/flux/routes/list-flux-connect-routes.mjs.map +0 -1
  131. package/tools/connect/flux/update-connect-flux.d.mts +0 -45
  132. package/tools/connect/flux/update-connect-flux.d.mts.map +0 -1
  133. package/tools/connect/flux/update-connect-flux.d.ts +0 -45
  134. package/tools/connect/flux/update-connect-flux.d.ts.map +0 -1
  135. package/tools/connect/flux/update-connect-flux.js +0 -51
  136. package/tools/connect/flux/update-connect-flux.js.map +0 -1
  137. package/tools/connect/flux/update-connect-flux.mjs +0 -47
  138. package/tools/connect/flux/update-connect-flux.mjs.map +0 -1
package/README.md CHANGED
@@ -275,9 +275,24 @@ The following tools are available in this MCP server.
275
275
  - `delete_networking_firewall_rules` (`write`): Delete a firewall rule
276
276
  - `get_networking_firewall_rules` (`read`): Get details about a firewall rule
277
277
 
278
+ ### Resource `networking.connect.connections`:
279
+
280
+ - `create_connect_networking_connections` (`write`): Create a Connect Connection
281
+ - `update_connect_networking_connections` (`write`): Update Connect Connection details
282
+ - `list_connect_networking_connections` (`read`): List all Connect Connections
283
+ - `delete_connect_networking_connections` (`write`): Delete Connect Connection
284
+ - `get_connect_networking_connections` (`read`): Get Connect Connection details
285
+
286
+ ### Resource `networking.connect.routes`:
287
+
288
+ - `list_connect_networking_routes` (`read`): List all supported routes with regions for Connect.
289
+
278
290
  ### Resource `rpc_nodes.flex`:
279
291
 
292
+ - `create_rpc_nodes_flex` (`write`): Create a new RPC Node Flex
293
+ - `update_rpc_nodes_flex` (`write`): Update an existing RPC Node Flex
280
294
  - `list_rpc_nodes_flex` (`read`): List all RPC Node Flex you created
295
+ - `delete_rpc_nodes_flex` (`write`): Delete an RPC Node Flex
281
296
  - `get_rpc_nodes_flex` (`read`): Get details about an RPC Node Flex
282
297
 
283
298
  ### Resource `rpc_nodes.flex.blockchains`:
@@ -293,18 +308,6 @@ The following tools are available in this MCP server.
293
308
 
294
309
  - `list_dedicated_rpc_nodes_blockchains` (`read`): List all Dedicated Blockchains
295
310
 
296
- ### Resource `connect.flux`:
297
-
298
- - `create_connect_flux` (`write`): Create a Connect Flux
299
- - `update_connect_flux` (`write`): Update Connect Flux details
300
- - `list_connect_flux` (`read`): List all Connect Flux
301
- - `delete_connect_flux` (`write`): Delete Connect Flux
302
- - `get_connect_flux` (`read`): Get Connect Flux details
303
-
304
- ### Resource `connect.flux.routes`:
305
-
306
- - `list_flux_connect_routes` (`read`): List all supported routes with regions for Connect Flux.
307
-
308
311
  ### Resource `vektor.registry.assets`:
309
312
 
310
313
  - `list_registry_vektor_assets` (`write`): List supported assets, optionally filtered by blockchain
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nirvana-labs/nirvana-mcp",
3
- "version": "1.19.0",
3
+ "version": "1.20.0",
4
4
  "description": "The official MCP Server for the Nirvana Labs API",
5
5
  "author": "Nirvana Labs <engineering@nirvanalabs.io>",
6
6
  "types": "./index.d.ts",
@@ -27,7 +27,7 @@
27
27
  "fix": "eslint --fix --ext ts,js ."
28
28
  },
29
29
  "dependencies": {
30
- "@nirvana-labs/nirvana": "^1.19.0",
30
+ "@nirvana-labs/nirvana": "^1.20.0",
31
31
  "@cloudflare/cabidela": "^0.2.4",
32
32
  "@modelcontextprotocol/sdk": "^1.11.5",
33
33
  "@valtown/deno-http-worker": "^0.0.21",
package/server.js CHANGED
@@ -22,7 +22,7 @@ var tools_2 = require("./tools.js");
22
22
  Object.defineProperty(exports, "endpoints", { enumerable: true, get: function () { return tools_2.endpoints; } });
23
23
  const newMcpServer = () => new mcp_js_1.McpServer({
24
24
  name: 'nirvana_labs_nirvana_api',
25
- version: '1.19.0',
25
+ version: '1.20.0',
26
26
  }, { capabilities: { tools: {}, logging: {} } });
27
27
  exports.newMcpServer = newMcpServer;
28
28
  // Create server instance
package/server.mjs CHANGED
@@ -11,7 +11,7 @@ export { ClientType } from "./compat.mjs";
11
11
  export { endpoints } from "./tools.mjs";
12
12
  export const newMcpServer = () => new McpServer({
13
13
  name: 'nirvana_labs_nirvana_api',
14
- version: '1.19.0',
14
+ version: '1.20.0',
15
15
  }, { capabilities: { tools: {}, logging: {} } });
16
16
  // Create server instance
17
17
  export const server = newMcpServer();
package/src/server.ts CHANGED
@@ -34,7 +34,7 @@ export const newMcpServer = () =>
34
34
  new McpServer(
35
35
  {
36
36
  name: 'nirvana_labs_nirvana_api',
37
- version: '1.19.0',
37
+ version: '1.20.0',
38
38
  },
39
39
  { capabilities: { tools: {}, logging: {} } },
40
40
  );
@@ -41,18 +41,21 @@ import update_networking_firewall_rules from './networking/firewall-rules/update
41
41
  import list_networking_firewall_rules from './networking/firewall-rules/list-networking-firewall-rules';
42
42
  import delete_networking_firewall_rules from './networking/firewall-rules/delete-networking-firewall-rules';
43
43
  import get_networking_firewall_rules from './networking/firewall-rules/get-networking-firewall-rules';
44
+ import create_connect_networking_connections from './networking/connect/connections/create-connect-networking-connections';
45
+ import update_connect_networking_connections from './networking/connect/connections/update-connect-networking-connections';
46
+ import list_connect_networking_connections from './networking/connect/connections/list-connect-networking-connections';
47
+ import delete_connect_networking_connections from './networking/connect/connections/delete-connect-networking-connections';
48
+ import get_connect_networking_connections from './networking/connect/connections/get-connect-networking-connections';
49
+ import list_connect_networking_routes from './networking/connect/routes/list-connect-networking-routes';
50
+ import create_rpc_nodes_flex from './rpc-nodes/flex/create-rpc-nodes-flex';
51
+ import update_rpc_nodes_flex from './rpc-nodes/flex/update-rpc-nodes-flex';
44
52
  import list_rpc_nodes_flex from './rpc-nodes/flex/list-rpc-nodes-flex';
53
+ import delete_rpc_nodes_flex from './rpc-nodes/flex/delete-rpc-nodes-flex';
45
54
  import get_rpc_nodes_flex from './rpc-nodes/flex/get-rpc-nodes-flex';
46
55
  import list_flex_rpc_nodes_blockchains from './rpc-nodes/flex/blockchains/list-flex-rpc-nodes-blockchains';
47
56
  import list_rpc_nodes_dedicated from './rpc-nodes/dedicated/list-rpc-nodes-dedicated';
48
57
  import get_rpc_nodes_dedicated from './rpc-nodes/dedicated/get-rpc-nodes-dedicated';
49
58
  import list_dedicated_rpc_nodes_blockchains from './rpc-nodes/dedicated/blockchains/list-dedicated-rpc-nodes-blockchains';
50
- import create_connect_flux from './connect/flux/create-connect-flux';
51
- import update_connect_flux from './connect/flux/update-connect-flux';
52
- import list_connect_flux from './connect/flux/list-connect-flux';
53
- import delete_connect_flux from './connect/flux/delete-connect-flux';
54
- import get_connect_flux from './connect/flux/get-connect-flux';
55
- import list_flux_connect_routes from './connect/flux/routes/list-flux-connect-routes';
56
59
  import list_registry_vektor_assets from './vektor/registry/assets/list-registry-vektor-assets';
57
60
  import list_registry_vektor_blockchains from './vektor/registry/blockchains/list-registry-vektor-blockchains';
58
61
  import list_registry_vektor_venues from './vektor/registry/venues/list-registry-vektor-venues';
@@ -146,18 +149,21 @@ addEndpoint(update_networking_firewall_rules);
146
149
  addEndpoint(list_networking_firewall_rules);
147
150
  addEndpoint(delete_networking_firewall_rules);
148
151
  addEndpoint(get_networking_firewall_rules);
152
+ addEndpoint(create_connect_networking_connections);
153
+ addEndpoint(update_connect_networking_connections);
154
+ addEndpoint(list_connect_networking_connections);
155
+ addEndpoint(delete_connect_networking_connections);
156
+ addEndpoint(get_connect_networking_connections);
157
+ addEndpoint(list_connect_networking_routes);
158
+ addEndpoint(create_rpc_nodes_flex);
159
+ addEndpoint(update_rpc_nodes_flex);
149
160
  addEndpoint(list_rpc_nodes_flex);
161
+ addEndpoint(delete_rpc_nodes_flex);
150
162
  addEndpoint(get_rpc_nodes_flex);
151
163
  addEndpoint(list_flex_rpc_nodes_blockchains);
152
164
  addEndpoint(list_rpc_nodes_dedicated);
153
165
  addEndpoint(get_rpc_nodes_dedicated);
154
166
  addEndpoint(list_dedicated_rpc_nodes_blockchains);
155
- addEndpoint(create_connect_flux);
156
- addEndpoint(update_connect_flux);
157
- addEndpoint(list_connect_flux);
158
- addEndpoint(delete_connect_flux);
159
- addEndpoint(get_connect_flux);
160
- addEndpoint(list_flux_connect_routes);
161
167
  addEndpoint(list_registry_vektor_assets);
162
168
  addEndpoint(list_registry_vektor_blockchains);
163
169
  addEndpoint(list_registry_vektor_venues);
@@ -7,31 +7,51 @@ import { Tool } from '@modelcontextprotocol/sdk/types.js';
7
7
  import NirvanaLabs from '@nirvana-labs/nirvana';
8
8
 
9
9
  export const metadata: Metadata = {
10
- resource: 'connect.flux',
10
+ resource: 'networking.connect.connections',
11
11
  operation: 'write',
12
12
  tags: [],
13
- httpMethod: 'patch',
14
- httpPath: '/v1/connect/flux/{flux_id}',
15
- operationId: 'update_connect_flux',
13
+ httpMethod: 'post',
14
+ httpPath: '/v1/networking/connect/connections',
15
+ operationId: 'create_connect_connection',
16
16
  };
17
17
 
18
18
  export const tool: Tool = {
19
- name: 'update_connect_flux',
19
+ name: 'create_connect_networking_connections',
20
20
  description:
21
- "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nUpdate Connect Flux details\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/operation',\n $defs: {\n operation: {\n type: 'object',\n description: 'Operation details.',\n properties: {\n id: {\n type: 'string',\n description: 'Unique identifier for the Operation.'\n },\n created_at: {\n type: 'string',\n description: 'When the Operation was created.',\n format: 'date-time'\n },\n kind: {\n $ref: '#/$defs/operation_kind'\n },\n resource_id: {\n type: 'string',\n description: 'ID of the resource that the Operation is acting on.'\n },\n status: {\n $ref: '#/$defs/operation_status'\n },\n type: {\n $ref: '#/$defs/operation_type'\n },\n updated_at: {\n type: 'string',\n description: 'When the Operation was updated.',\n format: 'date-time'\n }\n },\n required: [ 'id',\n 'created_at',\n 'kind',\n 'resource_id',\n 'status',\n 'type',\n 'updated_at'\n ]\n },\n operation_kind: {\n type: 'string',\n description: 'Kind of Operation.',\n enum: [ 'vm',\n 'volume',\n 'vpc',\n 'firewall_rule'\n ]\n },\n operation_status: {\n type: 'string',\n description: 'Status of the Operation.',\n enum: [ 'pending',\n 'running',\n 'done',\n 'failed',\n 'unknown'\n ]\n },\n operation_type: {\n type: 'string',\n description: 'Type of Operation.',\n enum: [ 'create',\n 'update',\n 'delete',\n 'restart'\n ]\n }\n }\n}\n```",
21
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nCreate a Connect Connection\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/operation',\n $defs: {\n operation: {\n type: 'object',\n description: 'Operation details.',\n properties: {\n id: {\n type: 'string',\n description: 'Unique identifier for the Operation.'\n },\n created_at: {\n type: 'string',\n description: 'When the Operation was created.',\n format: 'date-time'\n },\n kind: {\n $ref: '#/$defs/operation_kind'\n },\n resource_id: {\n type: 'string',\n description: 'ID of the resource that the Operation is acting on.'\n },\n status: {\n $ref: '#/$defs/operation_status'\n },\n type: {\n $ref: '#/$defs/operation_type'\n },\n updated_at: {\n type: 'string',\n description: 'When the Operation was updated.',\n format: 'date-time'\n }\n },\n required: [ 'id',\n 'created_at',\n 'kind',\n 'resource_id',\n 'status',\n 'type',\n 'updated_at'\n ]\n },\n operation_kind: {\n type: 'string',\n description: 'Kind of Operation.',\n enum: [ 'vm',\n 'volume',\n 'vpc',\n 'firewall_rule'\n ]\n },\n operation_status: {\n type: 'string',\n description: 'Status of the Operation.',\n enum: [ 'pending',\n 'running',\n 'done',\n 'failed',\n 'unknown'\n ]\n },\n operation_type: {\n type: 'string',\n description: 'Type of Operation.',\n enum: [ 'create',\n 'update',\n 'delete',\n 'restart'\n ]\n }\n }\n}\n```",
22
22
  inputSchema: {
23
23
  type: 'object',
24
24
  properties: {
25
- flux_id: {
26
- type: 'string',
25
+ bandwidth_mbps: {
26
+ $ref: '#/$defs/connect_bandwidth_mbps',
27
+ },
28
+ cidrs: {
29
+ type: 'array',
30
+ description: 'CIDRs for the Connect Connection',
31
+ items: {
32
+ type: 'string',
33
+ },
27
34
  },
28
35
  name: {
29
36
  type: 'string',
30
- description: 'Name of the Connect Flux.',
37
+ description: 'Name of the Connect Connection',
38
+ },
39
+ provider_cidrs: {
40
+ type: 'array',
41
+ description: 'Provider CIDRs',
42
+ items: {
43
+ type: 'string',
44
+ },
45
+ },
46
+ region: {
47
+ $ref: '#/$defs/region_name',
48
+ },
49
+ aws: {
50
+ $ref: '#/$defs/connect_connection_aws_config_request',
31
51
  },
32
52
  tags: {
33
53
  type: 'array',
34
- description: 'Tags to attach to the Connect Flux',
54
+ description: 'Tags to attach to the Connect Connection',
35
55
  items: {
36
56
  type: 'string',
37
57
  },
@@ -43,14 +63,52 @@ export const tool: Tool = {
43
63
  'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
44
64
  },
45
65
  },
46
- required: ['flux_id'],
66
+ required: ['bandwidth_mbps', 'cidrs', 'name', 'provider_cidrs', 'region'],
67
+ $defs: {
68
+ connect_bandwidth_mbps: {
69
+ type: 'string',
70
+ description: 'Connect Connection speed in Mbps',
71
+ enum: [50, 200, 500, 1000, 2000],
72
+ },
73
+ region_name: {
74
+ type: 'string',
75
+ description: 'Region the resource is in.',
76
+ enum: [
77
+ 'us-sea-1',
78
+ 'us-sva-1',
79
+ 'us-chi-1',
80
+ 'us-wdc-1',
81
+ 'eu-frk-1',
82
+ 'ap-sin-1',
83
+ 'ap-seo-1',
84
+ 'ap-tyo-1',
85
+ ],
86
+ },
87
+ connect_connection_aws_config_request: {
88
+ type: 'object',
89
+ description: 'AWS provider configuration',
90
+ properties: {
91
+ account_id: {
92
+ type: 'string',
93
+ description: 'AWS account id',
94
+ },
95
+ region: {
96
+ type: 'string',
97
+ description: 'AWS region where the connection will be established',
98
+ },
99
+ },
100
+ required: ['account_id', 'region'],
101
+ },
102
+ },
47
103
  },
48
104
  annotations: {},
49
105
  };
50
106
 
51
107
  export const handler = async (client: NirvanaLabs, args: Record<string, unknown> | undefined) => {
52
- const { flux_id, jq_filter, ...body } = args as any;
53
- return asTextContentResult(await maybeFilter(jq_filter, await client.connect.flux.update(flux_id, body)));
108
+ const { jq_filter, ...body } = args as any;
109
+ return asTextContentResult(
110
+ await maybeFilter(jq_filter, await client.networking.connect.connections.create(body)),
111
+ );
54
112
  };
55
113
 
56
114
  export default { metadata, tool, handler };
@@ -0,0 +1,49 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { maybeFilter } from '@nirvana-labs/nirvana-mcp/filtering';
4
+ import { Metadata, asTextContentResult } from '@nirvana-labs/nirvana-mcp/tools/types';
5
+
6
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
7
+ import NirvanaLabs from '@nirvana-labs/nirvana';
8
+
9
+ export const metadata: Metadata = {
10
+ resource: 'networking.connect.connections',
11
+ operation: 'write',
12
+ tags: [],
13
+ httpMethod: 'delete',
14
+ httpPath: '/v1/networking/connect/connections/{connection_id}',
15
+ operationId: 'delete_connect_connection',
16
+ };
17
+
18
+ export const tool: Tool = {
19
+ name: 'delete_connect_networking_connections',
20
+ description:
21
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nDelete Connect Connection\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/operation',\n $defs: {\n operation: {\n type: 'object',\n description: 'Operation details.',\n properties: {\n id: {\n type: 'string',\n description: 'Unique identifier for the Operation.'\n },\n created_at: {\n type: 'string',\n description: 'When the Operation was created.',\n format: 'date-time'\n },\n kind: {\n $ref: '#/$defs/operation_kind'\n },\n resource_id: {\n type: 'string',\n description: 'ID of the resource that the Operation is acting on.'\n },\n status: {\n $ref: '#/$defs/operation_status'\n },\n type: {\n $ref: '#/$defs/operation_type'\n },\n updated_at: {\n type: 'string',\n description: 'When the Operation was updated.',\n format: 'date-time'\n }\n },\n required: [ 'id',\n 'created_at',\n 'kind',\n 'resource_id',\n 'status',\n 'type',\n 'updated_at'\n ]\n },\n operation_kind: {\n type: 'string',\n description: 'Kind of Operation.',\n enum: [ 'vm',\n 'volume',\n 'vpc',\n 'firewall_rule'\n ]\n },\n operation_status: {\n type: 'string',\n description: 'Status of the Operation.',\n enum: [ 'pending',\n 'running',\n 'done',\n 'failed',\n 'unknown'\n ]\n },\n operation_type: {\n type: 'string',\n description: 'Type of Operation.',\n enum: [ 'create',\n 'update',\n 'delete',\n 'restart'\n ]\n }\n }\n}\n```",
22
+ inputSchema: {
23
+ type: 'object',
24
+ properties: {
25
+ connection_id: {
26
+ type: 'string',
27
+ },
28
+ jq_filter: {
29
+ type: 'string',
30
+ title: 'jq Filter',
31
+ description:
32
+ 'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
33
+ },
34
+ },
35
+ required: ['connection_id'],
36
+ },
37
+ annotations: {
38
+ idempotentHint: true,
39
+ },
40
+ };
41
+
42
+ export const handler = async (client: NirvanaLabs, args: Record<string, unknown> | undefined) => {
43
+ const { connection_id, jq_filter, ...body } = args as any;
44
+ return asTextContentResult(
45
+ await maybeFilter(jq_filter, await client.networking.connect.connections.delete(connection_id)),
46
+ );
47
+ };
48
+
49
+ export default { metadata, tool, handler };
@@ -0,0 +1,49 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { maybeFilter } from '@nirvana-labs/nirvana-mcp/filtering';
4
+ import { Metadata, asTextContentResult } from '@nirvana-labs/nirvana-mcp/tools/types';
5
+
6
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
7
+ import NirvanaLabs from '@nirvana-labs/nirvana';
8
+
9
+ export const metadata: Metadata = {
10
+ resource: 'networking.connect.connections',
11
+ operation: 'read',
12
+ tags: [],
13
+ httpMethod: 'get',
14
+ httpPath: '/v1/networking/connect/connections/{connection_id}',
15
+ operationId: 'get_connect_connection',
16
+ };
17
+
18
+ export const tool: Tool = {
19
+ name: 'get_connect_networking_connections',
20
+ description:
21
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nGet Connect Connection details\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/connect_connection',\n $defs: {\n connect_connection: {\n type: 'object',\n description: 'Connect Connection details.',\n properties: {\n id: {\n type: 'string',\n description: 'Unique identifier for the Connect Connection'\n },\n asn: {\n type: 'integer',\n description: 'ASN'\n },\n aws: {\n $ref: '#/$defs/connect_connection_aws_config'\n },\n bandwidth_mbps: {\n $ref: '#/$defs/connect_bandwidth_mbps'\n },\n cidrs: {\n type: 'array',\n description: 'CIDRs for the Connect Connection',\n items: {\n type: 'string'\n }\n },\n created_at: {\n type: 'string',\n description: 'When the Connect Connection was created',\n format: 'date-time'\n },\n name: {\n type: 'string',\n description: 'Name of the Connect Connection'\n },\n provider_asn: {\n type: 'integer',\n description: 'Provider ASN'\n },\n provider_cidrs: {\n type: 'array',\n description: 'Provider CIDRs for the Connect Connection',\n items: {\n type: 'string'\n }\n },\n provider_router_ip: {\n type: 'string',\n description: 'Provider Router IP for the Connect Connection'\n },\n region: {\n $ref: '#/$defs/region_name'\n },\n router_ip: {\n type: 'string',\n description: 'Router IP'\n },\n status: {\n $ref: '#/$defs/resource_status'\n },\n tags: {\n type: 'array',\n description: 'Tags to attach to the Connect Connection',\n items: {\n type: 'string'\n }\n },\n updated_at: {\n type: 'string',\n description: 'When the Connect Connection was updated',\n format: 'date-time'\n }\n },\n required: [ 'id',\n 'asn',\n 'aws',\n 'bandwidth_mbps',\n 'cidrs',\n 'created_at',\n 'name',\n 'provider_asn',\n 'provider_cidrs',\n 'provider_router_ip',\n 'region',\n 'router_ip',\n 'status',\n 'tags',\n 'updated_at'\n ]\n },\n connect_connection_aws_config: {\n type: 'object',\n description: 'AWS provider configuration',\n properties: {\n region: {\n type: 'string',\n description: 'AWS region where the connection is established'\n }\n },\n required: [ 'region'\n ]\n },\n connect_bandwidth_mbps: {\n type: 'string',\n description: 'Connect Connection speed in Mbps',\n enum: [ 50,\n 200,\n 500,\n 1000,\n 2000\n ]\n },\n region_name: {\n type: 'string',\n description: 'Region the resource is in.',\n enum: [ 'us-sea-1',\n 'us-sva-1',\n 'us-chi-1',\n 'us-wdc-1',\n 'eu-frk-1',\n 'ap-sin-1',\n 'ap-seo-1',\n 'ap-tyo-1'\n ]\n },\n resource_status: {\n type: 'string',\n description: 'Status of the resource.',\n enum: [ 'pending',\n 'creating',\n 'updating',\n 'ready',\n 'deleting',\n 'deleted',\n 'error'\n ]\n }\n }\n}\n```",
22
+ inputSchema: {
23
+ type: 'object',
24
+ properties: {
25
+ connection_id: {
26
+ type: 'string',
27
+ },
28
+ jq_filter: {
29
+ type: 'string',
30
+ title: 'jq Filter',
31
+ description:
32
+ 'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
33
+ },
34
+ },
35
+ required: ['connection_id'],
36
+ },
37
+ annotations: {
38
+ readOnlyHint: true,
39
+ },
40
+ };
41
+
42
+ export const handler = async (client: NirvanaLabs, args: Record<string, unknown> | undefined) => {
43
+ const { connection_id, jq_filter, ...body } = args as any;
44
+ return asTextContentResult(
45
+ await maybeFilter(jq_filter, await client.networking.connect.connections.get(connection_id)),
46
+ );
47
+ };
48
+
49
+ export default { metadata, tool, handler };
@@ -0,0 +1,46 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { maybeFilter } from '@nirvana-labs/nirvana-mcp/filtering';
4
+ import { Metadata, asTextContentResult } from '@nirvana-labs/nirvana-mcp/tools/types';
5
+
6
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
7
+ import NirvanaLabs from '@nirvana-labs/nirvana';
8
+
9
+ export const metadata: Metadata = {
10
+ resource: 'networking.connect.connections',
11
+ operation: 'read',
12
+ tags: [],
13
+ httpMethod: 'get',
14
+ httpPath: '/v1/networking/connect/connections',
15
+ operationId: 'list_connect_connections',
16
+ };
17
+
18
+ export const tool: Tool = {
19
+ name: 'list_connect_networking_connections',
20
+ description:
21
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nList all Connect Connections\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/connect_connection_list',\n $defs: {\n connect_connection_list: {\n type: 'object',\n properties: {\n items: {\n type: 'array',\n items: {\n $ref: '#/$defs/connect_connection'\n }\n }\n },\n required: [ 'items'\n ]\n },\n connect_connection: {\n type: 'object',\n description: 'Connect Connection details.',\n properties: {\n id: {\n type: 'string',\n description: 'Unique identifier for the Connect Connection'\n },\n asn: {\n type: 'integer',\n description: 'ASN'\n },\n aws: {\n $ref: '#/$defs/connect_connection_aws_config'\n },\n bandwidth_mbps: {\n $ref: '#/$defs/connect_bandwidth_mbps'\n },\n cidrs: {\n type: 'array',\n description: 'CIDRs for the Connect Connection',\n items: {\n type: 'string'\n }\n },\n created_at: {\n type: 'string',\n description: 'When the Connect Connection was created',\n format: 'date-time'\n },\n name: {\n type: 'string',\n description: 'Name of the Connect Connection'\n },\n provider_asn: {\n type: 'integer',\n description: 'Provider ASN'\n },\n provider_cidrs: {\n type: 'array',\n description: 'Provider CIDRs for the Connect Connection',\n items: {\n type: 'string'\n }\n },\n provider_router_ip: {\n type: 'string',\n description: 'Provider Router IP for the Connect Connection'\n },\n region: {\n $ref: '#/$defs/region_name'\n },\n router_ip: {\n type: 'string',\n description: 'Router IP'\n },\n status: {\n $ref: '#/$defs/resource_status'\n },\n tags: {\n type: 'array',\n description: 'Tags to attach to the Connect Connection',\n items: {\n type: 'string'\n }\n },\n updated_at: {\n type: 'string',\n description: 'When the Connect Connection was updated',\n format: 'date-time'\n }\n },\n required: [ 'id',\n 'asn',\n 'aws',\n 'bandwidth_mbps',\n 'cidrs',\n 'created_at',\n 'name',\n 'provider_asn',\n 'provider_cidrs',\n 'provider_router_ip',\n 'region',\n 'router_ip',\n 'status',\n 'tags',\n 'updated_at'\n ]\n },\n connect_connection_aws_config: {\n type: 'object',\n description: 'AWS provider configuration',\n properties: {\n region: {\n type: 'string',\n description: 'AWS region where the connection is established'\n }\n },\n required: [ 'region'\n ]\n },\n connect_bandwidth_mbps: {\n type: 'string',\n description: 'Connect Connection speed in Mbps',\n enum: [ 50,\n 200,\n 500,\n 1000,\n 2000\n ]\n },\n region_name: {\n type: 'string',\n description: 'Region the resource is in.',\n enum: [ 'us-sea-1',\n 'us-sva-1',\n 'us-chi-1',\n 'us-wdc-1',\n 'eu-frk-1',\n 'ap-sin-1',\n 'ap-seo-1',\n 'ap-tyo-1'\n ]\n },\n resource_status: {\n type: 'string',\n description: 'Status of the resource.',\n enum: [ 'pending',\n 'creating',\n 'updating',\n 'ready',\n 'deleting',\n 'deleted',\n 'error'\n ]\n }\n }\n}\n```",
22
+ inputSchema: {
23
+ type: 'object',
24
+ properties: {
25
+ jq_filter: {
26
+ type: 'string',
27
+ title: 'jq Filter',
28
+ description:
29
+ 'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
30
+ },
31
+ },
32
+ required: [],
33
+ },
34
+ annotations: {
35
+ readOnlyHint: true,
36
+ },
37
+ };
38
+
39
+ export const handler = async (client: NirvanaLabs, args: Record<string, unknown> | undefined) => {
40
+ const { jq_filter } = args as any;
41
+ return asTextContentResult(
42
+ await maybeFilter(jq_filter, await client.networking.connect.connections.list()),
43
+ );
44
+ };
45
+
46
+ export default { metadata, tool, handler };
@@ -0,0 +1,58 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { maybeFilter } from '@nirvana-labs/nirvana-mcp/filtering';
4
+ import { Metadata, asTextContentResult } from '@nirvana-labs/nirvana-mcp/tools/types';
5
+
6
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
7
+ import NirvanaLabs from '@nirvana-labs/nirvana';
8
+
9
+ export const metadata: Metadata = {
10
+ resource: 'networking.connect.connections',
11
+ operation: 'write',
12
+ tags: [],
13
+ httpMethod: 'patch',
14
+ httpPath: '/v1/networking/connect/connections/{connection_id}',
15
+ operationId: 'update_connect_connection',
16
+ };
17
+
18
+ export const tool: Tool = {
19
+ name: 'update_connect_networking_connections',
20
+ description:
21
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nUpdate Connect Connection details\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/operation',\n $defs: {\n operation: {\n type: 'object',\n description: 'Operation details.',\n properties: {\n id: {\n type: 'string',\n description: 'Unique identifier for the Operation.'\n },\n created_at: {\n type: 'string',\n description: 'When the Operation was created.',\n format: 'date-time'\n },\n kind: {\n $ref: '#/$defs/operation_kind'\n },\n resource_id: {\n type: 'string',\n description: 'ID of the resource that the Operation is acting on.'\n },\n status: {\n $ref: '#/$defs/operation_status'\n },\n type: {\n $ref: '#/$defs/operation_type'\n },\n updated_at: {\n type: 'string',\n description: 'When the Operation was updated.',\n format: 'date-time'\n }\n },\n required: [ 'id',\n 'created_at',\n 'kind',\n 'resource_id',\n 'status',\n 'type',\n 'updated_at'\n ]\n },\n operation_kind: {\n type: 'string',\n description: 'Kind of Operation.',\n enum: [ 'vm',\n 'volume',\n 'vpc',\n 'firewall_rule'\n ]\n },\n operation_status: {\n type: 'string',\n description: 'Status of the Operation.',\n enum: [ 'pending',\n 'running',\n 'done',\n 'failed',\n 'unknown'\n ]\n },\n operation_type: {\n type: 'string',\n description: 'Type of Operation.',\n enum: [ 'create',\n 'update',\n 'delete',\n 'restart'\n ]\n }\n }\n}\n```",
22
+ inputSchema: {
23
+ type: 'object',
24
+ properties: {
25
+ connection_id: {
26
+ type: 'string',
27
+ },
28
+ name: {
29
+ type: 'string',
30
+ description: 'Name of the Connect Connection.',
31
+ },
32
+ tags: {
33
+ type: 'array',
34
+ description: 'Tags to attach to the Connect Connection',
35
+ items: {
36
+ type: 'string',
37
+ },
38
+ },
39
+ jq_filter: {
40
+ type: 'string',
41
+ title: 'jq Filter',
42
+ description:
43
+ 'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
44
+ },
45
+ },
46
+ required: ['connection_id'],
47
+ },
48
+ annotations: {},
49
+ };
50
+
51
+ export const handler = async (client: NirvanaLabs, args: Record<string, unknown> | undefined) => {
52
+ const { connection_id, jq_filter, ...body } = args as any;
53
+ return asTextContentResult(
54
+ await maybeFilter(jq_filter, await client.networking.connect.connections.update(connection_id, body)),
55
+ );
56
+ };
57
+
58
+ export default { metadata, tool, handler };
@@ -7,18 +7,18 @@ import { Tool } from '@modelcontextprotocol/sdk/types.js';
7
7
  import NirvanaLabs from '@nirvana-labs/nirvana';
8
8
 
9
9
  export const metadata: Metadata = {
10
- resource: 'connect.flux.routes',
10
+ resource: 'networking.connect.routes',
11
11
  operation: 'read',
12
12
  tags: [],
13
13
  httpMethod: 'get',
14
- httpPath: '/v1/connect/flux/routes',
15
- operationId: 'list_connect_flux_routes',
14
+ httpPath: '/v1/networking/connect/routes',
15
+ operationId: 'list_connect_routes',
16
16
  };
17
17
 
18
18
  export const tool: Tool = {
19
- name: 'list_flux_connect_routes',
19
+ name: 'list_connect_networking_routes',
20
20
  description:
21
- "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nList all supported routes with regions for Connect Flux.\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/flux_route_list',\n $defs: {\n flux_route_list: {\n type: 'object',\n properties: {\n items: {\n type: 'array',\n items: {\n $ref: '#/$defs/flux_route'\n }\n }\n },\n required: [ 'items'\n ]\n },\n flux_route: {\n type: 'object',\n description: 'Routes supported for Connect Flux.',\n properties: {\n nirvana_region: {\n $ref: '#/$defs/region_name'\n },\n provider: {\n type: 'string',\n description: 'Provider name.'\n },\n provider_region: {\n type: 'string',\n description: 'Provider region name.'\n }\n },\n required: [ 'nirvana_region',\n 'provider',\n 'provider_region'\n ]\n },\n region_name: {\n type: 'string',\n description: 'Region the resource is in.',\n enum: [ 'us-sea-1',\n 'us-sva-1',\n 'us-chi-1',\n 'us-wdc-1',\n 'eu-frk-1',\n 'ap-sin-1',\n 'ap-seo-1',\n 'ap-tyo-1'\n ]\n }\n }\n}\n```",
21
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nList all supported routes with regions for Connect.\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/connect_route_list',\n $defs: {\n connect_route_list: {\n type: 'object',\n properties: {\n items: {\n type: 'array',\n items: {\n $ref: '#/$defs/connect_route'\n }\n }\n },\n required: [ 'items'\n ]\n },\n connect_route: {\n type: 'object',\n description: 'Routes supported for Connect.',\n properties: {\n nirvana_region: {\n $ref: '#/$defs/region_name'\n },\n provider: {\n type: 'string',\n description: 'Provider name.'\n },\n provider_region: {\n type: 'string',\n description: 'Provider region name.'\n }\n },\n required: [ 'nirvana_region',\n 'provider',\n 'provider_region'\n ]\n },\n region_name: {\n type: 'string',\n description: 'Region the resource is in.',\n enum: [ 'us-sea-1',\n 'us-sva-1',\n 'us-chi-1',\n 'us-wdc-1',\n 'eu-frk-1',\n 'ap-sin-1',\n 'ap-seo-1',\n 'ap-tyo-1'\n ]\n }\n }\n}\n```",
22
22
  inputSchema: {
23
23
  type: 'object',
24
24
  properties: {
@@ -38,7 +38,7 @@ export const tool: Tool = {
38
38
 
39
39
  export const handler = async (client: NirvanaLabs, args: Record<string, unknown> | undefined) => {
40
40
  const { jq_filter } = args as any;
41
- return asTextContentResult(await maybeFilter(jq_filter, await client.connect.flux.routes.list()));
41
+ return asTextContentResult(await maybeFilter(jq_filter, await client.networking.connect.routes.list()));
42
42
  };
43
43
 
44
44
  export default { metadata, tool, handler };
@@ -0,0 +1,61 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { maybeFilter } from '@nirvana-labs/nirvana-mcp/filtering';
4
+ import { Metadata, asTextContentResult } from '@nirvana-labs/nirvana-mcp/tools/types';
5
+
6
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
7
+ import NirvanaLabs from '@nirvana-labs/nirvana';
8
+
9
+ export const metadata: Metadata = {
10
+ resource: 'rpc_nodes.flex',
11
+ operation: 'write',
12
+ tags: [],
13
+ httpMethod: 'post',
14
+ httpPath: '/v1/rpc_nodes/flex',
15
+ operationId: 'create_rpc_nodes_flex',
16
+ };
17
+
18
+ export const tool: Tool = {
19
+ name: 'create_rpc_nodes_flex',
20
+ description:
21
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nCreate a new RPC Node Flex\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/flex',\n $defs: {\n flex: {\n type: 'object',\n description: 'RPC Node Flex details.',\n properties: {\n id: {\n type: 'string',\n description: 'Unique identifier for the RPC Node Flex.'\n },\n blockchain: {\n type: 'string',\n description: 'Blockchain type.'\n },\n created_at: {\n type: 'string',\n description: 'When the RPC Node Flex was created.',\n format: 'date-time'\n },\n endpoint: {\n type: 'string',\n description: 'RPC endpoint URL.'\n },\n name: {\n type: 'string',\n description: 'Name of the RPC Node Flex.'\n },\n network: {\n type: 'string',\n description: 'Network type (e.g., mainnet, testnet).'\n },\n tags: {\n type: 'array',\n description: 'Tags to attach to the RPC Node Flex.',\n items: {\n type: 'string'\n }\n },\n updated_at: {\n type: 'string',\n description: 'When the RPC Node Flex was updated.',\n format: 'date-time'\n }\n },\n required: [ 'id',\n 'blockchain',\n 'created_at',\n 'endpoint',\n 'name',\n 'network',\n 'tags',\n 'updated_at'\n ]\n }\n }\n}\n```",
22
+ inputSchema: {
23
+ type: 'object',
24
+ properties: {
25
+ blockchain: {
26
+ type: 'string',
27
+ description: 'Blockchain.',
28
+ },
29
+ name: {
30
+ type: 'string',
31
+ description: 'Name of the RPC Node Flex.',
32
+ },
33
+ network: {
34
+ type: 'string',
35
+ description: 'Network type (e.g., mainnet, testnet).',
36
+ },
37
+ tags: {
38
+ type: 'array',
39
+ description: 'Tags to attach to the RPC Node Flex (optional, max 50).',
40
+ items: {
41
+ type: 'string',
42
+ },
43
+ },
44
+ jq_filter: {
45
+ type: 'string',
46
+ title: 'jq Filter',
47
+ description:
48
+ 'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
49
+ },
50
+ },
51
+ required: ['blockchain', 'name', 'network'],
52
+ },
53
+ annotations: {},
54
+ };
55
+
56
+ export const handler = async (client: NirvanaLabs, args: Record<string, unknown> | undefined) => {
57
+ const { jq_filter, ...body } = args as any;
58
+ return asTextContentResult(await maybeFilter(jq_filter, await client.rpcNodes.flex.create(body)));
59
+ };
60
+
61
+ export default { metadata, tool, handler };
@@ -0,0 +1,40 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { Metadata, asTextContentResult } from '@nirvana-labs/nirvana-mcp/tools/types';
4
+
5
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
6
+ import NirvanaLabs from '@nirvana-labs/nirvana';
7
+
8
+ export const metadata: Metadata = {
9
+ resource: 'rpc_nodes.flex',
10
+ operation: 'write',
11
+ tags: [],
12
+ httpMethod: 'delete',
13
+ httpPath: '/v1/rpc_nodes/flex/{node_id}',
14
+ operationId: 'delete_rpc_nodes_flex',
15
+ };
16
+
17
+ export const tool: Tool = {
18
+ name: 'delete_rpc_nodes_flex',
19
+ description: 'Delete an RPC Node Flex',
20
+ inputSchema: {
21
+ type: 'object',
22
+ properties: {
23
+ node_id: {
24
+ type: 'string',
25
+ },
26
+ },
27
+ required: ['node_id'],
28
+ },
29
+ annotations: {
30
+ idempotentHint: true,
31
+ },
32
+ };
33
+
34
+ export const handler = async (client: NirvanaLabs, args: Record<string, unknown> | undefined) => {
35
+ const { node_id, ...body } = args as any;
36
+ const response = await client.rpcNodes.flex.delete(node_id).asResponse();
37
+ return asTextContentResult(await response.text());
38
+ };
39
+
40
+ export default { metadata, tool, handler };