@nirvana-labs/nirvana-mcp 1.19.0 → 1.20.1
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 +15 -12
- package/package.json +2 -2
- package/server.js +1 -1
- package/server.mjs +1 -1
- package/src/server.ts +1 -1
- package/src/tools/index.ts +18 -12
- package/src/tools/{connect/flux/update-connect-flux.ts → networking/connect/connections/create-connect-networking-connections.ts} +71 -13
- package/src/tools/networking/connect/connections/delete-connect-networking-connections.ts +49 -0
- package/src/tools/networking/connect/connections/get-connect-networking-connections.ts +49 -0
- package/src/tools/networking/connect/connections/list-connect-networking-connections.ts +46 -0
- package/src/tools/networking/connect/connections/update-connect-networking-connections.ts +58 -0
- package/src/tools/{connect/flux/routes/list-flux-connect-routes.ts → networking/connect/routes/list-connect-networking-routes.ts} +6 -6
- package/src/tools/rpc-nodes/flex/create-rpc-nodes-flex.ts +61 -0
- package/src/tools/rpc-nodes/flex/delete-rpc-nodes-flex.ts +40 -0
- package/src/tools/rpc-nodes/flex/update-rpc-nodes-flex.ts +56 -0
- package/tools/index.d.mts.map +1 -1
- package/tools/index.d.ts.map +1 -1
- package/tools/index.js +18 -12
- package/tools/index.js.map +1 -1
- package/tools/index.mjs +18 -12
- package/tools/index.mjs.map +1 -1
- package/tools/networking/connect/connections/create-connect-networking-connections.d.mts +45 -0
- package/tools/networking/connect/connections/create-connect-networking-connections.d.mts.map +1 -0
- package/tools/networking/connect/connections/create-connect-networking-connections.d.ts +45 -0
- package/tools/networking/connect/connections/create-connect-networking-connections.d.ts.map +1 -0
- package/tools/{connect/flux/create-connect-flux.js → networking/connect/connections/create-connect-networking-connections.js} +15 -15
- package/tools/networking/connect/connections/create-connect-networking-connections.js.map +1 -0
- package/tools/{connect/flux/create-connect-flux.mjs → networking/connect/connections/create-connect-networking-connections.mjs} +15 -15
- package/tools/networking/connect/connections/create-connect-networking-connections.mjs.map +1 -0
- package/tools/networking/connect/connections/delete-connect-networking-connections.d.mts +45 -0
- package/tools/networking/connect/connections/delete-connect-networking-connections.d.mts.map +1 -0
- package/tools/networking/connect/connections/delete-connect-networking-connections.d.ts +45 -0
- package/tools/networking/connect/connections/delete-connect-networking-connections.d.ts.map +1 -0
- package/tools/networking/connect/connections/delete-connect-networking-connections.js +42 -0
- package/tools/networking/connect/connections/delete-connect-networking-connections.js.map +1 -0
- package/tools/networking/connect/connections/delete-connect-networking-connections.mjs +38 -0
- package/tools/networking/connect/connections/delete-connect-networking-connections.mjs.map +1 -0
- package/tools/networking/connect/connections/get-connect-networking-connections.d.mts +45 -0
- package/tools/networking/connect/connections/get-connect-networking-connections.d.mts.map +1 -0
- package/tools/networking/connect/connections/get-connect-networking-connections.d.ts +45 -0
- package/tools/networking/connect/connections/get-connect-networking-connections.d.ts.map +1 -0
- package/tools/networking/connect/connections/get-connect-networking-connections.js +42 -0
- package/tools/networking/connect/connections/get-connect-networking-connections.js.map +1 -0
- package/tools/networking/connect/connections/get-connect-networking-connections.mjs +38 -0
- package/tools/networking/connect/connections/get-connect-networking-connections.mjs.map +1 -0
- package/tools/networking/connect/connections/list-connect-networking-connections.d.mts +45 -0
- package/tools/networking/connect/connections/list-connect-networking-connections.d.mts.map +1 -0
- package/tools/networking/connect/connections/list-connect-networking-connections.d.ts +45 -0
- package/tools/networking/connect/connections/list-connect-networking-connections.d.ts.map +1 -0
- package/tools/networking/connect/connections/list-connect-networking-connections.js +39 -0
- package/tools/networking/connect/connections/list-connect-networking-connections.js.map +1 -0
- package/tools/networking/connect/connections/list-connect-networking-connections.mjs +35 -0
- package/tools/networking/connect/connections/list-connect-networking-connections.mjs.map +1 -0
- package/tools/networking/connect/connections/update-connect-networking-connections.d.mts +45 -0
- package/tools/networking/connect/connections/update-connect-networking-connections.d.mts.map +1 -0
- package/tools/networking/connect/connections/update-connect-networking-connections.d.ts +45 -0
- package/tools/networking/connect/connections/update-connect-networking-connections.d.ts.map +1 -0
- package/tools/networking/connect/connections/update-connect-networking-connections.js +51 -0
- package/tools/networking/connect/connections/update-connect-networking-connections.js.map +1 -0
- package/tools/networking/connect/connections/update-connect-networking-connections.mjs +47 -0
- package/tools/networking/connect/connections/update-connect-networking-connections.mjs.map +1 -0
- package/tools/networking/connect/routes/list-connect-networking-routes.d.mts +45 -0
- package/tools/networking/connect/routes/list-connect-networking-routes.d.mts.map +1 -0
- package/tools/networking/connect/routes/list-connect-networking-routes.d.ts +45 -0
- package/tools/networking/connect/routes/list-connect-networking-routes.d.ts.map +1 -0
- package/tools/{connect/flux/routes/list-flux-connect-routes.js → networking/connect/routes/list-connect-networking-routes.js} +7 -7
- package/tools/networking/connect/routes/list-connect-networking-routes.js.map +1 -0
- package/tools/networking/connect/routes/list-connect-networking-routes.mjs +35 -0
- package/tools/networking/connect/routes/list-connect-networking-routes.mjs.map +1 -0
- package/tools/{connect/flux/delete-connect-flux.d.mts → rpc-nodes/flex/create-rpc-nodes-flex.d.mts} +1 -1
- package/tools/rpc-nodes/flex/create-rpc-nodes-flex.d.mts.map +1 -0
- package/tools/{connect/flux/delete-connect-flux.d.ts → rpc-nodes/flex/create-rpc-nodes-flex.d.ts} +1 -1
- package/tools/rpc-nodes/flex/create-rpc-nodes-flex.d.ts.map +1 -0
- package/tools/rpc-nodes/flex/create-rpc-nodes-flex.js +56 -0
- package/tools/rpc-nodes/flex/create-rpc-nodes-flex.js.map +1 -0
- package/tools/rpc-nodes/flex/create-rpc-nodes-flex.mjs +52 -0
- package/tools/rpc-nodes/flex/create-rpc-nodes-flex.mjs.map +1 -0
- package/tools/rpc-nodes/flex/delete-rpc-nodes-flex.d.mts +45 -0
- package/tools/rpc-nodes/flex/delete-rpc-nodes-flex.d.mts.map +1 -0
- package/tools/{connect/flux/create-connect-flux.d.mts → rpc-nodes/flex/delete-rpc-nodes-flex.d.ts} +1 -1
- package/tools/rpc-nodes/flex/delete-rpc-nodes-flex.d.ts.map +1 -0
- package/tools/rpc-nodes/flex/delete-rpc-nodes-flex.js +37 -0
- package/tools/rpc-nodes/flex/delete-rpc-nodes-flex.js.map +1 -0
- package/tools/rpc-nodes/flex/delete-rpc-nodes-flex.mjs +33 -0
- package/tools/rpc-nodes/flex/delete-rpc-nodes-flex.mjs.map +1 -0
- package/tools/rpc-nodes/flex/update-rpc-nodes-flex.d.mts +45 -0
- package/tools/rpc-nodes/flex/update-rpc-nodes-flex.d.mts.map +1 -0
- package/tools/{connect/flux/create-connect-flux.d.ts → rpc-nodes/flex/update-rpc-nodes-flex.d.ts} +1 -1
- package/tools/rpc-nodes/flex/update-rpc-nodes-flex.d.ts.map +1 -0
- package/tools/rpc-nodes/flex/update-rpc-nodes-flex.js +51 -0
- package/tools/rpc-nodes/flex/update-rpc-nodes-flex.js.map +1 -0
- package/tools/rpc-nodes/flex/update-rpc-nodes-flex.mjs +47 -0
- package/tools/rpc-nodes/flex/update-rpc-nodes-flex.mjs.map +1 -0
- package/src/tools/connect/flux/create-connect-flux.ts +0 -112
- package/src/tools/connect/flux/delete-connect-flux.ts +0 -47
- package/src/tools/connect/flux/get-connect-flux.ts +0 -47
- package/src/tools/connect/flux/list-connect-flux.ts +0 -44
- package/tools/connect/flux/create-connect-flux.d.mts.map +0 -1
- package/tools/connect/flux/create-connect-flux.d.ts.map +0 -1
- package/tools/connect/flux/create-connect-flux.js.map +0 -1
- package/tools/connect/flux/create-connect-flux.mjs.map +0 -1
- package/tools/connect/flux/delete-connect-flux.d.mts.map +0 -1
- package/tools/connect/flux/delete-connect-flux.d.ts.map +0 -1
- package/tools/connect/flux/delete-connect-flux.js +0 -42
- package/tools/connect/flux/delete-connect-flux.js.map +0 -1
- package/tools/connect/flux/delete-connect-flux.mjs +0 -38
- package/tools/connect/flux/delete-connect-flux.mjs.map +0 -1
- package/tools/connect/flux/get-connect-flux.d.mts +0 -45
- package/tools/connect/flux/get-connect-flux.d.mts.map +0 -1
- package/tools/connect/flux/get-connect-flux.d.ts +0 -45
- package/tools/connect/flux/get-connect-flux.d.ts.map +0 -1
- package/tools/connect/flux/get-connect-flux.js +0 -42
- package/tools/connect/flux/get-connect-flux.js.map +0 -1
- package/tools/connect/flux/get-connect-flux.mjs +0 -38
- package/tools/connect/flux/get-connect-flux.mjs.map +0 -1
- package/tools/connect/flux/list-connect-flux.d.mts +0 -45
- package/tools/connect/flux/list-connect-flux.d.mts.map +0 -1
- package/tools/connect/flux/list-connect-flux.d.ts +0 -45
- package/tools/connect/flux/list-connect-flux.d.ts.map +0 -1
- package/tools/connect/flux/list-connect-flux.js +0 -39
- package/tools/connect/flux/list-connect-flux.js.map +0 -1
- package/tools/connect/flux/list-connect-flux.mjs +0 -35
- package/tools/connect/flux/list-connect-flux.mjs.map +0 -1
- package/tools/connect/flux/routes/list-flux-connect-routes.d.mts +0 -45
- package/tools/connect/flux/routes/list-flux-connect-routes.d.mts.map +0 -1
- package/tools/connect/flux/routes/list-flux-connect-routes.d.ts +0 -45
- package/tools/connect/flux/routes/list-flux-connect-routes.d.ts.map +0 -1
- package/tools/connect/flux/routes/list-flux-connect-routes.js.map +0 -1
- package/tools/connect/flux/routes/list-flux-connect-routes.mjs +0 -35
- package/tools/connect/flux/routes/list-flux-connect-routes.mjs.map +0 -1
- package/tools/connect/flux/update-connect-flux.d.mts +0 -45
- package/tools/connect/flux/update-connect-flux.d.mts.map +0 -1
- package/tools/connect/flux/update-connect-flux.d.ts +0 -45
- package/tools/connect/flux/update-connect-flux.d.ts.map +0 -1
- package/tools/connect/flux/update-connect-flux.js +0 -51
- package/tools/connect/flux/update-connect-flux.js.map +0 -1
- package/tools/connect/flux/update-connect-flux.mjs +0 -47
- 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.
|
|
3
|
+
"version": "1.20.1",
|
|
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.
|
|
30
|
+
"@nirvana-labs/nirvana": "^1.20.1",
|
|
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.
|
|
25
|
+
version: '1.20.1',
|
|
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.
|
|
14
|
+
version: '1.20.1',
|
|
15
15
|
}, { capabilities: { tools: {}, logging: {} } });
|
|
16
16
|
// Create server instance
|
|
17
17
|
export const server = newMcpServer();
|
package/src/server.ts
CHANGED
package/src/tools/index.ts
CHANGED
|
@@ -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.
|
|
10
|
+
resource: 'networking.connect.connections',
|
|
11
11
|
operation: 'write',
|
|
12
12
|
tags: [],
|
|
13
|
-
httpMethod: '
|
|
14
|
-
httpPath: '/v1/connect/
|
|
15
|
-
operationId: '
|
|
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: '
|
|
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\
|
|
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
|
-
|
|
26
|
-
|
|
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
|
|
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
|
|
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: ['
|
|
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 {
|
|
53
|
-
return asTextContentResult(
|
|
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.
|
|
10
|
+
resource: 'networking.connect.routes',
|
|
11
11
|
operation: 'read',
|
|
12
12
|
tags: [],
|
|
13
13
|
httpMethod: 'get',
|
|
14
|
-
httpPath: '/v1/connect/
|
|
15
|
-
operationId: '
|
|
14
|
+
httpPath: '/v1/networking/connect/routes',
|
|
15
|
+
operationId: 'list_connect_routes',
|
|
16
16
|
};
|
|
17
17
|
|
|
18
18
|
export const tool: Tool = {
|
|
19
|
-
name: '
|
|
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
|
|
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.
|
|
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 };
|